diff --git a/.eslintrc.js b/.eslintrc.js index be43884e..cc2b2190 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,15 +1,13 @@ module.exports = { root: true, - extends: ['@react-native-community'], + extends: ['@react-native'], parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], + plugins: ['@react-native'], ignorePatterns: ['lib/', 'types/'], rules: { - 'comma-dangle': ['error', 'never'], '@typescript-eslint/no-unused-vars': [ 'error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true } - ], - 'no-eval': 'off' + ] } }; diff --git a/.gitignore b/.gitignore index 1134c9de..38168273 100644 --- a/.gitignore +++ b/.gitignore @@ -62,9 +62,10 @@ android/keystores/debug.keystore # Expo .expo/* -# yarn berry (zero install) +# yarn berry +.pnp.* .yarn/* -!.yarn/cache +!.yarn/patches !.yarn/releases !.yarn/plugins !.yarn/sdks diff --git a/.pnp.cjs b/.pnp.cjs deleted file mode 100755 index 9b54417d..00000000 --- a/.pnp.cjs +++ /dev/null @@ -1,31253 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -// @ts-nocheck -"use strict"; - -const RAW_RUNTIME_STATE = -'{\ - "__info": [\ - "This file is automatically generated. Do not touch it, or risk",\ - "your modifications being lost."\ - ],\ - "dependencyTreeRoots": [\ - {\ - "name": "core",\ - "reference": "workspace:."\ - },\ - {\ - "name": "@native-html/css-processor",\ - "reference": "workspace:packages/css-processor"\ - },\ - {\ - "name": "performance-testing",\ - "reference": "workspace:packages/performance-testing"\ - },\ - {\ - "name": "release-config",\ - "reference": "workspace:packages/release-config"\ - },\ - {\ - "name": "@native-html/transient-render-engine",\ - "reference": "workspace:packages/transient-render-engine"\ - }\ - ],\ - "enableTopLevelFallback": true,\ - "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ - "fallbackExclusionList": [\ - ["@native-html/css-processor", ["virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor", "workspace:packages/css-processor"]],\ - ["@native-html/transient-render-engine", ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine", "workspace:packages/transient-render-engine"]],\ - ["core", ["workspace:."]],\ - ["performance-testing", ["workspace:packages/performance-testing"]],\ - ["release-config", ["workspace:packages/release-config"]]\ - ],\ - "fallbackPool": [\ - [\ - "@ampproject/remapping",\ - "npm:2.3.0"\ - ],\ - [\ - "@babel/cli",\ - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"\ - ],\ - [\ - "@babel/code-frame",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/compat-data",\ - "npm:7.14.0"\ - ],\ - [\ - "@babel/core",\ - "npm:7.14.2"\ - ],\ - [\ - "@babel/generator",\ - "npm:7.25.6"\ - ],\ - [\ - "@babel/helper-annotate-as-pure",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/helper-builder-binary-assignment-operator-visitor",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/helper-compilation-targets",\ - "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"\ - ],\ - [\ - "@babel/helper-create-class-features-plugin",\ - "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"\ - ],\ - [\ - "@babel/helper-create-regexp-features-plugin",\ - "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"\ - ],\ - [\ - "@babel/helper-define-polyfill-provider",\ - "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"\ - ],\ - [\ - "@babel/helper-environment-visitor",\ - "npm:7.24.7"\ - ],\ - [\ - "@babel/helper-explode-assignable-expression",\ - "npm:7.13.0"\ - ],\ - [\ - "@babel/helper-function-name",\ - "npm:7.14.2"\ - ],\ - [\ - "@babel/helper-get-function-arity",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/helper-hoist-variables",\ - "npm:7.13.16"\ - ],\ - [\ - "@babel/helper-member-expression-to-functions",\ - "npm:7.13.12"\ - ],\ - [\ - "@babel/helper-module-imports",\ - "npm:7.13.12"\ - ],\ - [\ - "@babel/helper-module-transforms",\ - "npm:7.14.2"\ - ],\ - [\ - "@babel/helper-optimise-call-expression",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/helper-plugin-utils",\ - "npm:7.13.0"\ - ],\ - [\ - "@babel/helper-remap-async-to-generator",\ - "npm:7.13.0"\ - ],\ - [\ - "@babel/helper-replace-supers",\ - "npm:7.13.12"\ - ],\ - [\ - "@babel/helper-simple-access",\ - "npm:7.13.12"\ - ],\ - [\ - "@babel/helper-skip-transparent-expression-wrappers",\ - "npm:7.12.1"\ - ],\ - [\ - "@babel/helper-split-export-declaration",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/helper-string-parser",\ - "npm:7.24.8"\ - ],\ - [\ - "@babel/helper-validator-identifier",\ - "npm:7.14.0"\ - ],\ - [\ - "@babel/helper-validator-option",\ - "npm:7.12.17"\ - ],\ - [\ - "@babel/helper-wrap-function",\ - "npm:7.13.0"\ - ],\ - [\ - "@babel/helpers",\ - "npm:7.14.0"\ - ],\ - [\ - "@babel/highlight",\ - "npm:7.14.0"\ - ],\ - [\ - "@babel/parser",\ - "npm:7.25.6"\ - ],\ - [\ - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12"\ - ],\ - [\ - "@babel/plugin-proposal-async-generator-functions",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-class-properties",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-proposal-class-static-block",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11"\ - ],\ - [\ - "@babel/plugin-proposal-dynamic-import",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-export-default-from",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-proposal-export-namespace-from",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-json-strings",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-logical-assignment-operators",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-nullish-coalescing-operator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-numeric-separator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-object-rest-spread",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-optional-catch-binding",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-optional-chaining",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-proposal-private-methods",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-proposal-private-property-in-object",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"\ - ],\ - [\ - "@babel/plugin-proposal-unicode-property-regex",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-async-generators",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4"\ - ],\ - [\ - "@babel/plugin-syntax-bigint",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-class-properties",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-class-static-block",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-dynamic-import",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-export-default-from",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-export-namespace-from",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-flow",\ - "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7"\ - ],\ - [\ - "@babel/plugin-syntax-import-meta",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"\ - ],\ - [\ - "@babel/plugin-syntax-json-strings",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-jsx",\ - "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-logical-assignment-operators",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"\ - ],\ - [\ - "@babel/plugin-syntax-nullish-coalescing-operator",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-numeric-separator",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"\ - ],\ - [\ - "@babel/plugin-syntax-object-rest-spread",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-optional-catch-binding",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-optional-chaining",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"\ - ],\ - [\ - "@babel/plugin-syntax-private-property-in-object",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"\ - ],\ - [\ - "@babel/plugin-syntax-top-level-await",\ - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-syntax-typescript",\ - "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-arrow-functions",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-async-to-generator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-block-scoped-functions",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-block-scoping",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-classes",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-computed-properties",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-destructuring",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"\ - ],\ - [\ - "@babel/plugin-transform-dotall-regex",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-duplicate-keys",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-exponentiation-operator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-flow-strip-types",\ - "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-for-of",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-function-name",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-literals",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-member-expression-literals",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-modules-amd",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-modules-commonjs",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"\ - ],\ - [\ - "@babel/plugin-transform-modules-systemjs",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8"\ - ],\ - [\ - "@babel/plugin-transform-modules-umd",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"\ - ],\ - [\ - "@babel/plugin-transform-named-capturing-groups-regex",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-new-target",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-object-assign",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-object-super",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-parameters",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-property-literals",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-react-display-name",\ - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-react-jsx",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"\ - ],\ - [\ - "@babel/plugin-transform-react-jsx-development",\ - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17"\ - ],\ - [\ - "@babel/plugin-transform-react-jsx-self",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-react-jsx-source",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-react-pure-annotations",\ - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1"\ - ],\ - [\ - "@babel/plugin-transform-regenerator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"\ - ],\ - [\ - "@babel/plugin-transform-reserved-words",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-runtime",\ - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"\ - ],\ - [\ - "@babel/plugin-transform-shorthand-properties",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-spread",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-sticky-regex",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-template-literals",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-typeof-symbol",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-typescript",\ - "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"\ - ],\ - [\ - "@babel/plugin-transform-unicode-escapes",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/plugin-transform-unicode-regex",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"\ - ],\ - [\ - "@babel/preset-env",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"\ - ],\ - [\ - "@babel/preset-flow",\ - "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"\ - ],\ - [\ - "@babel/preset-modules",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4"\ - ],\ - [\ - "@babel/preset-react",\ - "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"\ - ],\ - [\ - "@babel/preset-typescript",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"\ - ],\ - [\ - "@babel/regjsgen",\ - "npm:0.8.0"\ - ],\ - [\ - "@babel/runtime",\ - "npm:7.14.0"\ - ],\ - [\ - "@babel/template",\ - "npm:7.12.13"\ - ],\ - [\ - "@babel/traverse",\ - "npm:7.25.6"\ - ],\ - [\ - "@babel/types",\ - "npm:7.14.2"\ - ],\ - [\ - "@bcoe/v8-coverage",\ - "npm:0.2.3"\ - ],\ - [\ - "@cnakazawa/watch",\ - "npm:1.0.4"\ - ],\ - [\ - "@commitlint/cli",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/config-conventional",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/ensure",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/execute-rule",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/format",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/is-ignored",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/lint",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/load",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/message",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/parse",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/read",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/resolve-extends",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/rules",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/to-lines",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/top-level",\ - "npm:12.1.4"\ - ],\ - [\ - "@commitlint/types",\ - "npm:12.1.4"\ - ],\ - [\ - "@eslint/eslintrc",\ - "npm:0.4.1"\ - ],\ - [\ - "@hapi/hoek",\ - "npm:9.3.0"\ - ],\ - [\ - "@hapi/topo",\ - "npm:5.1.0"\ - ],\ - [\ - "@iarna/toml",\ - "npm:2.2.5"\ - ],\ - [\ - "@isaacs/ttlcache",\ - "npm:1.4.1"\ - ],\ - [\ - "@istanbuljs/load-nyc-config",\ - "npm:1.1.0"\ - ],\ - [\ - "@istanbuljs/schema",\ - "npm:0.1.3"\ - ],\ - [\ - "@jest/console",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/core",\ - "npm:26.6.3"\ - ],\ - [\ - "@jest/create-cache-key-function",\ - "npm:29.7.0"\ - ],\ - [\ - "@jest/environment",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/fake-timers",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/globals",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/reporters",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/schemas",\ - "npm:29.6.3"\ - ],\ - [\ - "@jest/source-map",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/test-result",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/test-sequencer",\ - "npm:26.6.3"\ - ],\ - [\ - "@jest/transform",\ - "npm:26.6.2"\ - ],\ - [\ - "@jest/types",\ - "npm:26.6.2"\ - ],\ - [\ - "@jridgewell/gen-mapping",\ - "npm:0.3.5"\ - ],\ - [\ - "@jridgewell/resolve-uri",\ - "npm:3.1.2"\ - ],\ - [\ - "@jridgewell/set-array",\ - "npm:1.2.1"\ - ],\ - [\ - "@jridgewell/source-map",\ - "npm:0.3.6"\ - ],\ - [\ - "@jridgewell/sourcemap-codec",\ - "npm:1.5.0"\ - ],\ - [\ - "@jridgewell/trace-mapping",\ - "npm:0.3.25"\ - ],\ - [\ - "@mdn/browser-compat-data",\ - "npm:2.0.7"\ - ],\ - [\ - "@native-html/css-processor",\ - "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"\ - ],\ - [\ - "@native-html/transient-render-engine",\ - "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine"\ - ],\ - [\ - "@nicolo-ribaudo/chokidar-2",\ - "npm:2.1.8-no-fsevents"\ - ],\ - [\ - "@nodelib/fs.scandir",\ - "npm:2.1.4"\ - ],\ - [\ - "@nodelib/fs.stat",\ - "npm:2.0.4"\ - ],\ - [\ - "@nodelib/fs.walk",\ - "npm:1.2.6"\ - ],\ - [\ - "@npmcli/move-file",\ - "npm:1.1.2"\ - ],\ - [\ - "@octokit/auth-token",\ - "npm:2.4.5"\ - ],\ - [\ - "@octokit/core",\ - "npm:3.4.0"\ - ],\ - [\ - "@octokit/endpoint",\ - "npm:6.0.11"\ - ],\ - [\ - "@octokit/graphql",\ - "npm:4.6.1"\ - ],\ - [\ - "@octokit/openapi-types",\ - "npm:7.0.0"\ - ],\ - [\ - "@octokit/plugin-paginate-rest",\ - "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3"\ - ],\ - [\ - "@octokit/plugin-request-log",\ - "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3"\ - ],\ - [\ - "@octokit/plugin-rest-endpoint-methods",\ - "npm:4.2.0"\ - ],\ - [\ - "@octokit/request",\ - "npm:5.4.15"\ - ],\ - [\ - "@octokit/request-error",\ - "npm:2.0.5"\ - ],\ - [\ - "@octokit/rest",\ - "npm:18.0.6"\ - ],\ - [\ - "@octokit/types",\ - "npm:6.14.2"\ - ],\ - [\ - "@react-native-community/bob",\ - "npm:0.17.1"\ - ],\ - [\ - "@react-native-community/cli",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-clean",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-config",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-debugger-ui",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-doctor",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-hermes",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-platform-android",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-platform-apple",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-platform-ios",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-server-api",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-tools",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/cli-types",\ - "npm:13.6.9"\ - ],\ - [\ - "@react-native-community/eslint-config",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"\ - ],\ - [\ - "@react-native-community/eslint-plugin",\ - "npm:1.1.0"\ - ],\ - [\ - "@react-native/assets-registry",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/babel-plugin-codegen",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/codegen",\ - "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"\ - ],\ - [\ - "@react-native/community-cli-plugin",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/debugger-frontend",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/dev-middleware",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/gradle-plugin",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/js-polyfills",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/metro-babel-transformer",\ - "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87"\ - ],\ - [\ - "@react-native/normalize-colors",\ - "npm:0.74.87"\ - ],\ - [\ - "@react-native/virtualized-lists",\ - "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87"\ - ],\ - [\ - "@release-it/conventional-changelog",\ - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."\ - ],\ - [\ - "@rnx-kit/chromium-edge-launcher",\ - "npm:1.0.0"\ - ],\ - [\ - "@sideway/address",\ - "npm:4.1.5"\ - ],\ - [\ - "@sideway/formula",\ - "npm:3.0.1"\ - ],\ - [\ - "@sideway/pinpoint",\ - "npm:2.0.0"\ - ],\ - [\ - "@sinclair/typebox",\ - "npm:0.27.8"\ - ],\ - [\ - "@sindresorhus/is",\ - "npm:0.14.0"\ - ],\ - [\ - "@sinonjs/commons",\ - "npm:1.8.3"\ - ],\ - [\ - "@sinonjs/fake-timers",\ - "npm:6.0.1"\ - ],\ - [\ - "@szmarczak/http-timer",\ - "npm:1.1.2"\ - ],\ - [\ - "@tootallnate/once",\ - "npm:1.1.2"\ - ],\ - [\ - "@tsconfig/react-native",\ - "npm:1.0.3"\ - ],\ - [\ - "@types/babel__core",\ - "npm:7.1.14"\ - ],\ - [\ - "@types/babel__generator",\ - "npm:7.6.2"\ - ],\ - [\ - "@types/babel__template",\ - "npm:7.4.0"\ - ],\ - [\ - "@types/babel__traverse",\ - "npm:7.11.1"\ - ],\ - [\ - "@types/cacheable-request",\ - "npm:6.0.1"\ - ],\ - [\ - "@types/eslint-visitor-keys",\ - "npm:1.0.0"\ - ],\ - [\ - "@types/graceful-fs",\ - "npm:4.1.5"\ - ],\ - [\ - "@types/http-cache-semantics",\ - "npm:4.0.0"\ - ],\ - [\ - "@types/istanbul-lib-coverage",\ - "npm:2.0.3"\ - ],\ - [\ - "@types/istanbul-lib-report",\ - "npm:3.0.0"\ - ],\ - [\ - "@types/istanbul-reports",\ - "npm:3.0.0"\ - ],\ - [\ - "@types/jest",\ - "npm:26.0.23"\ - ],\ - [\ - "@types/json-schema",\ - "npm:7.0.7"\ - ],\ - [\ - "@types/keyv",\ - "npm:3.1.1"\ - ],\ - [\ - "@types/minimist",\ - "npm:1.2.1"\ - ],\ - [\ - "@types/node",\ - "npm:15.3.0"\ - ],\ - [\ - "@types/node-forge",\ - "npm:1.3.11"\ - ],\ - [\ - "@types/normalize-package-data",\ - "npm:2.4.0"\ - ],\ - [\ - "@types/parse-json",\ - "npm:4.0.0"\ - ],\ - [\ - "@types/prettier",\ - "npm:2.2.3"\ - ],\ - [\ - "@types/prop-types",\ - "npm:15.7.3"\ - ],\ - [\ - "@types/ramda",\ - "npm:0.27.44"\ - ],\ - [\ - "@types/react",\ - "npm:17.0.5"\ - ],\ - [\ - "@types/react-native",\ - "npm:0.64.5"\ - ],\ - [\ - "@types/responselike",\ - "npm:1.0.0"\ - ],\ - [\ - "@types/scheduler",\ - "npm:0.16.1"\ - ],\ - [\ - "@types/stack-utils",\ - "npm:2.0.0"\ - ],\ - [\ - "@types/yargs",\ - "npm:15.0.13"\ - ],\ - [\ - "@types/yargs-parser",\ - "npm:20.2.0"\ - ],\ - [\ - "@typescript-eslint/eslint-plugin",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"\ - ],\ - [\ - "@typescript-eslint/experimental-utils",\ - "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"\ - ],\ - [\ - "@typescript-eslint/parser",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"\ - ],\ - [\ - "@typescript-eslint/scope-manager",\ - "npm:4.23.0"\ - ],\ - [\ - "@typescript-eslint/types",\ - "npm:4.23.0"\ - ],\ - [\ - "@typescript-eslint/typescript-estree",\ - "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"\ - ],\ - [\ - "@typescript-eslint/visitor-keys",\ - "npm:4.23.0"\ - ],\ - [\ - "JSONStream",\ - "npm:1.3.5"\ - ],\ - [\ - "abab",\ - "npm:2.0.5"\ - ],\ - [\ - "abbrev",\ - "npm:1.1.1"\ - ],\ - [\ - "abort-controller",\ - "npm:3.0.0"\ - ],\ - [\ - "accepts",\ - "npm:1.3.8"\ - ],\ - [\ - "acorn",\ - "npm:7.4.1"\ - ],\ - [\ - "acorn-globals",\ - "npm:6.0.0"\ - ],\ - [\ - "acorn-jsx",\ - "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1"\ - ],\ - [\ - "acorn-walk",\ - "npm:7.2.0"\ - ],\ - [\ - "add-stream",\ - "npm:1.0.0"\ - ],\ - [\ - "agent-base",\ - "npm:6.0.2"\ - ],\ - [\ - "agentkeepalive",\ - "npm:4.1.4"\ - ],\ - [\ - "aggregate-error",\ - "npm:3.1.0"\ - ],\ - [\ - "ajv",\ - "npm:6.12.6"\ - ],\ - [\ - "anser",\ - "npm:1.4.10"\ - ],\ - [\ - "ansi-align",\ - "npm:3.0.0"\ - ],\ - [\ - "ansi-colors",\ - "npm:4.1.1"\ - ],\ - [\ - "ansi-escapes",\ - "npm:4.3.2"\ - ],\ - [\ - "ansi-fragments",\ - "npm:0.2.1"\ - ],\ - [\ - "ansi-regex",\ - "npm:5.0.0"\ - ],\ - [\ - "ansi-styles",\ - "npm:4.3.0"\ - ],\ - [\ - "anymatch",\ - "npm:3.1.2"\ - ],\ - [\ - "appdirsjs",\ - "npm:1.2.7"\ - ],\ - [\ - "aproba",\ - "npm:1.2.0"\ - ],\ - [\ - "are-we-there-yet",\ - "npm:1.1.5"\ - ],\ - [\ - "argparse",\ - "npm:1.0.10"\ - ],\ - [\ - "arr-diff",\ - "npm:4.0.0"\ - ],\ - [\ - "arr-flatten",\ - "npm:1.1.0"\ - ],\ - [\ - "arr-union",\ - "npm:3.1.0"\ - ],\ - [\ - "array-find-index",\ - "npm:1.0.2"\ - ],\ - [\ - "array-ify",\ - "npm:1.0.0"\ - ],\ - [\ - "array-includes",\ - "npm:3.1.3"\ - ],\ - [\ - "array-union",\ - "npm:2.1.0"\ - ],\ - [\ - "array-unique",\ - "npm:0.3.2"\ - ],\ - [\ - "array.prototype.flatmap",\ - "npm:1.2.4"\ - ],\ - [\ - "arrify",\ - "npm:1.0.1"\ - ],\ - [\ - "asap",\ - "npm:2.0.6"\ - ],\ - [\ - "asn1",\ - "npm:0.2.4"\ - ],\ - [\ - "assert-plus",\ - "npm:1.0.0"\ - ],\ - [\ - "assign-symbols",\ - "npm:1.0.0"\ - ],\ - [\ - "ast-metadata-inferer",\ - "npm:0.4.0"\ - ],\ - [\ - "ast-types",\ - "npm:0.15.2"\ - ],\ - [\ - "astral-regex",\ - "npm:2.0.0"\ - ],\ - [\ - "async",\ - "npm:0.9.2"\ - ],\ - [\ - "async-each",\ - "npm:1.0.3"\ - ],\ - [\ - "async-limiter",\ - "npm:1.0.1"\ - ],\ - [\ - "async-retry",\ - "npm:1.3.1"\ - ],\ - [\ - "asynckit",\ - "npm:0.4.0"\ - ],\ - [\ - "at-least-node",\ - "npm:1.0.0"\ - ],\ - [\ - "atob",\ - "npm:2.1.2"\ - ],\ - [\ - "aws-sign2",\ - "npm:0.7.0"\ - ],\ - [\ - "aws4",\ - "npm:1.11.0"\ - ],\ - [\ - "babel-eslint",\ - "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0"\ - ],\ - [\ - "babel-jest",\ - "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"\ - ],\ - [\ - "babel-plugin-dynamic-import-node",\ - "npm:2.3.3"\ - ],\ - [\ - "babel-plugin-istanbul",\ - "npm:6.0.0"\ - ],\ - [\ - "babel-plugin-jest-hoist",\ - "npm:26.6.2"\ - ],\ - [\ - "babel-plugin-polyfill-corejs2",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"\ - ],\ - [\ - "babel-plugin-polyfill-corejs3",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"\ - ],\ - [\ - "babel-plugin-polyfill-regenerator",\ - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"\ - ],\ - [\ - "babel-plugin-transform-flow-enums",\ - "npm:0.0.2"\ - ],\ - [\ - "babel-preset-current-node-syntax",\ - "virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1"\ - ],\ - [\ - "babel-preset-jest",\ - "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"\ - ],\ - [\ - "balanced-match",\ - "npm:1.0.2"\ - ],\ - [\ - "base",\ - "npm:0.11.2"\ - ],\ - [\ - "base64-js",\ - "npm:1.5.1"\ - ],\ - [\ - "bcrypt-pbkdf",\ - "npm:1.0.2"\ - ],\ - [\ - "before-after-hook",\ - "npm:2.2.1"\ - ],\ - [\ - "benchmark",\ - "npm:2.1.4"\ - ],\ - [\ - "binary-extensions",\ - "npm:1.13.1"\ - ],\ - [\ - "bl",\ - "npm:4.1.0"\ - ],\ - [\ - "boxen",\ - "npm:4.2.0"\ - ],\ - [\ - "brace-expansion",\ - "npm:1.1.11"\ - ],\ - [\ - "braces",\ - "npm:3.0.2"\ - ],\ - [\ - "browser-process-hrtime",\ - "npm:1.0.0"\ - ],\ - [\ - "browserslist",\ - "npm:4.23.3"\ - ],\ - [\ - "bser",\ - "npm:2.1.1"\ - ],\ - [\ - "buffer",\ - "npm:5.7.1"\ - ],\ - [\ - "buffer-from",\ - "npm:1.1.1"\ - ],\ - [\ - "builtins",\ - "npm:1.0.3"\ - ],\ - [\ - "bytes",\ - "npm:3.0.0"\ - ],\ - [\ - "cacache",\ - "npm:15.0.6"\ - ],\ - [\ - "cache-base",\ - "npm:1.0.1"\ - ],\ - [\ - "cacheable-lookup",\ - "npm:5.0.4"\ - ],\ - [\ - "cacheable-request",\ - "npm:6.1.0"\ - ],\ - [\ - "call-bind",\ - "npm:1.0.2"\ - ],\ - [\ - "caller-callsite",\ - "npm:2.0.0"\ - ],\ - [\ - "caller-path",\ - "npm:2.0.0"\ - ],\ - [\ - "callsites",\ - "npm:3.1.0"\ - ],\ - [\ - "camelcase",\ - "npm:5.3.1"\ - ],\ - [\ - "camelcase-keys",\ - "npm:6.2.2"\ - ],\ - [\ - "camelize",\ - "npm:1.0.0"\ - ],\ - [\ - "caniuse-lite",\ - "npm:1.0.30001228"\ - ],\ - [\ - "capture-exit",\ - "npm:2.0.0"\ - ],\ - [\ - "caseless",\ - "npm:0.12.0"\ - ],\ - [\ - "chalk",\ - "npm:4.1.1"\ - ],\ - [\ - "char-regex",\ - "npm:1.0.2"\ - ],\ - [\ - "chardet",\ - "npm:0.7.0"\ - ],\ - [\ - "chokidar",\ - "npm:3.5.1"\ - ],\ - [\ - "chownr",\ - "npm:2.0.0"\ - ],\ - [\ - "chrome-launcher",\ - "npm:0.15.2"\ - ],\ - [\ - "ci-info",\ - "npm:2.0.0"\ - ],\ - [\ - "cjs-module-lexer",\ - "npm:0.6.0"\ - ],\ - [\ - "class-utils",\ - "npm:0.3.6"\ - ],\ - [\ - "clean-stack",\ - "npm:2.2.0"\ - ],\ - [\ - "cli-boxes",\ - "npm:2.2.1"\ - ],\ - [\ - "cli-cursor",\ - "npm:3.1.0"\ - ],\ - [\ - "cli-spinners",\ - "npm:2.6.0"\ - ],\ - [\ - "cli-width",\ - "npm:3.0.0"\ - ],\ - [\ - "cliui",\ - "npm:7.0.4"\ - ],\ - [\ - "clone",\ - "npm:1.0.4"\ - ],\ - [\ - "clone-deep",\ - "npm:4.0.1"\ - ],\ - [\ - "clone-response",\ - "npm:1.0.2"\ - ],\ - [\ - "co",\ - "npm:4.6.0"\ - ],\ - [\ - "code-point-at",\ - "npm:1.1.0"\ - ],\ - [\ - "collect-v8-coverage",\ - "npm:1.0.1"\ - ],\ - [\ - "collection-visit",\ - "npm:1.0.0"\ - ],\ - [\ - "color-convert",\ - "npm:1.9.3"\ - ],\ - [\ - "color-name",\ - "npm:1.1.3"\ - ],\ - [\ - "colorette",\ - "npm:1.2.2"\ - ],\ - [\ - "combined-stream",\ - "npm:1.0.8"\ - ],\ - [\ - "command-exists",\ - "npm:1.2.9"\ - ],\ - [\ - "commander",\ - "npm:4.1.1"\ - ],\ - [\ - "commitlint",\ - "npm:12.1.4"\ - ],\ - [\ - "commondir",\ - "npm:1.0.1"\ - ],\ - [\ - "compare-func",\ - "npm:2.0.0"\ - ],\ - [\ - "component-emitter",\ - "npm:1.3.0"\ - ],\ - [\ - "compressible",\ - "npm:2.0.18"\ - ],\ - [\ - "compression",\ - "npm:1.7.4"\ - ],\ - [\ - "concat-map",\ - "npm:0.0.1"\ - ],\ - [\ - "concat-stream",\ - "npm:2.0.0"\ - ],\ - [\ - "configstore",\ - "npm:5.0.1"\ - ],\ - [\ - "connect",\ - "npm:3.7.0"\ - ],\ - [\ - "console-control-strings",\ - "npm:1.1.0"\ - ],\ - [\ - "conventional-changelog",\ - "npm:3.1.24"\ - ],\ - [\ - "conventional-changelog-angular",\ - "npm:5.0.12"\ - ],\ - [\ - "conventional-changelog-atom",\ - "npm:2.0.8"\ - ],\ - [\ - "conventional-changelog-codemirror",\ - "npm:2.0.8"\ - ],\ - [\ - "conventional-changelog-conventionalcommits",\ - "npm:4.6.0"\ - ],\ - [\ - "conventional-changelog-core",\ - "npm:4.2.2"\ - ],\ - [\ - "conventional-changelog-ember",\ - "npm:2.0.9"\ - ],\ - [\ - "conventional-changelog-eslint",\ - "npm:3.0.9"\ - ],\ - [\ - "conventional-changelog-express",\ - "npm:2.0.6"\ - ],\ - [\ - "conventional-changelog-jquery",\ - "npm:3.0.11"\ - ],\ - [\ - "conventional-changelog-jshint",\ - "npm:2.0.9"\ - ],\ - [\ - "conventional-changelog-preset-loader",\ - "npm:2.3.4"\ - ],\ - [\ - "conventional-changelog-writer",\ - "npm:4.1.0"\ - ],\ - [\ - "conventional-commits-filter",\ - "npm:2.0.7"\ - ],\ - [\ - "conventional-commits-parser",\ - "npm:3.2.1"\ - ],\ - [\ - "conventional-recommended-bump",\ - "npm:6.1.0"\ - ],\ - [\ - "convert-source-map",\ - "npm:1.7.0"\ - ],\ - [\ - "copy-descriptor",\ - "npm:0.1.1"\ - ],\ - [\ - "core-js",\ - "npm:3.12.1"\ - ],\ - [\ - "core-js-compat",\ - "npm:3.12.1"\ - ],\ - [\ - "core-util-is",\ - "npm:1.0.2"\ - ],\ - [\ - "cosmiconfig",\ - "npm:7.0.0"\ - ],\ - [\ - "cross-spawn",\ - "npm:7.0.3"\ - ],\ - [\ - "crypto-random-string",\ - "npm:2.0.0"\ - ],\ - [\ - "css-color-keywords",\ - "npm:1.0.0"\ - ],\ - [\ - "css-to-react-native",\ - "npm:3.0.0"\ - ],\ - [\ - "cssom",\ - "npm:0.4.4"\ - ],\ - [\ - "cssstyle",\ - "npm:2.3.0"\ - ],\ - [\ - "csstype",\ - "npm:3.0.9"\ - ],\ - [\ - "currently-unhandled",\ - "npm:0.4.1"\ - ],\ - [\ - "dargs",\ - "npm:7.0.0"\ - ],\ - [\ - "dashdash",\ - "npm:1.14.1"\ - ],\ - [\ - "data-urls",\ - "npm:2.0.0"\ - ],\ - [\ - "dateformat",\ - "npm:3.0.3"\ - ],\ - [\ - "dayjs",\ - "npm:1.11.13"\ - ],\ - [\ - "debug",\ - "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"\ - ],\ - [\ - "decamelize",\ - "npm:1.2.0"\ - ],\ - [\ - "decamelize-keys",\ - "npm:1.1.0"\ - ],\ - [\ - "decimal.js",\ - "npm:10.2.1"\ - ],\ - [\ - "decode-uri-component",\ - "npm:0.2.0"\ - ],\ - [\ - "decompress-response",\ - "npm:3.3.0"\ - ],\ - [\ - "dedent",\ - "npm:0.7.0"\ - ],\ - [\ - "deep-extend",\ - "npm:0.6.0"\ - ],\ - [\ - "deep-is",\ - "npm:0.1.3"\ - ],\ - [\ - "deepmerge",\ - "npm:4.3.1"\ - ],\ - [\ - "defaults",\ - "npm:1.0.3"\ - ],\ - [\ - "defer-to-connect",\ - "npm:1.1.3"\ - ],\ - [\ - "define-properties",\ - "npm:1.1.3"\ - ],\ - [\ - "define-property",\ - "npm:0.2.5"\ - ],\ - [\ - "del",\ - "npm:6.0.0"\ - ],\ - [\ - "delayed-stream",\ - "npm:1.0.0"\ - ],\ - [\ - "delegates",\ - "npm:1.0.0"\ - ],\ - [\ - "denodeify",\ - "npm:1.2.1"\ - ],\ - [\ - "depd",\ - "npm:2.0.0"\ - ],\ - [\ - "deprecated-obj",\ - "npm:2.0.0"\ - ],\ - [\ - "deprecation",\ - "npm:2.3.1"\ - ],\ - [\ - "destroy",\ - "npm:1.2.0"\ - ],\ - [\ - "detect-newline",\ - "npm:3.1.0"\ - ],\ - [\ - "diff-sequences",\ - "npm:26.6.2"\ - ],\ - [\ - "dir-glob",\ - "npm:3.0.1"\ - ],\ - [\ - "doctrine",\ - "npm:2.1.0"\ - ],\ - [\ - "dom-serializer",\ - "npm:1.3.2"\ - ],\ - [\ - "domelementtype",\ - "npm:2.2.0"\ - ],\ - [\ - "domexception",\ - "npm:2.0.1"\ - ],\ - [\ - "domhandler",\ - "npm:4.2.2"\ - ],\ - [\ - "domutils",\ - "npm:2.8.0"\ - ],\ - [\ - "dot-case",\ - "npm:3.0.4"\ - ],\ - [\ - "dot-prop",\ - "npm:5.3.0"\ - ],\ - [\ - "duplexer3",\ - "npm:0.1.4"\ - ],\ - [\ - "ecc-jsbn",\ - "npm:0.1.2"\ - ],\ - [\ - "ee-first",\ - "npm:1.1.1"\ - ],\ - [\ - "ejs",\ - "npm:3.1.6"\ - ],\ - [\ - "electron-to-chromium",\ - "npm:1.3.728"\ - ],\ - [\ - "emittery",\ - "npm:0.7.2"\ - ],\ - [\ - "emoji-regex",\ - "npm:8.0.0"\ - ],\ - [\ - "encodeurl",\ - "npm:1.0.2"\ - ],\ - [\ - "encoding",\ - "npm:0.1.13"\ - ],\ - [\ - "end-of-stream",\ - "npm:1.4.4"\ - ],\ - [\ - "enquirer",\ - "npm:2.3.6"\ - ],\ - [\ - "entities",\ - "npm:2.2.0"\ - ],\ - [\ - "env-paths",\ - "npm:2.2.1"\ - ],\ - [\ - "envinfo",\ - "npm:7.14.0"\ - ],\ - [\ - "err-code",\ - "npm:2.0.3"\ - ],\ - [\ - "error-ex",\ - "npm:1.3.2"\ - ],\ - [\ - "error-stack-parser",\ - "npm:2.1.4"\ - ],\ - [\ - "errorhandler",\ - "npm:1.5.1"\ - ],\ - [\ - "es-abstract",\ - "npm:1.18.0"\ - ],\ - [\ - "es-to-primitive",\ - "npm:1.2.1"\ - ],\ - [\ - "escalade",\ - "npm:3.1.1"\ - ],\ - [\ - "escape-goat",\ - "npm:2.1.1"\ - ],\ - [\ - "escape-html",\ - "npm:1.0.3"\ - ],\ - [\ - "escape-string-regexp",\ - "npm:1.0.5"\ - ],\ - [\ - "escodegen",\ - "npm:2.0.0"\ - ],\ - [\ - "eslint",\ - "npm:7.26.0"\ - ],\ - [\ - "eslint-config-prettier",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"\ - ],\ - [\ - "eslint-plugin-compat",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"\ - ],\ - [\ - "eslint-plugin-eslint-comments",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"\ - ],\ - [\ - "eslint-plugin-flowtype",\ - "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3"\ - ],\ - [\ - "eslint-plugin-jest",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"\ - ],\ - [\ - "eslint-plugin-prettier",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"\ - ],\ - [\ - "eslint-plugin-react",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"\ - ],\ - [\ - "eslint-plugin-react-hooks",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"\ - ],\ - [\ - "eslint-plugin-react-native",\ - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"\ - ],\ - [\ - "eslint-plugin-react-native-globals",\ - "npm:0.1.2"\ - ],\ - [\ - "eslint-scope",\ - "npm:5.1.1"\ - ],\ - [\ - "eslint-utils",\ - "npm:2.1.0"\ - ],\ - [\ - "eslint-visitor-keys",\ - "npm:1.3.0"\ - ],\ - [\ - "espree",\ - "npm:7.3.1"\ - ],\ - [\ - "esprima",\ - "npm:4.0.1"\ - ],\ - [\ - "esquery",\ - "npm:1.4.0"\ - ],\ - [\ - "esrecurse",\ - "npm:4.3.0"\ - ],\ - [\ - "estraverse",\ - "npm:5.2.0"\ - ],\ - [\ - "esutils",\ - "npm:2.0.3"\ - ],\ - [\ - "etag",\ - "npm:1.8.1"\ - ],\ - [\ - "event-target-shim",\ - "npm:5.0.1"\ - ],\ - [\ - "exec-sh",\ - "npm:0.3.6"\ - ],\ - [\ - "execa",\ - "npm:5.1.1"\ - ],\ - [\ - "exit",\ - "npm:0.1.2"\ - ],\ - [\ - "expand-brackets",\ - "npm:2.1.4"\ - ],\ - [\ - "expect",\ - "npm:26.6.2"\ - ],\ - [\ - "exponential-backoff",\ - "npm:3.1.1"\ - ],\ - [\ - "extend",\ - "npm:3.0.2"\ - ],\ - [\ - "extend-shallow",\ - "npm:2.0.1"\ - ],\ - [\ - "external-editor",\ - "npm:3.1.0"\ - ],\ - [\ - "extglob",\ - "npm:2.0.4"\ - ],\ - [\ - "extsprintf",\ - "npm:1.3.0"\ - ],\ - [\ - "fast-deep-equal",\ - "npm:3.1.3"\ - ],\ - [\ - "fast-diff",\ - "npm:1.2.0"\ - ],\ - [\ - "fast-glob",\ - "npm:3.3.2"\ - ],\ - [\ - "fast-json-stable-stringify",\ - "npm:2.1.0"\ - ],\ - [\ - "fast-levenshtein",\ - "npm:2.0.6"\ - ],\ - [\ - "fast-xml-parser",\ - "npm:4.5.0"\ - ],\ - [\ - "fastq",\ - "npm:1.11.0"\ - ],\ - [\ - "fb-watchman",\ - "npm:2.0.1"\ - ],\ - [\ - "figures",\ - "npm:3.2.0"\ - ],\ - [\ - "file-entry-cache",\ - "npm:6.0.1"\ - ],\ - [\ - "filelist",\ - "npm:1.0.2"\ - ],\ - [\ - "fill-range",\ - "npm:7.0.1"\ - ],\ - [\ - "filter-obj",\ - "npm:1.1.0"\ - ],\ - [\ - "finalhandler",\ - "npm:1.1.2"\ - ],\ - [\ - "find-cache-dir",\ - "npm:2.1.0"\ - ],\ - [\ - "find-up",\ - "npm:4.1.0"\ - ],\ - [\ - "flat",\ - "npm:5.0.2"\ - ],\ - [\ - "flat-cache",\ - "npm:3.0.4"\ - ],\ - [\ - "flatted",\ - "npm:3.1.1"\ - ],\ - [\ - "flow-enums-runtime",\ - "npm:0.0.6"\ - ],\ - [\ - "flow-parser",\ - "npm:0.246.0"\ - ],\ - [\ - "for-in",\ - "npm:1.0.2"\ - ],\ - [\ - "forever-agent",\ - "npm:0.6.1"\ - ],\ - [\ - "form-data",\ - "npm:2.3.3"\ - ],\ - [\ - "fragment-cache",\ - "npm:0.2.1"\ - ],\ - [\ - "fresh",\ - "npm:0.5.2"\ - ],\ - [\ - "fs-extra",\ - "npm:9.1.0"\ - ],\ - [\ - "fs-minipass",\ - "npm:2.1.0"\ - ],\ - [\ - "fs-readdir-recursive",\ - "npm:1.1.0"\ - ],\ - [\ - "fs.realpath",\ - "npm:1.0.0"\ - ],\ - [\ - "fsevents",\ - "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"\ - ],\ - [\ - "function-bind",\ - "npm:1.1.1"\ - ],\ - [\ - "functional-red-black-tree",\ - "npm:1.0.1"\ - ],\ - [\ - "gauge",\ - "npm:2.7.4"\ - ],\ - [\ - "gensync",\ - "npm:1.0.0-beta.2"\ - ],\ - [\ - "get-caller-file",\ - "npm:2.0.5"\ - ],\ - [\ - "get-intrinsic",\ - "npm:1.1.1"\ - ],\ - [\ - "get-package-type",\ - "npm:0.1.0"\ - ],\ - [\ - "get-pkg-repo",\ - "npm:1.4.0"\ - ],\ - [\ - "get-stdin",\ - "npm:6.0.0"\ - ],\ - [\ - "get-stream",\ - "npm:5.2.0"\ - ],\ - [\ - "get-value",\ - "npm:2.0.6"\ - ],\ - [\ - "getpass",\ - "npm:0.1.7"\ - ],\ - [\ - "gh-got",\ - "npm:8.1.0"\ - ],\ - [\ - "git-raw-commits",\ - "npm:2.0.10"\ - ],\ - [\ - "git-remote-origin-url",\ - "npm:2.0.0"\ - ],\ - [\ - "git-semver-tags",\ - "npm:4.1.1"\ - ],\ - [\ - "git-up",\ - "npm:4.0.2"\ - ],\ - [\ - "git-url-parse",\ - "npm:11.3.0"\ - ],\ - [\ - "gitconfiglocal",\ - "npm:1.0.0"\ - ],\ - [\ - "github-username",\ - "npm:5.0.1"\ - ],\ - [\ - "glob",\ - "npm:7.1.7"\ - ],\ - [\ - "glob-parent",\ - "npm:5.1.2"\ - ],\ - [\ - "global-dirs",\ - "npm:0.1.1"\ - ],\ - [\ - "globals",\ - "npm:11.12.0"\ - ],\ - [\ - "globby",\ - "npm:11.0.3"\ - ],\ - [\ - "got",\ - "npm:9.6.0"\ - ],\ - [\ - "graceful-fs",\ - "npm:4.2.6"\ - ],\ - [\ - "growly",\ - "npm:1.3.0"\ - ],\ - [\ - "handlebars",\ - "npm:4.7.7"\ - ],\ - [\ - "har-schema",\ - "npm:2.0.0"\ - ],\ - [\ - "har-validator",\ - "npm:5.1.5"\ - ],\ - [\ - "hard-rejection",\ - "npm:2.1.0"\ - ],\ - [\ - "has",\ - "npm:1.0.3"\ - ],\ - [\ - "has-bigints",\ - "npm:1.0.1"\ - ],\ - [\ - "has-flag",\ - "npm:4.0.0"\ - ],\ - [\ - "has-symbols",\ - "npm:1.0.2"\ - ],\ - [\ - "has-unicode",\ - "npm:2.0.1"\ - ],\ - [\ - "has-value",\ - "npm:1.0.0"\ - ],\ - [\ - "has-values",\ - "npm:1.0.0"\ - ],\ - [\ - "has-yarn",\ - "npm:2.1.0"\ - ],\ - [\ - "hermes-estree",\ - "npm:0.19.1"\ - ],\ - [\ - "hermes-parser",\ - "npm:0.19.1"\ - ],\ - [\ - "hermes-profile-transformer",\ - "npm:0.0.6"\ - ],\ - [\ - "hosted-git-info",\ - "npm:2.8.9"\ - ],\ - [\ - "html-encoding-sniffer",\ - "npm:2.0.1"\ - ],\ - [\ - "html-escaper",\ - "npm:2.0.2"\ - ],\ - [\ - "htmlparser2",\ - "npm:7.1.2"\ - ],\ - [\ - "http-cache-semantics",\ - "npm:4.1.0"\ - ],\ - [\ - "http-errors",\ - "npm:2.0.0"\ - ],\ - [\ - "http-proxy-agent",\ - "npm:4.0.1"\ - ],\ - [\ - "http-signature",\ - "npm:1.2.0"\ - ],\ - [\ - "http2-wrapper",\ - "npm:1.0.3"\ - ],\ - [\ - "https-proxy-agent",\ - "npm:5.0.0"\ - ],\ - [\ - "human-signals",\ - "npm:1.1.1"\ - ],\ - [\ - "humanize-ms",\ - "npm:1.2.1"\ - ],\ - [\ - "husky",\ - "npm:6.0.0"\ - ],\ - [\ - "iconv-lite",\ - "npm:0.4.24"\ - ],\ - [\ - "ieee754",\ - "npm:1.2.1"\ - ],\ - [\ - "ignore",\ - "npm:5.1.8"\ - ],\ - [\ - "image-size",\ - "npm:1.1.1"\ - ],\ - [\ - "import-cwd",\ - "npm:3.0.0"\ - ],\ - [\ - "import-fresh",\ - "npm:3.3.0"\ - ],\ - [\ - "import-from",\ - "npm:3.0.0"\ - ],\ - [\ - "import-lazy",\ - "npm:2.1.0"\ - ],\ - [\ - "import-local",\ - "npm:3.0.2"\ - ],\ - [\ - "imurmurhash",\ - "npm:0.1.4"\ - ],\ - [\ - "indent-string",\ - "npm:4.0.0"\ - ],\ - [\ - "infer-owner",\ - "npm:1.0.4"\ - ],\ - [\ - "inflight",\ - "npm:1.0.6"\ - ],\ - [\ - "inherits",\ - "npm:2.0.4"\ - ],\ - [\ - "ini",\ - "npm:1.3.8"\ - ],\ - [\ - "inquirer",\ - "npm:7.3.3"\ - ],\ - [\ - "internal-slot",\ - "npm:1.0.3"\ - ],\ - [\ - "interpret",\ - "npm:1.4.0"\ - ],\ - [\ - "invariant",\ - "npm:2.2.4"\ - ],\ - [\ - "ip",\ - "npm:1.1.5"\ - ],\ - [\ - "is-absolute",\ - "npm:1.0.0"\ - ],\ - [\ - "is-accessor-descriptor",\ - "npm:0.1.6"\ - ],\ - [\ - "is-arrayish",\ - "npm:0.2.1"\ - ],\ - [\ - "is-bigint",\ - "npm:1.0.2"\ - ],\ - [\ - "is-binary-path",\ - "npm:1.0.1"\ - ],\ - [\ - "is-boolean-object",\ - "npm:1.1.1"\ - ],\ - [\ - "is-buffer",\ - "npm:1.1.6"\ - ],\ - [\ - "is-callable",\ - "npm:1.2.3"\ - ],\ - [\ - "is-ci",\ - "npm:2.0.0"\ - ],\ - [\ - "is-core-module",\ - "npm:2.4.0"\ - ],\ - [\ - "is-data-descriptor",\ - "npm:0.1.4"\ - ],\ - [\ - "is-date-object",\ - "npm:1.0.4"\ - ],\ - [\ - "is-descriptor",\ - "npm:1.0.2"\ - ],\ - [\ - "is-directory",\ - "npm:0.3.1"\ - ],\ - [\ - "is-docker",\ - "npm:2.2.1"\ - ],\ - [\ - "is-extendable",\ - "npm:0.1.1"\ - ],\ - [\ - "is-extglob",\ - "npm:2.1.1"\ - ],\ - [\ - "is-finite",\ - "npm:1.1.0"\ - ],\ - [\ - "is-fullwidth-code-point",\ - "npm:3.0.0"\ - ],\ - [\ - "is-generator-fn",\ - "npm:2.1.0"\ - ],\ - [\ - "is-git-dirty",\ - "npm:2.0.1"\ - ],\ - [\ - "is-git-repository",\ - "npm:2.0.0"\ - ],\ - [\ - "is-glob",\ - "npm:4.0.1"\ - ],\ - [\ - "is-installed-globally",\ - "npm:0.3.2"\ - ],\ - [\ - "is-interactive",\ - "npm:1.0.0"\ - ],\ - [\ - "is-lambda",\ - "npm:1.0.1"\ - ],\ - [\ - "is-negative-zero",\ - "npm:2.0.1"\ - ],\ - [\ - "is-npm",\ - "npm:5.0.0"\ - ],\ - [\ - "is-number",\ - "npm:3.0.0"\ - ],\ - [\ - "is-number-object",\ - "npm:1.0.5"\ - ],\ - [\ - "is-obj",\ - "npm:2.0.0"\ - ],\ - [\ - "is-path-cwd",\ - "npm:2.2.0"\ - ],\ - [\ - "is-path-inside",\ - "npm:3.0.3"\ - ],\ - [\ - "is-plain-obj",\ - "npm:1.1.0"\ - ],\ - [\ - "is-plain-object",\ - "npm:2.0.4"\ - ],\ - [\ - "is-potential-custom-element-name",\ - "npm:1.0.1"\ - ],\ - [\ - "is-regex",\ - "npm:1.1.3"\ - ],\ - [\ - "is-relative",\ - "npm:1.0.0"\ - ],\ - [\ - "is-ssh",\ - "npm:1.3.3"\ - ],\ - [\ - "is-stream",\ - "npm:2.0.0"\ - ],\ - [\ - "is-string",\ - "npm:1.0.6"\ - ],\ - [\ - "is-symbol",\ - "npm:1.0.4"\ - ],\ - [\ - "is-text-path",\ - "npm:1.0.1"\ - ],\ - [\ - "is-typedarray",\ - "npm:1.0.0"\ - ],\ - [\ - "is-unc-path",\ - "npm:1.0.0"\ - ],\ - [\ - "is-unicode-supported",\ - "npm:0.1.0"\ - ],\ - [\ - "is-utf8",\ - "npm:0.2.1"\ - ],\ - [\ - "is-windows",\ - "npm:1.0.2"\ - ],\ - [\ - "is-wsl",\ - "npm:2.2.0"\ - ],\ - [\ - "is-yarn-global",\ - "npm:0.3.0"\ - ],\ - [\ - "isarray",\ - "npm:1.0.0"\ - ],\ - [\ - "isexe",\ - "npm:2.0.0"\ - ],\ - [\ - "isobject",\ - "npm:3.0.1"\ - ],\ - [\ - "isstream",\ - "npm:0.1.2"\ - ],\ - [\ - "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"\ - ],\ - [\ - "jake",\ - "npm:10.8.2"\ - ],\ - [\ - "jest",\ - "npm:26.6.3"\ - ],\ - [\ - "jest-changed-files",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-cli",\ - "npm:26.6.3"\ - ],\ - [\ - "jest-config",\ - "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"\ - ],\ - [\ - "jest-diff",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-docblock",\ - "npm:26.0.0"\ - ],\ - [\ - "jest-each",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-environment-jsdom",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-environment-node",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-get-type",\ - "npm:26.3.0"\ - ],\ - [\ - "jest-haste-map",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-jasmine2",\ - "npm:26.6.3"\ - ],\ - [\ - "jest-leak-detector",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-matcher-utils",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-message-util",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-mock",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-pnp-resolver",\ - "virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.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-serializer",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-snapshot",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-util",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-validate",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-watcher",\ - "npm:26.6.2"\ - ],\ - [\ - "jest-worker",\ - "npm:26.6.2"\ - ],\ - [\ - "jetifier",\ - "npm:1.6.8"\ - ],\ - [\ - "joi",\ - "npm:17.13.3"\ - ],\ - [\ - "js-tokens",\ - "npm:4.0.0"\ - ],\ - [\ - "js-yaml",\ - "npm:3.14.1"\ - ],\ - [\ - "jsbn",\ - "npm:0.1.1"\ - ],\ - [\ - "jsc-android",\ - "npm:250231.0.0"\ - ],\ - [\ - "jsc-safe-url",\ - "npm:0.2.4"\ - ],\ - [\ - "jscodeshift",\ - "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0"\ - ],\ - [\ - "jsdom",\ - "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3"\ - ],\ - [\ - "jsesc",\ - "npm:2.5.2"\ - ],\ - [\ - "json-buffer",\ - "npm:3.0.0"\ - ],\ - [\ - "json-parse-better-errors",\ - "npm:1.0.2"\ - ],\ - [\ - "json-parse-even-better-errors",\ - "npm:2.3.1"\ - ],\ - [\ - "json-schema",\ - "npm:0.2.3"\ - ],\ - [\ - "json-schema-traverse",\ - "npm:0.4.1"\ - ],\ - [\ - "json-stable-stringify-without-jsonify",\ - "npm:1.0.1"\ - ],\ - [\ - "json-stringify-safe",\ - "npm:5.0.1"\ - ],\ - [\ - "json5",\ - "npm:2.2.0"\ - ],\ - [\ - "jsonfile",\ - "npm:6.1.0"\ - ],\ - [\ - "jsonparse",\ - "npm:1.3.1"\ - ],\ - [\ - "jsprim",\ - "npm:1.4.1"\ - ],\ - [\ - "jsx-ast-utils",\ - "npm:3.2.0"\ - ],\ - [\ - "keyv",\ - "npm:3.1.0"\ - ],\ - [\ - "kind-of",\ - "npm:6.0.3"\ - ],\ - [\ - "kleur",\ - "npm:3.0.3"\ - ],\ - [\ - "latest-version",\ - "npm:5.1.0"\ - ],\ - [\ - "leven",\ - "npm:3.1.0"\ - ],\ - [\ - "levn",\ - "npm:0.4.1"\ - ],\ - [\ - "lighthouse-logger",\ - "npm:1.4.2"\ - ],\ - [\ - "lines-and-columns",\ - "npm:1.1.6"\ - ],\ - [\ - "load-json-file",\ - "npm:1.1.0"\ - ],\ - [\ - "locate-path",\ - "npm:5.0.0"\ - ],\ - [\ - "lodash",\ - "npm:4.17.21"\ - ],\ - [\ - "lodash.clonedeep",\ - "npm:4.5.0"\ - ],\ - [\ - "lodash.debounce",\ - "npm:4.0.8"\ - ],\ - [\ - "lodash.ismatch",\ - "npm:4.4.0"\ - ],\ - [\ - "lodash.memoize",\ - "npm:4.1.2"\ - ],\ - [\ - "lodash.throttle",\ - "npm:4.1.1"\ - ],\ - [\ - "lodash.truncate",\ - "npm:4.4.2"\ - ],\ - [\ - "log-symbols",\ - "npm:4.1.0"\ - ],\ - [\ - "logkitty",\ - "npm:0.7.1"\ - ],\ - [\ - "loose-envify",\ - "npm:1.4.0"\ - ],\ - [\ - "loud-rejection",\ - "npm:1.6.0"\ - ],\ - [\ - "lower-case",\ - "npm:2.0.2"\ - ],\ - [\ - "lowercase-keys",\ - "npm:2.0.0"\ - ],\ - [\ - "lru-cache",\ - "npm:6.0.0"\ - ],\ - [\ - "macos-release",\ - "npm:2.4.1"\ - ],\ - [\ - "make-dir",\ - "npm:3.1.0"\ - ],\ - [\ - "make-fetch-happen",\ - "npm:8.0.14"\ - ],\ - [\ - "makeerror",\ - "npm:1.0.11"\ - ],\ - [\ - "map-cache",\ - "npm:0.2.2"\ - ],\ - [\ - "map-obj",\ - "npm:1.0.1"\ - ],\ - [\ - "map-visit",\ - "npm:1.0.0"\ - ],\ - [\ - "marky",\ - "npm:1.2.5"\ - ],\ - [\ - "memoize-one",\ - "npm:5.2.1"\ - ],\ - [\ - "meow",\ - "npm:8.1.2"\ - ],\ - [\ - "merge-stream",\ - "npm:2.0.0"\ - ],\ - [\ - "merge2",\ - "npm:1.4.1"\ - ],\ - [\ - "metro",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-babel-transformer",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-cache",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-cache-key",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-config",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-core",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-file-map",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-minify-terser",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-react-native-babel-preset",\ - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"\ - ],\ - [\ - "metro-resolver",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-runtime",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-source-map",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-symbolicate",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-transform-plugins",\ - "npm:0.80.12"\ - ],\ - [\ - "metro-transform-worker",\ - "npm:0.80.12"\ - ],\ - [\ - "micromatch",\ - "npm:4.0.4"\ - ],\ - [\ - "microtime",\ - "npm:3.0.0"\ - ],\ - [\ - "mime",\ - "npm:2.6.0"\ - ],\ - [\ - "mime-db",\ - "npm:1.47.0"\ - ],\ - [\ - "mime-types",\ - "npm:2.1.30"\ - ],\ - [\ - "mimic-fn",\ - "npm:2.1.0"\ - ],\ - [\ - "mimic-response",\ - "npm:1.0.1"\ - ],\ - [\ - "min-indent",\ - "npm:1.0.1"\ - ],\ - [\ - "minimatch",\ - "npm:3.0.4"\ - ],\ - [\ - "minimist",\ - "npm:1.2.5"\ - ],\ - [\ - "minimist-options",\ - "npm:4.1.0"\ - ],\ - [\ - "minipass",\ - "npm:3.1.3"\ - ],\ - [\ - "minipass-collect",\ - "npm:1.0.2"\ - ],\ - [\ - "minipass-fetch",\ - "npm:1.3.3"\ - ],\ - [\ - "minipass-flush",\ - "npm:1.0.5"\ - ],\ - [\ - "minipass-pipeline",\ - "npm:1.2.4"\ - ],\ - [\ - "minipass-sized",\ - "npm:1.0.3"\ - ],\ - [\ - "minizlib",\ - "npm:2.1.2"\ - ],\ - [\ - "mixin-deep",\ - "npm:1.3.2"\ - ],\ - [\ - "mkdirp",\ - "npm:1.0.4"\ - ],\ - [\ - "modify-values",\ - "npm:1.0.1"\ - ],\ - [\ - "ms",\ - "npm:2.1.3"\ - ],\ - [\ - "mute-stream",\ - "npm:0.0.8"\ - ],\ - [\ - "nanomatch",\ - "npm:1.2.13"\ - ],\ - [\ - "natural-compare",\ - "npm:1.4.0"\ - ],\ - [\ - "negotiator",\ - "npm:0.6.3"\ - ],\ - [\ - "neo-async",\ - "npm:2.6.2"\ - ],\ - [\ - "nice-try",\ - "npm:1.0.5"\ - ],\ - [\ - "no-case",\ - "npm:3.0.4"\ - ],\ - [\ - "nocache",\ - "npm:3.0.4"\ - ],\ - [\ - "node-abort-controller",\ - "npm:3.1.1"\ - ],\ - [\ - "node-addon-api",\ - "npm:1.7.2"\ - ],\ - [\ - "node-dir",\ - "npm:0.1.17"\ - ],\ - [\ - "node-fetch",\ - "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"\ - ],\ - [\ - "node-forge",\ - "npm:1.3.1"\ - ],\ - [\ - "node-gyp",\ - "npm:8.0.0"\ - ],\ - [\ - "node-gyp-build",\ - "npm:3.9.0"\ - ],\ - [\ - "node-int64",\ - "npm:0.4.0"\ - ],\ - [\ - "node-modules-regexp",\ - "npm:1.0.0"\ - ],\ - [\ - "node-notifier",\ - "npm:8.0.2"\ - ],\ - [\ - "node-releases",\ - "npm:1.1.72"\ - ],\ - [\ - "node-stream-zip",\ - "npm:1.15.0"\ - ],\ - [\ - "nopt",\ - "npm:5.0.0"\ - ],\ - [\ - "normalize-package-data",\ - "npm:2.5.0"\ - ],\ - [\ - "normalize-path",\ - "npm:3.0.0"\ - ],\ - [\ - "normalize-url",\ - "npm:4.5.0"\ - ],\ - [\ - "npm-run-path",\ - "npm:4.0.1"\ - ],\ - [\ - "npmlog",\ - "npm:4.1.2"\ - ],\ - [\ - "nullthrows",\ - "npm:1.1.1"\ - ],\ - [\ - "number-is-nan",\ - "npm:1.0.1"\ - ],\ - [\ - "nwsapi",\ - "npm:2.2.0"\ - ],\ - [\ - "oauth-sign",\ - "npm:0.9.0"\ - ],\ - [\ - "ob1",\ - "npm:0.80.12"\ - ],\ - [\ - "object-assign",\ - "npm:4.1.1"\ - ],\ - [\ - "object-copy",\ - "npm:0.1.0"\ - ],\ - [\ - "object-inspect",\ - "npm:1.10.3"\ - ],\ - [\ - "object-keys",\ - "npm:1.1.1"\ - ],\ - [\ - "object-visit",\ - "npm:1.0.1"\ - ],\ - [\ - "object.assign",\ - "npm:4.1.2"\ - ],\ - [\ - "object.entries",\ - "npm:1.1.3"\ - ],\ - [\ - "object.fromentries",\ - "npm:2.0.4"\ - ],\ - [\ - "object.pick",\ - "npm:1.3.0"\ - ],\ - [\ - "object.values",\ - "npm:1.1.3"\ - ],\ - [\ - "on-finished",\ - "npm:2.4.1"\ - ],\ - [\ - "on-headers",\ - "npm:1.0.2"\ - ],\ - [\ - "once",\ - "npm:1.4.0"\ - ],\ - [\ - "onetime",\ - "npm:5.1.2"\ - ],\ - [\ - "open",\ - "npm:6.4.0"\ - ],\ - [\ - "optionator",\ - "npm:0.9.1"\ - ],\ - [\ - "ora",\ - "npm:5.4.1"\ - ],\ - [\ - "os-name",\ - "npm:4.0.0"\ - ],\ - [\ - "os-tmpdir",\ - "npm:1.0.2"\ - ],\ - [\ - "p-cancelable",\ - "npm:1.1.0"\ - ],\ - [\ - "p-each-series",\ - "npm:2.2.0"\ - ],\ - [\ - "p-finally",\ - "npm:1.0.0"\ - ],\ - [\ - "p-limit",\ - "npm:2.3.0"\ - ],\ - [\ - "p-locate",\ - "npm:4.1.0"\ - ],\ - [\ - "p-map",\ - "npm:4.0.0"\ - ],\ - [\ - "p-try",\ - "npm:2.2.0"\ - ],\ - [\ - "package-json",\ - "npm:6.5.0"\ - ],\ - [\ - "param-case",\ - "npm:3.0.4"\ - ],\ - [\ - "parent-module",\ - "npm:1.0.1"\ - ],\ - [\ - "parse-github-repo-url",\ - "npm:1.4.1"\ - ],\ - [\ - "parse-json",\ - "npm:5.2.0"\ - ],\ - [\ - "parse-path",\ - "npm:4.0.3"\ - ],\ - [\ - "parse-url",\ - "npm:5.0.2"\ - ],\ - [\ - "parse5",\ - "npm:6.0.1"\ - ],\ - [\ - "parseurl",\ - "npm:1.3.3"\ - ],\ - [\ - "pascalcase",\ - "npm:0.1.1"\ - ],\ - [\ - "path-dirname",\ - "npm:1.0.2"\ - ],\ - [\ - "path-exists",\ - "npm:4.0.0"\ - ],\ - [\ - "path-is-absolute",\ - "npm:1.0.1"\ - ],\ - [\ - "path-key",\ - "npm:3.1.1"\ - ],\ - [\ - "path-parse",\ - "npm:1.0.6"\ - ],\ - [\ - "path-type",\ - "npm:4.0.0"\ - ],\ - [\ - "performance-now",\ - "npm:2.1.0"\ - ],\ - [\ - "performance-testing",\ - "workspace:packages/performance-testing"\ - ],\ - [\ - "picocolors",\ - "npm:1.1.0"\ - ],\ - [\ - "picomatch",\ - "npm:2.2.3"\ - ],\ - [\ - "pify",\ - "npm:2.3.0"\ - ],\ - [\ - "pinkie",\ - "npm:2.0.4"\ - ],\ - [\ - "pinkie-promise",\ - "npm:2.0.1"\ - ],\ - [\ - "pirates",\ - "npm:4.0.1"\ - ],\ - [\ - "pkg-dir",\ - "npm:4.2.0"\ - ],\ - [\ - "platform",\ - "npm:1.3.6"\ - ],\ - [\ - "posix-character-classes",\ - "npm:0.1.1"\ - ],\ - [\ - "postcss-value-parser",\ - "npm:4.1.0"\ - ],\ - [\ - "prelude-ls",\ - "npm:1.2.1"\ - ],\ - [\ - "prepend-file",\ - "npm:2.0.0"\ - ],\ - [\ - "prepend-http",\ - "npm:2.0.0"\ - ],\ - [\ - "prettier",\ - "npm:2.3.0"\ - ],\ - [\ - "prettier-linter-helpers",\ - "npm:1.0.0"\ - ],\ - [\ - "pretty-format",\ - "npm:26.6.2"\ - ],\ - [\ - "process-nextick-args",\ - "npm:2.0.1"\ - ],\ - [\ - "progress",\ - "npm:2.0.3"\ - ],\ - [\ - "promise",\ - "npm:8.3.0"\ - ],\ - [\ - "promise-inflight",\ - "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1"\ - ],\ - [\ - "promise-retry",\ - "npm:2.0.1"\ - ],\ - [\ - "prompts",\ - "npm:2.4.1"\ - ],\ - [\ - "prop-types",\ - "npm:15.7.2"\ - ],\ - [\ - "protocols",\ - "npm:1.4.8"\ - ],\ - [\ - "psl",\ - "npm:1.8.0"\ - ],\ - [\ - "pump",\ - "npm:3.0.0"\ - ],\ - [\ - "punycode",\ - "npm:2.1.1"\ - ],\ - [\ - "pupa",\ - "npm:2.1.1"\ - ],\ - [\ - "q",\ - "npm:1.5.1"\ - ],\ - [\ - "qs",\ - "npm:6.5.2"\ - ],\ - [\ - "query-string",\ - "npm:6.14.1"\ - ],\ - [\ - "querystring",\ - "npm:0.2.1"\ - ],\ - [\ - "queue",\ - "npm:6.0.2"\ - ],\ - [\ - "queue-microtask",\ - "npm:1.2.3"\ - ],\ - [\ - "quick-lru",\ - "npm:4.0.1"\ - ],\ - [\ - "ramda",\ - "npm:0.27.2"\ - ],\ - [\ - "range-parser",\ - "npm:1.2.1"\ - ],\ - [\ - "rc",\ - "npm:1.2.8"\ - ],\ - [\ - "react",\ - "npm:17.0.2"\ - ],\ - [\ - "react-devtools-core",\ - "npm:5.3.1"\ - ],\ - [\ - "react-is",\ - "npm:18.3.1"\ - ],\ - [\ - "react-native",\ - "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"\ - ],\ - [\ - "react-refresh",\ - "npm:0.14.2"\ - ],\ - [\ - "react-shallow-renderer",\ - "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0"\ - ],\ - [\ - "read-pkg",\ - "npm:3.0.0"\ - ],\ - [\ - "read-pkg-up",\ - "npm:7.0.1"\ - ],\ - [\ - "readable-stream",\ - "npm:3.6.0"\ - ],\ - [\ - "readdirp",\ - "npm:2.2.1"\ - ],\ - [\ - "readline",\ - "npm:1.3.0"\ - ],\ - [\ - "recast",\ - "npm:0.21.5"\ - ],\ - [\ - "rechoir",\ - "npm:0.6.2"\ - ],\ - [\ - "redent",\ - "npm:3.0.0"\ - ],\ - [\ - "regenerate",\ - "npm:1.4.2"\ - ],\ - [\ - "regenerate-unicode-properties",\ - "npm:8.2.0"\ - ],\ - [\ - "regenerator-runtime",\ - "npm:0.13.8"\ - ],\ - [\ - "regenerator-transform",\ - "npm:0.14.5"\ - ],\ - [\ - "regex-not",\ - "npm:1.0.2"\ - ],\ - [\ - "regexp.prototype.flags",\ - "npm:1.3.1"\ - ],\ - [\ - "regexpp",\ - "npm:3.1.0"\ - ],\ - [\ - "regexpu-core",\ - "npm:4.7.1"\ - ],\ - [\ - "registry-auth-token",\ - "npm:4.2.1"\ - ],\ - [\ - "registry-url",\ - "npm:5.1.0"\ - ],\ - [\ - "regjsgen",\ - "npm:0.5.2"\ - ],\ - [\ - "regjsparser",\ - "npm:0.6.9"\ - ],\ - [\ - "release-config",\ - "workspace:packages/release-config"\ - ],\ - [\ - "release-it",\ - "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."\ - ],\ - [\ - "remove-trailing-separator",\ - "npm:1.1.0"\ - ],\ - [\ - "repeat-element",\ - "npm:1.1.4"\ - ],\ - [\ - "repeat-string",\ - "npm:1.6.1"\ - ],\ - [\ - "repeating",\ - "npm:2.0.1"\ - ],\ - [\ - "request",\ - "npm:2.88.2"\ - ],\ - [\ - "request-promise-core",\ - "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4"\ - ],\ - [\ - "request-promise-native",\ - "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9"\ - ],\ - [\ - "require-directory",\ - "npm:2.1.1"\ - ],\ - [\ - "require-from-string",\ - "npm:2.0.2"\ - ],\ - [\ - "require-main-filename",\ - "npm:2.0.0"\ - ],\ - [\ - "resolve",\ - "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"\ - ],\ - [\ - "resolve-alpn",\ - "npm:1.1.2"\ - ],\ - [\ - "resolve-cwd",\ - "npm:3.0.0"\ - ],\ - [\ - "resolve-from",\ - "npm:5.0.0"\ - ],\ - [\ - "resolve-global",\ - "npm:1.0.0"\ - ],\ - [\ - "resolve-url",\ - "npm:0.2.1"\ - ],\ - [\ - "responselike",\ - "npm:2.0.0"\ - ],\ - [\ - "restore-cursor",\ - "npm:3.1.0"\ - ],\ - [\ - "ret",\ - "npm:0.1.15"\ - ],\ - [\ - "retry",\ - "npm:0.12.0"\ - ],\ - [\ - "reusify",\ - "npm:1.0.4"\ - ],\ - [\ - "rimraf",\ - "npm:3.0.2"\ - ],\ - [\ - "rsvp",\ - "npm:4.8.5"\ - ],\ - [\ - "run-async",\ - "npm:2.4.1"\ - ],\ - [\ - "run-parallel",\ - "npm:1.2.0"\ - ],\ - [\ - "rxjs",\ - "npm:6.6.7"\ - ],\ - [\ - "safe-buffer",\ - "npm:5.1.2"\ - ],\ - [\ - "safe-regex",\ - "npm:1.1.0"\ - ],\ - [\ - "safer-buffer",\ - "npm:2.1.2"\ - ],\ - [\ - "sane",\ - "npm:4.1.0"\ - ],\ - [\ - "saxes",\ - "npm:5.0.1"\ - ],\ - [\ - "scheduler",\ - "npm:0.24.0-canary-efb381bbf-20230505"\ - ],\ - [\ - "selfsigned",\ - "npm:2.4.1"\ - ],\ - [\ - "semver",\ - "npm:6.3.0"\ - ],\ - [\ - "semver-diff",\ - "npm:3.1.1"\ - ],\ - [\ - "send",\ - "npm:0.19.0"\ - ],\ - [\ - "serialize-error",\ - "npm:2.1.0"\ - ],\ - [\ - "serve-static",\ - "npm:1.16.2"\ - ],\ - [\ - "set-blocking",\ - "npm:2.0.0"\ - ],\ - [\ - "set-value",\ - "npm:2.0.1"\ - ],\ - [\ - "setprototypeof",\ - "npm:1.2.0"\ - ],\ - [\ - "shallow-clone",\ - "npm:3.0.1"\ - ],\ - [\ - "shebang-command",\ - "npm:2.0.0"\ - ],\ - [\ - "shebang-regex",\ - "npm:3.0.0"\ - ],\ - [\ - "shell-quote",\ - "npm:1.8.1"\ - ],\ - [\ - "shelljs",\ - "npm:0.8.4"\ - ],\ - [\ - "shellwords",\ - "npm:0.1.1"\ - ],\ - [\ - "side-channel",\ - "npm:1.0.4"\ - ],\ - [\ - "signal-exit",\ - "npm:3.0.3"\ - ],\ - [\ - "sisteransi",\ - "npm:1.0.5"\ - ],\ - [\ - "slash",\ - "npm:3.0.0"\ - ],\ - [\ - "slice-ansi",\ - "npm:4.0.0"\ - ],\ - [\ - "smart-buffer",\ - "npm:4.1.0"\ - ],\ - [\ - "snapdragon",\ - "npm:0.8.2"\ - ],\ - [\ - "snapdragon-node",\ - "npm:2.1.1"\ - ],\ - [\ - "snapdragon-util",\ - "npm:3.0.1"\ - ],\ - [\ - "socks",\ - "npm:2.6.1"\ - ],\ - [\ - "socks-proxy-agent",\ - "npm:5.0.0"\ - ],\ - [\ - "source-map",\ - "npm:0.6.1"\ - ],\ - [\ - "source-map-resolve",\ - "npm:0.5.3"\ - ],\ - [\ - "source-map-support",\ - "npm:0.5.21"\ - ],\ - [\ - "source-map-url",\ - "npm:0.4.1"\ - ],\ - [\ - "spdx-correct",\ - "npm:3.1.1"\ - ],\ - [\ - "spdx-exceptions",\ - "npm:2.3.0"\ - ],\ - [\ - "spdx-expression-parse",\ - "npm:3.0.1"\ - ],\ - [\ - "spdx-license-ids",\ - "npm:3.0.7"\ - ],\ - [\ - "split",\ - "npm:1.0.1"\ - ],\ - [\ - "split-on-first",\ - "npm:1.1.0"\ - ],\ - [\ - "split-string",\ - "npm:3.1.0"\ - ],\ - [\ - "split2",\ - "npm:3.2.2"\ - ],\ - [\ - "sprintf-js",\ - "npm:1.0.3"\ - ],\ - [\ - "sshpk",\ - "npm:1.16.1"\ - ],\ - [\ - "ssri",\ - "npm:8.0.1"\ - ],\ - [\ - "stack-utils",\ - "npm:2.0.3"\ - ],\ - [\ - "stackframe",\ - "npm:1.3.4"\ - ],\ - [\ - "stacktrace-parser",\ - "npm:0.1.10"\ - ],\ - [\ - "static-extend",\ - "npm:0.1.2"\ - ],\ - [\ - "statuses",\ - "npm:2.0.1"\ - ],\ - [\ - "stealthy-require",\ - "npm:1.1.1"\ - ],\ - [\ - "strict-uri-encode",\ - "npm:2.0.0"\ - ],\ - [\ - "string-length",\ - "npm:4.0.2"\ - ],\ - [\ - "string-width",\ - "npm:4.2.2"\ - ],\ - [\ - "string.prototype.matchall",\ - "npm:4.0.4"\ - ],\ - [\ - "string.prototype.trimend",\ - "npm:1.0.4"\ - ],\ - [\ - "string.prototype.trimstart",\ - "npm:1.0.4"\ - ],\ - [\ - "string_decoder",\ - "npm:1.3.0"\ - ],\ - [\ - "strip-ansi",\ - "npm:6.0.0"\ - ],\ - [\ - "strip-bom",\ - "npm:4.0.0"\ - ],\ - [\ - "strip-eof",\ - "npm:1.0.0"\ - ],\ - [\ - "strip-final-newline",\ - "npm:2.0.0"\ - ],\ - [\ - "strip-indent",\ - "npm:3.0.0"\ - ],\ - [\ - "strip-json-comments",\ - "npm:3.1.1"\ - ],\ - [\ - "strnum",\ - "npm:1.0.5"\ - ],\ - [\ - "sudo-prompt",\ - "npm:9.2.1"\ - ],\ - [\ - "supports-color",\ - "npm:7.2.0"\ - ],\ - [\ - "supports-hyperlinks",\ - "npm:2.2.0"\ - ],\ - [\ - "symbol-tree",\ - "npm:3.2.4"\ - ],\ - [\ - "table",\ - "npm:6.7.1"\ - ],\ - [\ - "tar",\ - "npm:6.1.0"\ - ],\ - [\ - "temp",\ - "npm:0.8.4"\ - ],\ - [\ - "temp-dir",\ - "npm:1.0.0"\ - ],\ - [\ - "temp-write",\ - "npm:4.0.0"\ - ],\ - [\ - "term-size",\ - "npm:2.2.1"\ - ],\ - [\ - "terminal-link",\ - "npm:2.1.1"\ - ],\ - [\ - "terser",\ - "npm:5.33.0"\ - ],\ - [\ - "test-exclude",\ - "npm:6.0.0"\ - ],\ - [\ - "text-extensions",\ - "npm:1.9.0"\ - ],\ - [\ - "text-table",\ - "npm:0.2.0"\ - ],\ - [\ - "throat",\ - "npm:5.0.0"\ - ],\ - [\ - "through",\ - "npm:2.3.8"\ - ],\ - [\ - "through2",\ - "npm:4.0.2"\ - ],\ - [\ - "tmp",\ - "npm:0.0.33"\ - ],\ - [\ - "tmpl",\ - "npm:1.0.4"\ - ],\ - [\ - "to-fast-properties",\ - "npm:2.0.0"\ - ],\ - [\ - "to-object-path",\ - "npm:0.3.0"\ - ],\ - [\ - "to-readable-stream",\ - "npm:1.0.0"\ - ],\ - [\ - "to-regex",\ - "npm:3.0.2"\ - ],\ - [\ - "to-regex-range",\ - "npm:5.0.1"\ - ],\ - [\ - "toidentifier",\ - "npm:1.0.1"\ - ],\ - [\ - "tough-cookie",\ - "npm:2.5.0"\ - ],\ - [\ - "tr46",\ - "npm:2.0.2"\ - ],\ - [\ - "trim-newlines",\ - "npm:3.0.0"\ - ],\ - [\ - "trim-off-newlines",\ - "npm:1.0.1"\ - ],\ - [\ - "ts-toolbelt",\ - "npm:6.15.5"\ - ],\ - [\ - "tslib",\ - "npm:2.2.0"\ - ],\ - [\ - "tsutils",\ - "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"\ - ],\ - [\ - "tunnel-agent",\ - "npm:0.6.0"\ - ],\ - [\ - "tweetnacl",\ - "npm:0.14.5"\ - ],\ - [\ - "type-check",\ - "npm:0.4.0"\ - ],\ - [\ - "type-detect",\ - "npm:4.0.8"\ - ],\ - [\ - "type-fest",\ - "npm:0.8.1"\ - ],\ - [\ - "typedarray",\ - "npm:0.0.6"\ - ],\ - [\ - "typedarray-to-buffer",\ - "npm:3.1.5"\ - ],\ - [\ - "typescript",\ - "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"\ - ],\ - [\ - "uglify-js",\ - "npm:3.13.6"\ - ],\ - [\ - "unbox-primitive",\ - "npm:1.0.1"\ - ],\ - [\ - "unc-path-regex",\ - "npm:0.1.2"\ - ],\ - [\ - "undici-types",\ - "npm:5.26.5"\ - ],\ - [\ - "unicode-canonical-property-names-ecmascript",\ - "npm:1.0.4"\ - ],\ - [\ - "unicode-match-property-ecmascript",\ - "npm:1.0.4"\ - ],\ - [\ - "unicode-match-property-value-ecmascript",\ - "npm:1.2.0"\ - ],\ - [\ - "unicode-property-aliases-ecmascript",\ - "npm:1.1.0"\ - ],\ - [\ - "union-value",\ - "npm:1.0.1"\ - ],\ - [\ - "unique-filename",\ - "npm:1.1.1"\ - ],\ - [\ - "unique-slug",\ - "npm:2.0.2"\ - ],\ - [\ - "unique-string",\ - "npm:2.0.0"\ - ],\ - [\ - "universal-user-agent",\ - "npm:6.0.0"\ - ],\ - [\ - "universalify",\ - "npm:2.0.0"\ - ],\ - [\ - "unpipe",\ - "npm:1.0.0"\ - ],\ - [\ - "unset-value",\ - "npm:1.0.0"\ - ],\ - [\ - "upath",\ - "npm:1.2.0"\ - ],\ - [\ - "update-browserslist-db",\ - "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"\ - ],\ - [\ - "update-notifier",\ - "npm:5.0.0"\ - ],\ - [\ - "uri-js",\ - "npm:4.4.1"\ - ],\ - [\ - "urix",\ - "npm:0.1.0"\ - ],\ - [\ - "url-join",\ - "npm:4.0.1"\ - ],\ - [\ - "url-parse-lax",\ - "npm:3.0.0"\ - ],\ - [\ - "use",\ - "npm:3.1.1"\ - ],\ - [\ - "util-deprecate",\ - "npm:1.0.2"\ - ],\ - [\ - "utils-merge",\ - "npm:1.0.1"\ - ],\ - [\ - "uuid",\ - "npm:3.4.0"\ - ],\ - [\ - "v8-compile-cache",\ - "npm:2.3.0"\ - ],\ - [\ - "v8-to-istanbul",\ - "npm:7.1.2"\ - ],\ - [\ - "validate-npm-package-license",\ - "npm:3.0.4"\ - ],\ - [\ - "validate-npm-package-name",\ - "npm:3.0.0"\ - ],\ - [\ - "vary",\ - "npm:1.1.2"\ - ],\ - [\ - "verror",\ - "npm:1.10.0"\ - ],\ - [\ - "vlq",\ - "npm:1.0.1"\ - ],\ - [\ - "w3c-hr-time",\ - "npm:1.0.2"\ - ],\ - [\ - "w3c-xmlserializer",\ - "npm:2.0.0"\ - ],\ - [\ - "walker",\ - "npm:1.0.7"\ - ],\ - [\ - "wcwidth",\ - "npm:1.0.1"\ - ],\ - [\ - "webidl-conversions",\ - "npm:6.1.0"\ - ],\ - [\ - "whatwg-encoding",\ - "npm:1.0.5"\ - ],\ - [\ - "whatwg-fetch",\ - "npm:3.6.20"\ - ],\ - [\ - "whatwg-mimetype",\ - "npm:2.3.0"\ - ],\ - [\ - "whatwg-url",\ - "npm:8.5.0"\ - ],\ - [\ - "which",\ - "npm:2.0.2"\ - ],\ - [\ - "which-boxed-primitive",\ - "npm:1.0.2"\ - ],\ - [\ - "which-module",\ - "npm:2.0.0"\ - ],\ - [\ - "wide-align",\ - "npm:1.1.3"\ - ],\ - [\ - "widest-line",\ - "npm:3.1.0"\ - ],\ - [\ - "windows-release",\ - "npm:4.0.0"\ - ],\ - [\ - "word-wrap",\ - "npm:1.2.3"\ - ],\ - [\ - "wordwrap",\ - "npm:1.0.0"\ - ],\ - [\ - "wrap-ansi",\ - "npm:7.0.0"\ - ],\ - [\ - "wrappy",\ - "npm:1.0.2"\ - ],\ - [\ - "write-file-atomic",\ - "npm:3.0.3"\ - ],\ - [\ - "ws",\ - "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"\ - ],\ - [\ - "xdg-basedir",\ - "npm:4.0.0"\ - ],\ - [\ - "xml-name-validator",\ - "npm:3.0.0"\ - ],\ - [\ - "xmlchars",\ - "npm:2.2.0"\ - ],\ - [\ - "xtend",\ - "npm:4.0.2"\ - ],\ - [\ - "y18n",\ - "npm:5.0.8"\ - ],\ - [\ - "yallist",\ - "npm:4.0.0"\ - ],\ - [\ - "yaml",\ - "npm:1.10.2"\ - ],\ - [\ - "yargs",\ - "npm:15.4.1"\ - ],\ - [\ - "yargs-parser",\ - "npm:20.2.7"\ - ],\ - [\ - "yocto-queue",\ - "npm:0.1.0"\ - ]\ - ],\ - "packageRegistryData": [\ - [null, [\ - [null, {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@commitlint/cli", "npm:12.1.4"],\ - ["@commitlint/config-conventional", "npm:12.1.4"],\ - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"],\ - ["@react-native-community/eslint-plugin", "npm:1.1.0"],\ - ["@tsconfig/react-native", "npm:1.0.3"],\ - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["commitlint", "npm:12.1.4"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"],\ - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"],\ - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"],\ - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"],\ - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"],\ - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"],\ - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"],\ - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"],\ - ["husky", "npm:6.0.0"],\ - ["jest", "npm:26.6.3"],\ - ["prettier", "npm:2.3.0"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["@ampproject/remapping", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-f345152537.zip/node_modules/@ampproject/remapping/",\ - "packageDependencies": [\ - ["@ampproject/remapping", "npm:2.3.0"],\ - ["@jridgewell/gen-mapping", "npm:0.3.5"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/cli", [\ - ["npm:7.13.16", {\ - "packageLocation": "./.yarn/cache/@babel-cli-npm-7.13.16-b5bfaba1af-91a8837315.zip/node_modules/@babel/cli/",\ - "packageDependencies": [\ - ["@babel/cli", "npm:7.13.16"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16", {\ - "packageLocation": "./.yarn/__virtual__/@babel-cli-virtual-67005d204e/0/cache/@babel-cli-npm-7.13.16-b5bfaba1af-91a8837315.zip/node_modules/@babel/cli/",\ - "packageDependencies": [\ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@nicolo-ribaudo/chokidar-2", "npm:2.1.8-no-fsevents"],\ - ["@types/babel__core", null],\ - ["chokidar", "npm:3.5.1"],\ - ["commander", "npm:4.1.1"],\ - ["convert-source-map", "npm:1.7.0"],\ - ["fs-readdir-recursive", "npm:1.1.0"],\ - ["glob", "npm:7.1.7"],\ - ["make-dir", "npm:2.1.0"],\ - ["slash", "npm:2.0.0"],\ - ["source-map", "npm:0.5.7"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/code-frame", [\ - ["npm:7.12.11", {\ - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-d243f0b1e4.zip/node_modules/@babel/code-frame/",\ - "packageDependencies": [\ - ["@babel/code-frame", "npm:7.12.11"],\ - ["@babel/highlight", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-f8f90562df.zip/node_modules/@babel/code-frame/",\ - "packageDependencies": [\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/highlight", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.24.7-315a600a58-4812e94885.zip/node_modules/@babel/code-frame/",\ - "packageDependencies": [\ - ["@babel/code-frame", "npm:7.24.7"],\ - ["@babel/highlight", "npm:7.24.7"],\ - ["picocolors", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/compat-data", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.14.0-150bea01c2-f095a55924.zip/node_modules/@babel/compat-data/",\ - "packageDependencies": [\ - ["@babel/compat-data", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.4", {\ - "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.25.4-213b9c835f-d37a8936cc.zip/node_modules/@babel/compat-data/",\ - "packageDependencies": [\ - ["@babel/compat-data", "npm:7.25.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/core", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-core-npm-7.14.2-1f05a9f0fb-139bba9bb7.zip/node_modules/@babel/core/",\ - "packageDependencies": [\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/generator", "npm:7.14.2"],\ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helpers", "npm:7.14.0"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["convert-source-map", "npm:1.7.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["gensync", "npm:1.0.0-beta.2"],\ - ["json5", "npm:2.2.0"],\ - ["semver", "npm:6.3.0"],\ - ["source-map", "npm:0.5.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.2", {\ - "packageLocation": "./.yarn/cache/@babel-core-npm-7.25.2-341930f809-0d6ec10ff4.zip/node_modules/@babel/core/",\ - "packageDependencies": [\ - ["@babel/core", "npm:7.25.2"],\ - ["@ampproject/remapping", "npm:2.3.0"],\ - ["@babel/code-frame", "npm:7.24.7"],\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/helper-compilation-targets", "npm:7.25.2"],\ - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"],\ - ["@babel/helpers", "npm:7.25.6"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/template", "npm:7.25.0"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"],\ - ["convert-source-map", "npm:2.0.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["gensync", "npm:1.0.0-beta.2"],\ - ["json5", "npm:2.2.3"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/generator", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.14.2-f5d8a12b3c-0687144963.zip/node_modules/@babel/generator/",\ - "packageDependencies": [\ - ["@babel/generator", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["jsesc", "npm:2.5.2"],\ - ["source-map", "npm:0.5.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.25.6-3bdca6c59f-541e4fbb6e.zip/node_modules/@babel/generator/",\ - "packageDependencies": [\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"],\ - ["@jridgewell/gen-mapping", "npm:0.3.5"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["jsesc", "npm:2.5.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-annotate-as-pure", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.12.13-0c70b1f2c0-c85c2cf08c.zip/node_modules/@babel/helper-annotate-as-pure/",\ - "packageDependencies": [\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.24.7-537c5e8bf3-a9017bfc1c.zip/node_modules/@babel/helper-annotate-as-pure/",\ - "packageDependencies": [\ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-builder-binary-assignment-operator-visitor", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.12.13-28972fa4d7-798177396a.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/",\ - "packageDependencies": [\ - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.12.13"],\ - ["@babel/helper-explode-assignable-expression", "npm:7.13.0"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-compilation-targets", [\ - ["npm:7.13.16", {\ - "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip/node_modules/@babel/helper-compilation-targets/",\ - "packageDependencies": [\ - ["@babel/helper-compilation-targets", "npm:7.13.16"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.25.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.25.2-27e0232144-eccb2d7592.zip/node_modules/@babel/helper-compilation-targets/",\ - "packageDependencies": [\ - ["@babel/helper-compilation-targets", "npm:7.25.2"],\ - ["@babel/compat-data", "npm:7.25.4"],\ - ["@babel/helper-validator-option", "npm:7.24.8"],\ - ["browserslist", "npm:4.23.3"],\ - ["lru-cache", "npm:5.1.1"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-compilation-targets-virtual-10da00d6ae/0/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip/node_modules/@babel/helper-compilation-targets/",\ - "packageDependencies": [\ - ["@babel/helper-compilation-targets", "virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@types/babel__core", null],\ - ["browserslist", "npm:4.16.6"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-compilation-targets-virtual-8368329cb0/0/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip/node_modules/@babel/helper-compilation-targets/",\ - "packageDependencies": [\ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@types/babel__core", null],\ - ["browserslist", "npm:4.16.6"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-create-class-features-plugin", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip/node_modules/@babel/helper-create-class-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-class-features-plugin", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.25.4", {\ - "packageLocation": "./.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-47218da9fd.zip/node_modules/@babel/helper-create-class-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-class-features-plugin", "npm:7.25.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-class-features-plugin-virtual-204cdad65e/0/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip/node_modules/@babel/helper-create-class-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"],\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-class-features-plugin-virtual-bef9aa36ff/0/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip/node_modules/@babel/helper-create-class-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"],\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-class-features-plugin-virtual-8e7dab3a8a/0/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-47218da9fd.zip/node_modules/@babel/helper-create-class-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"],\ - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"],\ - ["@babel/helper-optimise-call-expression", "npm:7.24.7"],\ - ["@babel/helper-replace-supers", "virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@types/babel__core", null],\ - ["semver", "npm:6.3.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-create-regexp-features-plugin", [\ - ["npm:7.12.17", {\ - "packageLocation": "./.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip/node_modules/@babel/helper-create-regexp-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-regexp-features-plugin", "npm:7.12.17"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.25.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-33dd627eef.zip/node_modules/@babel/helper-create-regexp-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-regexp-features-plugin", "npm:7.25.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-regexp-features-plugin-virtual-645c838e66/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip/node_modules/@babel/helper-create-regexp-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-regexp-features-plugin", "virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@types/babel__core", null],\ - ["regexpu-core", "npm:4.7.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-regexp-features-plugin-virtual-13b6855b34/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip/node_modules/@babel/helper-create-regexp-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@types/babel__core", null],\ - ["regexpu-core", "npm:4.7.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-create-regexp-features-plugin-virtual-b4151cf299/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-33dd627eef.zip/node_modules/@babel/helper-create-regexp-features-plugin/",\ - "packageDependencies": [\ - ["@babel/helper-create-regexp-features-plugin", "virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"],\ - ["@types/babel__core", null],\ - ["regexpu-core", "npm:5.3.2"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-define-polyfill-provider", [\ - ["npm:0.2.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip/node_modules/@babel/helper-define-polyfill-provider/",\ - "packageDependencies": [\ - ["@babel/helper-define-polyfill-provider", "npm:0.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-define-polyfill-provider-virtual-708a51ee61/0/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip/node_modules/@babel/helper-define-polyfill-provider/",\ - "packageDependencies": [\ - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@types/babel__core", null],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["lodash.debounce", "npm:4.0.8"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-define-polyfill-provider-virtual-08e678bbd8/0/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip/node_modules/@babel/helper-define-polyfill-provider/",\ - "packageDependencies": [\ - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-compilation-targets", "virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@types/babel__core", null],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["lodash.debounce", "npm:4.0.8"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-environment-visitor", [\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-environment-visitor-npm-7.24.7-9a965bf523-079d86e657.zip/node_modules/@babel/helper-environment-visitor/",\ - "packageDependencies": [\ - ["@babel/helper-environment-visitor", "npm:7.24.7"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-explode-assignable-expression", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.13.0-b191ec8b33-538f22a40b.zip/node_modules/@babel/helper-explode-assignable-expression/",\ - "packageDependencies": [\ - ["@babel/helper-explode-assignable-expression", "npm:7.13.0"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-function-name", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-42256b1174.zip/node_modules/@babel/helper-function-name/",\ - "packageDependencies": [\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-get-function-arity", "npm:7.12.13"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-get-function-arity", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-847ef9f4d4.zip/node_modules/@babel/helper-get-function-arity/",\ - "packageDependencies": [\ - ["@babel/helper-get-function-arity", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-hoist-variables", [\ - ["npm:7.13.16", {\ - "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.13.16-315a8140fb-02bc248458.zip/node_modules/@babel/helper-hoist-variables/",\ - "packageDependencies": [\ - ["@babel/helper-hoist-variables", "npm:7.13.16"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-member-expression-to-functions", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-3ab2c9becd.zip/node_modules/@babel/helper-member-expression-to-functions/",\ - "packageDependencies": [\ - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.24.8-6042e98e38-ac878761cf.zip/node_modules/@babel/helper-member-expression-to-functions/",\ - "packageDependencies": [\ - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-module-imports", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-4884d769a4.zip/node_modules/@babel/helper-module-imports/",\ - "packageDependencies": [\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.24.7-f60e66adbf-df8bfb2bb1.zip/node_modules/@babel/helper-module-imports/",\ - "packageDependencies": [\ - ["@babel/helper-module-imports", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-module-transforms", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-482c215163.zip/node_modules/@babel/helper-module-transforms/",\ - "packageDependencies": [\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-simple-access", "npm:7.13.12"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@babel/helper-validator-identifier", "npm:7.14.0"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.2", {\ - "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-a3bcf7815f.zip/node_modules/@babel/helper-module-transforms/",\ - "packageDependencies": [\ - ["@babel/helper-module-transforms", "npm:7.25.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-module-transforms-virtual-b14538d1e7/0/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-a3bcf7815f.zip/node_modules/@babel/helper-module-transforms/",\ - "packageDependencies": [\ - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-module-imports", "npm:7.24.7"],\ - ["@babel/helper-simple-access", "npm:7.24.7"],\ - ["@babel/helper-validator-identifier", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-optimise-call-expression", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-9925679d67.zip/node_modules/@babel/helper-optimise-call-expression/",\ - "packageDependencies": [\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.24.7-59b5fb050d-da7a7f2d1b.zip/node_modules/@babel/helper-optimise-call-expression/",\ - "packageDependencies": [\ - ["@babel/helper-optimise-call-expression", "npm:7.24.7"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-plugin-utils", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip/node_modules/@babel/helper-plugin-utils/",\ - "packageDependencies": [\ - ["@babel/helper-plugin-utils", "npm:7.13.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.24.8-a288f101a7-adbc9fc114.zip/node_modules/@babel/helper-plugin-utils/",\ - "packageDependencies": [\ - ["@babel/helper-plugin-utils", "npm:7.24.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-remap-async-to-generator", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.13.0-fd0debe079-40589d8829.zip/node_modules/@babel/helper-remap-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-wrap-function", "npm:7.13.0"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6b1ab73a06.zip/node_modules/@babel/helper-remap-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/helper-remap-async-to-generator", "npm:7.25.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-remap-async-to-generator-virtual-eceedc565e/0/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6b1ab73a06.zip/node_modules/@babel/helper-remap-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"],\ - ["@babel/helper-wrap-function", "npm:7.25.0"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-replace-supers", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.13.12-dcea88adef-2fb2156afe.zip/node_modules/@babel/helper-replace-supers/",\ - "packageDependencies": [\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"],\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-97c6c17780.zip/node_modules/@babel/helper-replace-supers/",\ - "packageDependencies": [\ - ["@babel/helper-replace-supers", "npm:7.25.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-replace-supers-virtual-06397473e8/0/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-97c6c17780.zip/node_modules/@babel/helper-replace-supers/",\ - "packageDependencies": [\ - ["@babel/helper-replace-supers", "virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"],\ - ["@babel/helper-optimise-call-expression", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-simple-access", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-afd0a8d1c7.zip/node_modules/@babel/helper-simple-access/",\ - "packageDependencies": [\ - ["@babel/helper-simple-access", "npm:7.13.12"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.24.7-beddd00b0e-5083e19018.zip/node_modules/@babel/helper-simple-access/",\ - "packageDependencies": [\ - ["@babel/helper-simple-access", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-skip-transparent-expression-wrappers", [\ - ["npm:7.12.1", {\ - "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-8f38c769fd.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/",\ - "packageDependencies": [\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.24.7-f573fe40ee-784a6fdd25.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/",\ - "packageDependencies": [\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-split-export-declaration", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-adc8954a0b.zip/node_modules/@babel/helper-split-export-declaration/",\ - "packageDependencies": [\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-string-parser", [\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-helper-string-parser-npm-7.24.8-133b2e71e1-6d1bf8f27d.zip/node_modules/@babel/helper-string-parser/",\ - "packageDependencies": [\ - ["@babel/helper-string-parser", "npm:7.24.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-validator-identifier", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-f994098bab.zip/node_modules/@babel/helper-validator-identifier/",\ - "packageDependencies": [\ - ["@babel/helper-validator-identifier", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.24.7-748889c8d2-86875063f5.zip/node_modules/@babel/helper-validator-identifier/",\ - "packageDependencies": [\ - ["@babel/helper-validator-identifier", "npm:7.24.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-validator-option", [\ - ["npm:7.12.17", {\ - "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-940e7b78dc.zip/node_modules/@babel/helper-validator-option/",\ - "packageDependencies": [\ - ["@babel/helper-validator-option", "npm:7.12.17"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.24.8-e093ef5016-a52442dfa7.zip/node_modules/@babel/helper-validator-option/",\ - "packageDependencies": [\ - ["@babel/helper-validator-option", "npm:7.24.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-wrap-function", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.13.0-f4714c52ae-dab4018cd2.zip/node_modules/@babel/helper-wrap-function/",\ - "packageDependencies": [\ - ["@babel/helper-wrap-function", "npm:7.13.0"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.0", {\ - "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.25.0-c85147a474-08724128b9.zip/node_modules/@babel/helper-wrap-function/",\ - "packageDependencies": [\ - ["@babel/helper-wrap-function", "npm:7.25.0"],\ - ["@babel/template", "npm:7.25.0"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helpers", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-b11da6ac31.zip/node_modules/@babel/helpers/",\ - "packageDependencies": [\ - ["@babel/helpers", "npm:7.14.0"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.25.6-6722375514-43abc8d017.zip/node_modules/@babel/helpers/",\ - "packageDependencies": [\ - ["@babel/helpers", "npm:7.25.6"],\ - ["@babel/template", "npm:7.25.0"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/highlight", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-5aae226c0d.zip/node_modules/@babel/highlight/",\ - "packageDependencies": [\ - ["@babel/highlight", "npm:7.14.0"],\ - ["@babel/helper-validator-identifier", "npm:7.14.0"],\ - ["chalk", "npm:2.4.2"],\ - ["js-tokens", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.24.7-d792bd8d9f-69b73f38cd.zip/node_modules/@babel/highlight/",\ - "packageDependencies": [\ - ["@babel/highlight", "npm:7.24.7"],\ - ["@babel/helper-validator-identifier", "npm:7.24.7"],\ - ["chalk", "npm:2.4.2"],\ - ["js-tokens", "npm:4.0.0"],\ - ["picocolors", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/parser", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.14.2-f5dde901a5-0c32f278c8.zip/node_modules/@babel/parser/",\ - "packageDependencies": [\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.25.6-3cb198940b-830aab7211.zip/node_modules/@babel/parser/",\ - "packageDependencies": [\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-4064a70fcd.zip/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "npm:7.13.12"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-virtual-913d62df8e/0/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-4064a70fcd.zip/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-async-generator-functions", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-1ac72b48a6.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-async-generator-functions", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.20.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-111109ee11.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-async-generator-functions", "npm:7.20.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-async-generator-functions-virtual-6bb81cb2f5/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-111109ee11.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-async-generator-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-environment-visitor", "npm:7.24.7"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"],\ - ["@babel/plugin-syntax-async-generators", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-async-generator-functions-virtual-69bca03606/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-1ac72b48a6.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-async-generator-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"],\ - ["@babel/plugin-syntax-async-generators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-class-properties", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip/node_modules/@babel/plugin-proposal-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-properties", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.18.6", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-49a78a2773.zip/node_modules/@babel/plugin-proposal-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-properties", "npm:7.18.6"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-class-properties-virtual-9f2aadd5eb/0/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-49a78a2773.zip/node_modules/@babel/plugin-proposal-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-class-properties-virtual-602201fe48/0/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip/node_modules/@babel/plugin-proposal-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-properties", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-class-properties-virtual-47c4a95d8c/0/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip/node_modules/@babel/plugin-proposal-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-class-static-block", [\ - ["npm:7.13.11", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-4760d5966d.zip/node_modules/@babel/plugin-proposal-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-static-block", "npm:7.13.11"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-class-static-block-virtual-5f7024b813/0/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-4760d5966d.zip/node_modules/@babel/plugin-proposal-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-dynamic-import", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-24b407acd7.zip/node_modules/@babel/plugin-proposal-dynamic-import/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-dynamic-import", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-dynamic-import-virtual-93cd42a511/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-24b407acd7.zip/node_modules/@babel/plugin-proposal-dynamic-import/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-export-default-from", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip/node_modules/@babel/plugin-proposal-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-export-default-from", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-export-default-from-virtual-6ffc4f8199/0/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip/node_modules/@babel/plugin-proposal-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-export-default-from-virtual-e6145e5eb9/0/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip/node_modules/@babel/plugin-proposal-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-export-namespace-from", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e34fc6b926.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-export-namespace-from", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-export-namespace-from-virtual-a208dba970/0/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e34fc6b926.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-json-strings", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-2db971b41f.zip/node_modules/@babel/plugin-proposal-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-json-strings", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-json-strings-virtual-59d49c0d61/0/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-2db971b41f.zip/node_modules/@babel/plugin-proposal-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-logical-assignment-operators", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-a31ca07a75.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-logical-assignment-operators", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.20.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-cdd7b8136c.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-logical-assignment-operators", "npm:7.20.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-logical-assignment-operators-virtual-08f95a5db5/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-cdd7b8136c.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-logical-assignment-operators-virtual-5a78ae7702/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-a31ca07a75.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-nullish-coalescing-operator", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-4d0ca4f000.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.18.6", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-949c9ddcde.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.18.6"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-nullish-coalescing-operator-virtual-084089a631/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-949c9ddcde.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-nullish-coalescing-operator-virtual-2e0db58b3d/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-4d0ca4f000.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-numeric-separator", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-19d0bc6e29.zip/node_modules/@babel/plugin-proposal-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-numeric-separator", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.18.6", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-f370ea584c.zip/node_modules/@babel/plugin-proposal-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-numeric-separator", "npm:7.18.6"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-numeric-separator-virtual-5dd52601a0/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-f370ea584c.zip/node_modules/@babel/plugin-proposal-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-numeric-separator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-numeric-separator-virtual-a588a2ebf7/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-19d0bc6e29.zip/node_modules/@babel/plugin-proposal-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-object-rest-spread", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-bf7cd2d704.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.20.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-cb0f8f2ff9.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.20.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-object-rest-spread-virtual-b54b3ed411/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-cb0f8f2ff9.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-object-rest-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/compat-data", "npm:7.25.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-compilation-targets", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3"],\ - ["@babel/plugin-transform-parameters", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-object-rest-spread-virtual-94d1f9860a/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-bf7cd2d704.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-optional-catch-binding", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-catch-binding", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-optional-catch-binding-virtual-90515f4082/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-optional-catch-binding-virtual-b8b3a4a044/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-optional-chaining", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip/node_modules/@babel/plugin-proposal-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-chaining", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.21.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-522cd133af.zip/node_modules/@babel/plugin-proposal-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-chaining", "npm:7.21.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-optional-chaining-virtual-f0ae4928f3/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-522cd133af.zip/node_modules/@babel/plugin-proposal-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-chaining", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-optional-chaining-virtual-1f00f4ac35/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip/node_modules/@babel/plugin-proposal-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-optional-chaining-virtual-076de6dbe4/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip/node_modules/@babel/plugin-proposal-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-private-methods", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-3c8cdc29b3.zip/node_modules/@babel/plugin-proposal-private-methods/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-private-methods", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-private-methods-virtual-3f118b0618/0/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-3c8cdc29b3.zip/node_modules/@babel/plugin-proposal-private-methods/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-private-methods", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-private-property-in-object", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-b29a2c137a.zip/node_modules/@babel/plugin-proposal-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-private-property-in-object", "npm:7.14.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-private-property-in-object-virtual-46407a6bf2/0/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-b29a2c137a.zip/node_modules/@babel/plugin-proposal-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-proposal-unicode-property-regex", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-c93f96c65f.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-unicode-property-regex", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-unicode-property-regex-virtual-720e8807e8/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-c93f96c65f.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@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-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "npm:7.8.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-4125ec955e/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-cbb3e63953/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-24b533f423/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-3a10849d83.zip/node_modules/@babel/plugin-syntax-bigint/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-bigint", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-4e2aa33028/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip/node_modules/@babel/plugin-syntax-bigint/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-bigint", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-class-properties", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-93aae934e7/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-db47a72ede/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-class-static-block", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-dc115af594.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-static-block", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-static-block-virtual-d67cc71104/0/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-dc115af594.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-ce307af83c.zip/node_modules/@babel/plugin-syntax-dynamic-import/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-dynamic-import", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-dynamic-import-virtual-90d3f1baed/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-ce307af83c.zip/node_modules/@babel/plugin-syntax-dynamic-import/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-dynamic-import", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-dynamic-import-virtual-e56962c4a8/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-ce307af83c.zip/node_modules/@babel/plugin-syntax-dynamic-import/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-export-default-from", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip/node_modules/@babel/plugin-syntax-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-export-default-from", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-export-default-from-virtual-601b8bccf9/0/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip/node_modules/@babel/plugin-syntax-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-export-default-from-virtual-fc581306a4/0/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip/node_modules/@babel/plugin-syntax-export-default-from/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-export-namespace-from", [\ - ["npm:7.8.3", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-export-namespace-from", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-export-namespace-from-virtual-50c0ae38f2/0/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-flow", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-0edfd8d0a3.zip/node_modules/@babel/plugin-syntax-flow/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-flow", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip/node_modules/@babel/plugin-syntax-flow/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-flow", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-flow-virtual-faa5e94619/0/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip/node_modules/@babel/plugin-syntax-flow/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-flow-virtual-165eea1d57/0/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-0edfd8d0a3.zip/node_modules/@babel/plugin-syntax-flow/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-flow-virtual-affde8d8bb/0/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip/node_modules/@babel/plugin-syntax-flow/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-flow", "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7"],\ - ["@babel/core", null],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@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-166ac1125d.zip/node_modules/@babel/plugin-syntax-import-meta/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-meta", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-f07913a9b0/0/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip/node_modules/@babel/plugin-syntax-import-meta/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-meta", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "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-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-a1c4de6447/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-0f4c670dd2/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-jsx", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip/node_modules/@babel/plugin-syntax-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-jsx", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-jsx-virtual-547ca2985c/0/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip/node_modules/@babel/plugin-syntax-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-jsx", "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-jsx-virtual-326dd996fb/0/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip/node_modules/@babel/plugin-syntax-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-jsx", "virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@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-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-f4baf8d41d/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-a2e5b619ef/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-1ea3385b80/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-53fb5e3b85/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-c02562a7c4/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-b6380975bd/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-28f706fa9e/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "virtual:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-d9526469fa/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-cc8732d80c/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-60dbe747e0/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-9f678aacdf/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-15538e0a1a/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-9add8a6c5e/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-3e6a04f57f/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-70180db4c1/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "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-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-fc6b5ea199/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-a49181bfc9/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-e2dd627c6f/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-private-property-in-object", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-71952c6da1.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.14.5", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-4e1d8d2d34/0/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-37ff452d77/0/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-71952c6da1.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-top-level-await", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-731f90296d/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-b7e2e69c7b/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-typescript", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip/node_modules/@babel/plugin-syntax-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-typescript", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-typescript-virtual-27838094b5/0/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip/node_modules/@babel/plugin-syntax-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-typescript", "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-typescript-virtual-6c634ef088/0/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip/node_modules/@babel/plugin-syntax-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-typescript", "virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-arrow-functions", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip/node_modules/@babel/plugin-transform-arrow-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-arrow-functions", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-arrow-functions-virtual-3294c1bccf/0/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip/node_modules/@babel/plugin-transform-arrow-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-arrow-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-arrow-functions-virtual-8c989a9b46/0/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip/node_modules/@babel/plugin-transform-arrow-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-async-to-generator", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-d2c5930781.zip/node_modules/@babel/plugin-transform-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-async-to-generator", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-b2041d9d50.zip/node_modules/@babel/plugin-transform-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-async-to-generator", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-async-to-generator-virtual-0e769ee9fa/0/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-b2041d9d50.zip/node_modules/@babel/plugin-transform-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-async-to-generator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-module-imports", "npm:7.24.7"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-async-to-generator-virtual-a1748bfb1a/0/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-d2c5930781.zip/node_modules/@babel/plugin-transform-async-to-generator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-block-scoped-functions", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-a0e843afe1.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-block-scoped-functions", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-block-scoped-functions-virtual-9c54f47a56/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-a0e843afe1.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-block-scoped-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-block-scoping", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip/node_modules/@babel/plugin-transform-block-scoping/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-block-scoping", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-block-scoping-virtual-6e0e2dbcf1/0/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip/node_modules/@babel/plugin-transform-block-scoping/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-block-scoping", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-block-scoping-virtual-74c6ce9c8d/0/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip/node_modules/@babel/plugin-transform-block-scoping/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-classes", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip/node_modules/@babel/plugin-transform-classes/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-classes", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-classes-virtual-bb49adf9af/0/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip/node_modules/@babel/plugin-transform-classes/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-classes", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@types/babel__core", null],\ - ["globals", "npm:11.12.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-classes-virtual-9f7adab839/0/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip/node_modules/@babel/plugin-transform-classes/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@types/babel__core", null],\ - ["globals", "npm:11.12.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-computed-properties", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip/node_modules/@babel/plugin-transform-computed-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-computed-properties", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-computed-properties-virtual-ee3cb16b04/0/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip/node_modules/@babel/plugin-transform-computed-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-computed-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-computed-properties-virtual-a4752c0c49/0/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip/node_modules/@babel/plugin-transform-computed-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-destructuring", [\ - ["npm:7.13.17", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-36fffa9bed.zip/node_modules/@babel/plugin-transform-destructuring/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-destructuring", "npm:7.13.17"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-e3bba0bb05.zip/node_modules/@babel/plugin-transform-destructuring/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-destructuring", "npm:7.24.8"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-destructuring-virtual-d3d2dff80e/0/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-e3bba0bb05.zip/node_modules/@babel/plugin-transform-destructuring/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-destructuring", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-destructuring-virtual-469d962db1/0/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-36fffa9bed.zip/node_modules/@babel/plugin-transform-destructuring/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-dotall-regex", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-084f028be4.zip/node_modules/@babel/plugin-transform-dotall-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-dotall-regex", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-dotall-regex-virtual-917a4b7096/0/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-084f028be4.zip/node_modules/@babel/plugin-transform-dotall-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-duplicate-keys", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-11a7a5f905.zip/node_modules/@babel/plugin-transform-duplicate-keys/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-duplicate-keys", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-duplicate-keys-virtual-f5a590c8b5/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-11a7a5f905.zip/node_modules/@babel/plugin-transform-duplicate-keys/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-duplicate-keys", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-exponentiation-operator", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-5e7db7df2a.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-exponentiation-operator", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-exponentiation-operator-virtual-fcdfc17de1/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-5e7db7df2a.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.12.13"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-flow-strip-types", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-f15fe806d3.zip/node_modules/@babel/plugin-transform-flow-strip-types/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-flow-strip-types", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.25.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-b5a54395a5.zip/node_modules/@babel/plugin-transform-flow-strip-types/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-flow-strip-types", "npm:7.25.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-flow-strip-types-virtual-7e736db4b5/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-b5a54395a5.zip/node_modules/@babel/plugin-transform-flow-strip-types/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-flow-strip-types-virtual-8acc9c694b/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-f15fe806d3.zip/node_modules/@babel/plugin-transform-flow-strip-types/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-for-of", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-765f8c8895.zip/node_modules/@babel/plugin-transform-for-of/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-for-of", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-for-of-virtual-bdbcae5d14/0/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-765f8c8895.zip/node_modules/@babel/plugin-transform-for-of/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-function-name", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip/node_modules/@babel/plugin-transform-function-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-function-name", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-function-name-virtual-e41455e4a9/0/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip/node_modules/@babel/plugin-transform-function-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-function-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-function-name-virtual-74b26d5b70/0/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip/node_modules/@babel/plugin-transform-function-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-literals", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip/node_modules/@babel/plugin-transform-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-literals", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-literals-virtual-6c40b1ab38/0/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip/node_modules/@babel/plugin-transform-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-literals", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-literals-virtual-1b5962e9a5/0/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip/node_modules/@babel/plugin-transform-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-member-expression-literals", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-922d24402d.zip/node_modules/@babel/plugin-transform-member-expression-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-member-expression-literals", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-member-expression-literals-virtual-11b6927d4f/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-922d24402d.zip/node_modules/@babel/plugin-transform-member-expression-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-member-expression-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-modules-amd", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-c65b72b990.zip/node_modules/@babel/plugin-transform-modules-amd/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-amd", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-amd-virtual-68f455f968/0/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-c65b72b990.zip/node_modules/@babel/plugin-transform-modules-amd/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-amd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@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.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-commonjs", "npm:7.14.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.8", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-18e5d22976.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-commonjs", "npm:7.24.8"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-commonjs-virtual-8d4d3b89b2/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-commonjs", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-simple-access", "npm:7.13.12"],\ - ["@types/babel__core", null],\ - ["babel-plugin-dynamic-import-node", "npm:2.3.3"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-commonjs-virtual-964ff68c87/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-18e5d22976.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-commonjs", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/helper-simple-access", "npm:7.24.7"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-commonjs-virtual-39438ad6a1/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-simple-access", "npm:7.13.12"],\ - ["@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.13.8", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-a858104e9b.zip/node_modules/@babel/plugin-transform-modules-systemjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-systemjs", "npm:7.13.8"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-systemjs-virtual-e05e5a13a5/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-a858104e9b.zip/node_modules/@babel/plugin-transform-modules-systemjs/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-systemjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-hoist-variables", "npm:7.13.16"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-identifier", "npm:7.14.0"],\ - ["@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.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-6968505e56.zip/node_modules/@babel/plugin-transform-modules-umd/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-umd", "npm:7.14.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-umd-virtual-e86085af3b/0/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-6968505e56.zip/node_modules/@babel/plugin-transform-modules-umd/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-modules-umd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-module-transforms", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-named-capturing-groups-regex", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-8ef970be54.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-named-capturing-groups-regex", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-b0ecb1afd2.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-named-capturing-groups-regex", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-named-capturing-groups-regex-virtual-d1091d624b/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-b0ecb1afd2.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-named-capturing-groups-regex-virtual-1d99d87d65/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-8ef970be54.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-new-target", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-ecc3d910d4.zip/node_modules/@babel/plugin-transform-new-target/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-new-target", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-new-target-virtual-9718d76158/0/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-ecc3d910d4.zip/node_modules/@babel/plugin-transform-new-target/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-new-target", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-object-assign", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-6221340024.zip/node_modules/@babel/plugin-transform-object-assign/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-object-assign", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-object-assign-virtual-38cb983c36/0/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-6221340024.zip/node_modules/@babel/plugin-transform-object-assign/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-object-assign", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-object-super", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-558d660ad0.zip/node_modules/@babel/plugin-transform-object-super/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-object-super", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-object-super-virtual-f1347d189e/0/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-558d660ad0.zip/node_modules/@babel/plugin-transform-object-super/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-object-super", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-replace-supers", "npm:7.13.12"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-parameters", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip/node_modules/@babel/plugin-transform-parameters/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-parameters", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-41ff6bda92.zip/node_modules/@babel/plugin-transform-parameters/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-parameters", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-parameters-virtual-a811a8cd7b/0/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip/node_modules/@babel/plugin-transform-parameters/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-parameters", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-parameters-virtual-adc122f806/0/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip/node_modules/@babel/plugin-transform-parameters/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-parameters-virtual-02eab6edfa/0/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-41ff6bda92.zip/node_modules/@babel/plugin-transform-parameters/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-parameters", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-private-methods", [\ - ["npm:7.25.4", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-d5c29ba121.zip/node_modules/@babel/plugin-transform-private-methods/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-private-methods", "npm:7.25.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-private-methods-virtual-bed0b534a6/0/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-d5c29ba121.zip/node_modules/@babel/plugin-transform-private-methods/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-private-methods", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-private-property-in-object", [\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-a23ee18340.zip/node_modules/@babel/plugin-transform-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-private-property-in-object", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-private-property-in-object-virtual-5fe7c73498/0/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-a23ee18340.zip/node_modules/@babel/plugin-transform-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-private-property-in-object", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"],\ - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-property-literals", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-a6cca236d5.zip/node_modules/@babel/plugin-transform-property-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-property-literals", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-property-literals-virtual-073c567b63/0/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-a6cca236d5.zip/node_modules/@babel/plugin-transform-property-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-property-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-display-name", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip/node_modules/@babel/plugin-transform-react-display-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-display-name", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-display-name-virtual-d20669d5b2/0/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip/node_modules/@babel/plugin-transform-react-display-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-display-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-display-name-virtual-e971ddd69e/0/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip/node_modules/@babel/plugin-transform-react-display-name/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-jsx", [\ - ["npm:7.13.12", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip/node_modules/@babel/plugin-transform-react-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx", "npm:7.13.12"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-virtual-e77ed33945/0/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip/node_modules/@babel/plugin-transform-react-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-jsx", "virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-virtual-df0c6e2696/0/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip/node_modules/@babel/plugin-transform-react-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-jsx", "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-jsx-development", [\ - ["npm:7.12.17", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-af6e80abcd.zip/node_modules/@babel/plugin-transform-react-jsx-development/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-development", "npm:7.12.17"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-development-virtual-a9b53c81d8/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-af6e80abcd.zip/node_modules/@babel/plugin-transform-react-jsx-development/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-development", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-jsx-self", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip/node_modules/@babel/plugin-transform-react-jsx-self/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-self", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-self-virtual-f03b930429/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip/node_modules/@babel/plugin-transform-react-jsx-self/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-self", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-self-virtual-56841a762f/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip/node_modules/@babel/plugin-transform-react-jsx-self/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-self", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-jsx-source", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip/node_modules/@babel/plugin-transform-react-jsx-source/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-source", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-source-virtual-2fa4ec3da7/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip/node_modules/@babel/plugin-transform-react-jsx-source/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-source", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-jsx-source-virtual-e93dad2e1a/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip/node_modules/@babel/plugin-transform-react-jsx-source/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-jsx-source", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-react-pure-annotations", [\ - ["npm:7.12.1", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-7c42141c36.zip/node_modules/@babel/plugin-transform-react-pure-annotations/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-pure-annotations", "npm:7.12.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-react-pure-annotations-virtual-522d9189fa/0/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-7c42141c36.zip/node_modules/@babel/plugin-transform-react-pure-annotations/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-react-pure-annotations", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-regenerator", [\ - ["npm:7.13.15", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-e4c253945b.zip/node_modules/@babel/plugin-transform-regenerator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-regenerator", "npm:7.13.15"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-regenerator-virtual-e1969b2e81/0/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-e4c253945b.zip/node_modules/@babel/plugin-transform-regenerator/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@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.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-61bee23ba9.zip/node_modules/@babel/plugin-transform-reserved-words/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-reserved-words", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-reserved-words-virtual-c8295a7a4d/0/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-61bee23ba9.zip/node_modules/@babel/plugin-transform-reserved-words/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-reserved-words", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-runtime", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip/node_modules/@babel/plugin-transform-runtime/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-runtime", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-runtime-virtual-a37697e7c4/0/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip/node_modules/@babel/plugin-transform-runtime/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-runtime", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null],\ - ["babel-plugin-polyfill-corejs2", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["babel-plugin-polyfill-corejs3", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["babel-plugin-polyfill-regenerator", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-runtime-virtual-a3f6ec3c97/0/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip/node_modules/@babel/plugin-transform-runtime/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-runtime", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-module-imports", "npm:7.13.12"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null],\ - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-shorthand-properties", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip/node_modules/@babel/plugin-transform-shorthand-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-shorthand-properties", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-shorthand-properties-virtual-690109d9ce/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip/node_modules/@babel/plugin-transform-shorthand-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-shorthand-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-shorthand-properties-virtual-3a4864fba3/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip/node_modules/@babel/plugin-transform-shorthand-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-spread", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip/node_modules/@babel/plugin-transform-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-spread", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-spread-virtual-6b500c53a8/0/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip/node_modules/@babel/plugin-transform-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-spread-virtual-35e759454e/0/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip/node_modules/@babel/plugin-transform-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-sticky-regex", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip/node_modules/@babel/plugin-transform-sticky-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-sticky-regex", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-sticky-regex-virtual-ccca257853/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip/node_modules/@babel/plugin-transform-sticky-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-sticky-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-sticky-regex-virtual-4ddfc6da57/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip/node_modules/@babel/plugin-transform-sticky-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-template-literals", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-463c8462fc.zip/node_modules/@babel/plugin-transform-template-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-template-literals", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-template-literals-virtual-dae054fbb9/0/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-463c8462fc.zip/node_modules/@babel/plugin-transform-template-literals/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-typeof-symbol", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-6dbe460c12.zip/node_modules/@babel/plugin-transform-typeof-symbol/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-typeof-symbol", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-typeof-symbol-virtual-d158206ba1/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-6dbe460c12.zip/node_modules/@babel/plugin-transform-typeof-symbol/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-typeof-symbol", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-typescript", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip/node_modules/@babel/plugin-transform-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-typescript", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-typescript-virtual-637cb01ccf/0/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip/node_modules/@babel/plugin-transform-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-typescript", "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-typescript-virtual-c5e9bb4d8b/0/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip/node_modules/@babel/plugin-transform-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-syntax-typescript", "virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-unicode-escapes", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-cfc34c5ab4.zip/node_modules/@babel/plugin-transform-unicode-escapes/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-unicode-escapes", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-unicode-escapes-virtual-12c7a9cc07/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-cfc34c5ab4.zip/node_modules/@babel/plugin-transform-unicode-escapes/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-unicode-escapes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-transform-unicode-regex", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip/node_modules/@babel/plugin-transform-unicode-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-unicode-regex", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-unicode-regex-virtual-570729904c/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip/node_modules/@babel/plugin-transform-unicode-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-unicode-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-unicode-regex-virtual-af07866eea/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip/node_modules/@babel/plugin-transform-unicode-regex/",\ - "packageDependencies": [\ - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/preset-env", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-6276f3c7ab.zip/node_modules/@babel/preset-env/",\ - "packageDependencies": [\ - ["@babel/preset-env", "npm:7.14.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-env-virtual-a3a40d63ff/0/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-6276f3c7ab.zip/node_modules/@babel/preset-env/",\ - "packageDependencies": [\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12"],\ - ["@babel/plugin-proposal-async-generator-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-proposal-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11"],\ - ["@babel/plugin-proposal-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-private-methods", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-proposal-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-syntax-async-generators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"],\ - ["@babel/plugin-syntax-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/plugin-syntax-top-level-await", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-block-scoped-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"],\ - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-duplicate-keys", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-member-expression-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-modules-amd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/plugin-transform-modules-systemjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8"],\ - ["@babel/plugin-transform-modules-umd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-new-target", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-object-super", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-property-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"],\ - ["@babel/plugin-transform-reserved-words", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-typeof-symbol", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-unicode-escapes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/preset-modules", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__core", null],\ - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["core-js-compat", "npm:3.12.1"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/preset-flow", [\ - ["npm:7.13.13", {\ - "packageLocation": "./.yarn/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-c90b30333d.zip/node_modules/@babel/preset-flow/",\ - "packageDependencies": [\ - ["@babel/preset-flow", "npm:7.13.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.24.7", {\ - "packageLocation": "./.yarn/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-20fe02b5bc.zip/node_modules/@babel/preset-flow/",\ - "packageDependencies": [\ - ["@babel/preset-flow", "npm:7.24.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-flow-virtual-9b3bb9c4c8/0/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-c90b30333d.zip/node_modules/@babel/preset-flow/",\ - "packageDependencies": [\ - ["@babel/preset-flow", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-flow-virtual-3dbc69340a/0/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-20fe02b5bc.zip/node_modules/@babel/preset-flow/",\ - "packageDependencies": [\ - ["@babel/preset-flow", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.24.8"],\ - ["@babel/helper-validator-option", "npm:7.24.8"],\ - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/preset-modules", [\ - ["npm:0.1.4", {\ - "packageLocation": "./.yarn/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-559457d579.zip/node_modules/@babel/preset-modules/",\ - "packageDependencies": [\ - ["@babel/preset-modules", "npm:0.1.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-modules-virtual-0d3c4d8a02/0/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-559457d579.zip/node_modules/@babel/preset-modules/",\ - "packageDependencies": [\ - ["@babel/preset-modules", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__core", null],\ - ["esutils", "npm:2.0.3"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/preset-react", [\ - ["npm:7.13.13", {\ - "packageLocation": "./.yarn/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-535e3a3419.zip/node_modules/@babel/preset-react/",\ - "packageDependencies": [\ - ["@babel/preset-react", "npm:7.13.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-react-virtual-a4937c06c8/0/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-535e3a3419.zip/node_modules/@babel/preset-react/",\ - "packageDependencies": [\ - ["@babel/preset-react", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/plugin-transform-react-jsx-development", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17"],\ - ["@babel/plugin-transform-react-pure-annotations", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/preset-typescript", [\ - ["npm:7.13.0", {\ - "packageLocation": "./.yarn/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip/node_modules/@babel/preset-typescript/",\ - "packageDependencies": [\ - ["@babel/preset-typescript", "npm:7.13.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-typescript-virtual-3bdad18642/0/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip/node_modules/@babel/preset-typescript/",\ - "packageDependencies": [\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-preset-typescript-virtual-6858c7a0c0/0/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip/node_modules/@babel/preset-typescript/",\ - "packageDependencies": [\ - ["@babel/preset-typescript", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@babel/helper-validator-option", "npm:7.12.17"],\ - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/register", [\ - ["npm:7.24.6", {\ - "packageLocation": "./.yarn/cache/@babel-register-npm-7.24.6-624417b242-94580678ee.zip/node_modules/@babel/register/",\ - "packageDependencies": [\ - ["@babel/register", "npm:7.24.6"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6", {\ - "packageLocation": "./.yarn/__virtual__/@babel-register-virtual-fa08a0e15d/0/cache/@babel-register-npm-7.24.6-624417b242-94580678ee.zip/node_modules/@babel/register/",\ - "packageDependencies": [\ - ["@babel/register", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@types/babel__core", null],\ - ["clone-deep", "npm:4.0.1"],\ - ["find-cache-dir", "npm:2.1.0"],\ - ["make-dir", "npm:2.1.0"],\ - ["pirates", "npm:4.0.6"],\ - ["source-map-support", "npm:0.5.21"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/regjsgen", [\ - ["npm:0.8.0", {\ - "packageLocation": "./.yarn/cache/@babel-regjsgen-npm-0.8.0-b0fbdbf644-c57fb730b1.zip/node_modules/@babel/regjsgen/",\ - "packageDependencies": [\ - ["@babel/regjsgen", "npm:0.8.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/runtime", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.14.0-fba2a32266-698d6a79bf.zip/node_modules/@babel/runtime/",\ - "packageDependencies": [\ - ["@babel/runtime", "npm:7.14.0"],\ - ["regenerator-runtime", "npm:0.13.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-0c4134734d.zip/node_modules/@babel/runtime/",\ - "packageDependencies": [\ - ["@babel/runtime", "npm:7.25.6"],\ - ["regenerator-runtime", "npm:0.14.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/template", [\ - ["npm:7.12.13", {\ - "packageLocation": "./.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-00c4a7c9c2.zip/node_modules/@babel/template/",\ - "packageDependencies": [\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.0", {\ - "packageLocation": "./.yarn/cache/@babel-template-npm-7.25.0-2c6ddcb43a-07ebecf6db.zip/node_modules/@babel/template/",\ - "packageDependencies": [\ - ["@babel/template", "npm:7.25.0"],\ - ["@babel/code-frame", "npm:7.24.7"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/traverse", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-0fdd29eeed.zip/node_modules/@babel/traverse/",\ - "packageDependencies": [\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/generator", "npm:7.14.2"],\ - ["@babel/helper-function-name", "npm:7.14.2"],\ - ["@babel/helper-split-export-declaration", "npm:7.12.13"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["globals", "npm:11.12.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.25.6-1b9e2a314c-de75a91829.zip/node_modules/@babel/traverse/",\ - "packageDependencies": [\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/code-frame", "npm:7.24.7"],\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/template", "npm:7.25.0"],\ - ["@babel/types", "npm:7.25.6"],\ - ["debug", "virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7"],\ - ["globals", "npm:11.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/types", [\ - ["npm:7.14.2", {\ - "packageLocation": "./.yarn/cache/@babel-types-npm-7.14.2-0a9f9700cf-286b969a1f.zip/node_modules/@babel/types/",\ - "packageDependencies": [\ - ["@babel/types", "npm:7.14.2"],\ - ["@babel/helper-validator-identifier", "npm:7.14.0"],\ - ["to-fast-properties", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.25.6", {\ - "packageLocation": "./.yarn/cache/@babel-types-npm-7.25.6-98df73a2ca-7b54665e1b.zip/node_modules/@babel/types/",\ - "packageDependencies": [\ - ["@babel/types", "npm:7.25.6"],\ - ["@babel/helper-string-parser", "npm:7.24.8"],\ - ["@babel/helper-validator-identifier", "npm:7.24.7"],\ - ["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-1a1f0e356a.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-0ed173f64d.zip/node_modules/@cnakazawa/watch/",\ - "packageDependencies": [\ - ["@cnakazawa/watch", "npm:1.0.4"],\ - ["exec-sh", "npm:0.3.6"],\ - ["minimist", "npm:1.2.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/cli", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-cli-npm-12.1.4-17caafb9e4-66081b1337.zip/node_modules/@commitlint/cli/",\ - "packageDependencies": [\ - ["@commitlint/cli", "npm:12.1.4"],\ - ["@commitlint/format", "npm:12.1.4"],\ - ["@commitlint/lint", "npm:12.1.4"],\ - ["@commitlint/load", "npm:12.1.4"],\ - ["@commitlint/read", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["lodash", "npm:4.17.21"],\ - ["resolve-from", "npm:5.0.0"],\ - ["resolve-global", "npm:1.0.0"],\ - ["yargs", "npm:16.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/config-conventional", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-config-conventional-npm-12.1.4-a9aa5d652d-9a53ec4fd1.zip/node_modules/@commitlint/config-conventional/",\ - "packageDependencies": [\ - ["@commitlint/config-conventional", "npm:12.1.4"],\ - ["conventional-changelog-conventionalcommits", "npm:4.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/ensure", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-ensure-npm-12.1.4-2339dce3fc-db9b97052e.zip/node_modules/@commitlint/ensure/",\ - "packageDependencies": [\ - ["@commitlint/ensure", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["lodash", "npm:4.17.21"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/execute-rule", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-execute-rule-npm-12.1.4-45fb2eb19c-c65bca0381.zip/node_modules/@commitlint/execute-rule/",\ - "packageDependencies": [\ - ["@commitlint/execute-rule", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/format", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-format-npm-12.1.4-cedc1fc9ba-8f43c94ecc.zip/node_modules/@commitlint/format/",\ - "packageDependencies": [\ - ["@commitlint/format", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["chalk", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/is-ignored", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-is-ignored-npm-12.1.4-d604537e6e-91c0f42b10.zip/node_modules/@commitlint/is-ignored/",\ - "packageDependencies": [\ - ["@commitlint/is-ignored", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["semver", "npm:7.3.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/lint", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-lint-npm-12.1.4-d04b50b0b2-10040fa4f8.zip/node_modules/@commitlint/lint/",\ - "packageDependencies": [\ - ["@commitlint/lint", "npm:12.1.4"],\ - ["@commitlint/is-ignored", "npm:12.1.4"],\ - ["@commitlint/parse", "npm:12.1.4"],\ - ["@commitlint/rules", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/load", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-load-npm-12.1.4-020f22b221-db8717b08e.zip/node_modules/@commitlint/load/",\ - "packageDependencies": [\ - ["@commitlint/load", "npm:12.1.4"],\ - ["@commitlint/execute-rule", "npm:12.1.4"],\ - ["@commitlint/resolve-extends", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["chalk", "npm:4.1.1"],\ - ["cosmiconfig", "npm:7.0.0"],\ - ["lodash", "npm:4.17.21"],\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/message", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-message-npm-12.1.4-fb51852889-dfefa772e1.zip/node_modules/@commitlint/message/",\ - "packageDependencies": [\ - ["@commitlint/message", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/parse", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-parse-npm-12.1.4-7aa2fe9d19-075b016481.zip/node_modules/@commitlint/parse/",\ - "packageDependencies": [\ - ["@commitlint/parse", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["conventional-changelog-angular", "npm:5.0.12"],\ - ["conventional-commits-parser", "npm:3.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/read", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-read-npm-12.1.4-5803b0d603-f7d115ae67.zip/node_modules/@commitlint/read/",\ - "packageDependencies": [\ - ["@commitlint/read", "npm:12.1.4"],\ - ["@commitlint/top-level", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"],\ - ["fs-extra", "npm:9.1.0"],\ - ["git-raw-commits", "npm:2.0.10"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/resolve-extends", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-resolve-extends-npm-12.1.4-14da710c78-8f966a3eed.zip/node_modules/@commitlint/resolve-extends/",\ - "packageDependencies": [\ - ["@commitlint/resolve-extends", "npm:12.1.4"],\ - ["import-fresh", "npm:3.3.0"],\ - ["lodash", "npm:4.17.21"],\ - ["resolve-from", "npm:5.0.0"],\ - ["resolve-global", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/rules", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-rules-npm-12.1.4-5d82296cac-9594bc080b.zip/node_modules/@commitlint/rules/",\ - "packageDependencies": [\ - ["@commitlint/rules", "npm:12.1.4"],\ - ["@commitlint/ensure", "npm:12.1.4"],\ - ["@commitlint/message", "npm:12.1.4"],\ - ["@commitlint/to-lines", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/to-lines", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-to-lines-npm-12.1.4-5258714d7f-39b3de6b63.zip/node_modules/@commitlint/to-lines/",\ - "packageDependencies": [\ - ["@commitlint/to-lines", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/top-level", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-top-level-npm-12.1.4-d0d833ca07-cdb46dfbcd.zip/node_modules/@commitlint/top-level/",\ - "packageDependencies": [\ - ["@commitlint/top-level", "npm:12.1.4"],\ - ["find-up", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@commitlint/types", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/@commitlint-types-npm-12.1.4-277c712683-748eedb963.zip/node_modules/@commitlint/types/",\ - "packageDependencies": [\ - ["@commitlint/types", "npm:12.1.4"],\ - ["chalk", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@eslint/eslintrc", [\ - ["npm:0.4.1", {\ - "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-0.4.1-48933b2833-4f78011580.zip/node_modules/@eslint/eslintrc/",\ - "packageDependencies": [\ - ["@eslint/eslintrc", "npm:0.4.1"],\ - ["ajv", "npm:6.12.6"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["espree", "npm:7.3.1"],\ - ["globals", "npm:12.4.0"],\ - ["ignore", "npm:4.0.6"],\ - ["import-fresh", "npm:3.3.0"],\ - ["js-yaml", "npm:3.14.1"],\ - ["minimatch", "npm:3.0.4"],\ - ["strip-json-comments", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@hapi/hoek", [\ - ["npm:9.3.0", {\ - "packageLocation": "./.yarn/cache/@hapi-hoek-npm-9.3.0-447eb8d274-ad83a22378.zip/node_modules/@hapi/hoek/",\ - "packageDependencies": [\ - ["@hapi/hoek", "npm:9.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@hapi/topo", [\ - ["npm:5.1.0", {\ - "packageLocation": "./.yarn/cache/@hapi-topo-npm-5.1.0-5e0b776809-084bfa6470.zip/node_modules/@hapi/topo/",\ - "packageDependencies": [\ - ["@hapi/topo", "npm:5.1.0"],\ - ["@hapi/hoek", "npm:9.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@iarna/toml", [\ - ["npm:2.2.5", {\ - "packageLocation": "./.yarn/cache/@iarna-toml-npm-2.2.5-6da1399e8e-b61426dc1a.zip/node_modules/@iarna/toml/",\ - "packageDependencies": [\ - ["@iarna/toml", "npm:2.2.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@isaacs/ttlcache", [\ - ["npm:1.4.1", {\ - "packageLocation": "./.yarn/cache/@isaacs-ttlcache-npm-1.4.1-1de33cdaab-57f2b00b58.zip/node_modules/@isaacs/ttlcache/",\ - "packageDependencies": [\ - ["@isaacs/ttlcache", "npm:1.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@istanbuljs/load-nyc-config", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-b000a5acd8.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.1"],\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@istanbuljs/schema", [\ - ["npm:0.1.3", {\ - "packageLocation": "./.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-a9b1e49acd.zip/node_modules/@istanbuljs/schema/",\ - "packageDependencies": [\ - ["@istanbuljs/schema", "npm:0.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/console", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-0e0d8dfe2f.zip/node_modules/@jest/console/",\ - "packageDependencies": [\ - ["@jest/console", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/node", "npm:15.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["jest-message-util", "npm:26.6.2"],\ - ["jest-util", "npm:26.6.2"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/core", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-b99843718a.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:15.3.0"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.1"],\ - ["exit", "npm:0.1.2"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.4"],\ - ["p-each-series", "npm:2.2.0"],\ - ["rimraf", "npm:3.0.2"],\ - ["slash", "npm:3.0.0"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/create-cache-key-function", [\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/@jest-create-cache-key-function-npm-29.7.0-786396764f-061ef63b13.zip/node_modules/@jest/create-cache-key-function/",\ - "packageDependencies": [\ - ["@jest/create-cache-key-function", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/environment", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-761fb74442.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:15.3.0"],\ - ["jest-mock", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-90b5844a9a.zip/node_modules/@jest/environment/",\ - "packageDependencies": [\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:15.3.0"],\ - ["jest-mock", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/fake-timers", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-d2e8b5050d.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:15.3.0"],\ - ["jest-message-util", "npm:26.6.2"],\ - ["jest-mock", "npm:26.6.2"],\ - ["jest-util", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-9b394e04ff.zip/node_modules/@jest/fake-timers/",\ - "packageDependencies": [\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@sinonjs/fake-timers", "npm:10.3.0"],\ - ["@types/node", "npm:15.3.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-mock", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/globals", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-cfc410fa09.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.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-123b09a8ac.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.1"],\ - ["collect-v8-coverage", "npm:1.0.1"],\ - ["exit", "npm:0.1.2"],\ - ["glob", "npm:7.1.7"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.2"],\ - ["terminal-link", "npm:2.1.1"],\ - ["v8-to-istanbul", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/schemas", [\ - ["npm:29.6.3", {\ - "packageLocation": "./.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip/node_modules/@jest/schemas/",\ - "packageDependencies": [\ - ["@jest/schemas", "npm:29.6.3"],\ - ["@sinclair/typebox", "npm:0.27.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/source-map", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-6efb095d0a.zip/node_modules/@jest/source-map/",\ - "packageDependencies": [\ - ["@jest/source-map", "npm:26.6.2"],\ - ["callsites", "npm:3.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["source-map", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/test-result", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-79a66e8cc4.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.6.3", {\ - "packageLocation": "./.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-17d5ade54b.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.6"],\ - ["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.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-6dfdb2fa52.zip/node_modules/@jest/transform/",\ - "packageDependencies": [\ - ["@jest/transform", "npm:26.6.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["babel-plugin-istanbul", "npm:6.0.0"],\ - ["chalk", "npm:4.1.1"],\ - ["convert-source-map", "npm:1.7.0"],\ - ["fast-json-stable-stringify", "npm:2.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["jest-haste-map", "npm:26.6.2"],\ - ["jest-regex-util", "npm:26.0.0"],\ - ["jest-util", "npm:26.6.2"],\ - ["micromatch", "npm:4.0.4"],\ - ["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:26.6.2", {\ - "packageLocation": "./.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-02d42749c8.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:15.3.0"],\ - ["@types/yargs", "npm:15.0.13"],\ - ["chalk", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.6.3", {\ - "packageLocation": "./.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-f74bf512fd.zip/node_modules/@jest/types/",\ - "packageDependencies": [\ - ["@jest/types", "npm:29.6.3"],\ - ["@jest/schemas", "npm:29.6.3"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.3"],\ - ["@types/istanbul-reports", "npm:3.0.0"],\ - ["@types/node", "npm:15.3.0"],\ - ["@types/yargs", "npm:17.0.33"],\ - ["chalk", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/gen-mapping", [\ - ["npm:0.3.5", {\ - "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip/node_modules/@jridgewell/gen-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/gen-mapping", "npm:0.3.5"],\ - ["@jridgewell/set-array", "npm:1.2.1"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/resolve-uri", [\ - ["npm:3.1.2", {\ - "packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip/node_modules/@jridgewell/resolve-uri/",\ - "packageDependencies": [\ - ["@jridgewell/resolve-uri", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/set-array", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip/node_modules/@jridgewell/set-array/",\ - "packageDependencies": [\ - ["@jridgewell/set-array", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/source-map", [\ - ["npm:0.3.6", {\ - "packageLocation": "./.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip/node_modules/@jridgewell/source-map/",\ - "packageDependencies": [\ - ["@jridgewell/source-map", "npm:0.3.6"],\ - ["@jridgewell/gen-mapping", "npm:0.3.5"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/sourcemap-codec", [\ - ["npm:1.5.0", {\ - "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip/node_modules/@jridgewell/sourcemap-codec/",\ - "packageDependencies": [\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/trace-mapping", [\ - ["npm:0.3.25", {\ - "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip/node_modules/@jridgewell/trace-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["@jridgewell/resolve-uri", "npm:3.1.2"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@mdn/browser-compat-data", [\ - ["npm:2.0.7", {\ - "packageLocation": "./.yarn/cache/@mdn-browser-compat-data-npm-2.0.7-2e97973c18-4135c3b44d.zip/node_modules/@mdn/browser-compat-data/",\ - "packageDependencies": [\ - ["@mdn/browser-compat-data", "npm:2.0.7"],\ - ["extend", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@native-html/css-processor", [\ - ["virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor", {\ - "packageLocation": "./.yarn/__virtual__/@native-html-css-processor-virtual-98ef71086e/1/packages/css-processor/",\ - "packageDependencies": [\ - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"],\ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@react-native-community/bob", "npm:0.17.1"],\ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."],\ - ["@types/jest", "npm:26.0.23"],\ - ["@types/react", "npm:17.0.5"],\ - ["@types/react-native", "npm:0.64.5"],\ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"],\ - ["css-to-react-native", "npm:3.0.0"],\ - ["csstype", "npm:3.0.9"],\ - ["eslint", "npm:7.26.0"],\ - ["jest", "npm:26.6.3"],\ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"],\ - ["param-case", "npm:3.0.4"],\ - ["prettier", "npm:2.3.0"],\ - ["react", "npm:17.0.2"],\ - ["release-config", "workspace:packages/release-config"],\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["workspace:packages/css-processor", {\ - "packageLocation": "./packages/css-processor/",\ - "packageDependencies": [\ - ["@native-html/css-processor", "workspace:packages/css-processor"],\ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@react-native-community/bob", "npm:0.17.1"],\ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."],\ - ["@types/jest", "npm:26.0.23"],\ - ["@types/react", "npm:17.0.5"],\ - ["@types/react-native", "npm:0.64.5"],\ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"],\ - ["css-to-react-native", "npm:3.0.0"],\ - ["csstype", "npm:3.0.9"],\ - ["eslint", "npm:7.26.0"],\ - ["jest", "npm:26.6.3"],\ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"],\ - ["param-case", "npm:3.0.4"],\ - ["prettier", "npm:2.3.0"],\ - ["react", "npm:17.0.2"],\ - ["release-config", "workspace:packages/release-config"],\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["@native-html/transient-render-engine", [\ - ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine", {\ - "packageLocation": "./.yarn/__virtual__/@native-html-transient-render-engine-virtual-bb97fc4855/1/packages/transient-render-engine/",\ - "packageDependencies": [\ - ["@native-html/transient-render-engine", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine"],\ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"],\ - ["@react-native-community/bob", "npm:0.17.1"],\ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."],\ - ["@tsconfig/react-native", "npm:1.0.3"],\ - ["@types/jest", "npm:26.0.23"],\ - ["@types/ramda", "npm:0.27.44"],\ - ["@types/react-native", "npm:0.64.5"],\ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"],\ - ["csstype", "npm:3.0.9"],\ - ["dom-serializer", "npm:1.3.2"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.2"],\ - ["domutils", "npm:2.8.0"],\ - ["eslint", "npm:7.26.0"],\ - ["htmlparser2", "npm:7.1.2"],\ - ["jest", "npm:26.6.3"],\ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"],\ - ["prettier", "npm:2.3.0"],\ - ["ramda", "npm:0.27.2"],\ - ["react", "npm:17.0.2"],\ - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"],\ - ["release-config", "workspace:packages/release-config"],\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "packagePeers": [\ - "react-native"\ - ],\ - "linkType": "SOFT"\ - }],\ - ["workspace:packages/transient-render-engine", {\ - "packageLocation": "./packages/transient-render-engine/",\ - "packageDependencies": [\ - ["@native-html/transient-render-engine", "workspace:packages/transient-render-engine"],\ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"],\ - ["@react-native-community/bob", "npm:0.17.1"],\ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."],\ - ["@tsconfig/react-native", "npm:1.0.3"],\ - ["@types/jest", "npm:26.0.23"],\ - ["@types/ramda", "npm:0.27.44"],\ - ["@types/react-native", "npm:0.64.5"],\ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"],\ - ["csstype", "npm:3.0.9"],\ - ["dom-serializer", "npm:1.3.2"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.2"],\ - ["domutils", "npm:2.8.0"],\ - ["eslint", "npm:7.26.0"],\ - ["htmlparser2", "npm:7.1.2"],\ - ["jest", "npm:26.6.3"],\ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"],\ - ["prettier", "npm:2.3.0"],\ - ["ramda", "npm:0.27.2"],\ - ["react", "npm:17.0.2"],\ - ["release-config", "workspace:packages/release-config"],\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["@nicolo-ribaudo/chokidar-2", [\ - ["npm:2.1.8-no-fsevents", {\ - "packageLocation": "./.yarn/cache/@nicolo-ribaudo-chokidar-2-npm-2.1.8-no-fsevents-a21a333eb4-24f44374bf.zip/node_modules/@nicolo-ribaudo/chokidar-2/",\ - "packageDependencies": [\ - ["@nicolo-ribaudo/chokidar-2", "npm:2.1.8-no-fsevents"],\ - ["anymatch", "npm:2.0.0"],\ - ["async-each", "npm:1.0.3"],\ - ["braces", "npm:2.3.2"],\ - ["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"\ - }]\ - ]],\ - ["@nodelib/fs.scandir", [\ - ["npm:2.1.4", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.4-6f6ddb2372-0f4199e7b4.zip/node_modules/@nodelib/fs.scandir/",\ - "packageDependencies": [\ - ["@nodelib/fs.scandir", "npm:2.1.4"],\ - ["@nodelib/fs.stat", "npm:2.0.4"],\ - ["run-parallel", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@nodelib/fs.stat", [\ - ["npm:2.0.4", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.4-0b2acf9d70-a2864bf3f9.zip/node_modules/@nodelib/fs.stat/",\ - "packageDependencies": [\ - ["@nodelib/fs.stat", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@nodelib/fs.walk", [\ - ["npm:1.2.6", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.6-b686194e9d-067d9344be.zip/node_modules/@nodelib/fs.walk/",\ - "packageDependencies": [\ - ["@nodelib/fs.walk", "npm:1.2.6"],\ - ["@nodelib/fs.scandir", "npm:2.1.4"],\ - ["fastq", "npm:1.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@npmcli/move-file", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@npmcli-move-file-npm-1.1.2-4f6c7b3354-c96381d4a3.zip/node_modules/@npmcli/move-file/",\ - "packageDependencies": [\ - ["@npmcli/move-file", "npm:1.1.2"],\ - ["mkdirp", "npm:1.0.4"],\ - ["rimraf", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/auth-token", [\ - ["npm:2.4.5", {\ - "packageLocation": "./.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-f4e213b793.zip/node_modules/@octokit/auth-token/",\ - "packageDependencies": [\ - ["@octokit/auth-token", "npm:2.4.5"],\ - ["@octokit/types", "npm:6.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/core", [\ - ["npm:3.4.0", {\ - "packageLocation": "./.yarn/cache/@octokit-core-npm-3.4.0-0e242eba8e-dd428a383a.zip/node_modules/@octokit/core/",\ - "packageDependencies": [\ - ["@octokit/core", "npm:3.4.0"],\ - ["@octokit/auth-token", "npm:2.4.5"],\ - ["@octokit/graphql", "npm:4.6.1"],\ - ["@octokit/request", "npm:5.4.15"],\ - ["@octokit/request-error", "npm:2.0.5"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["before-after-hook", "npm:2.2.1"],\ - ["universal-user-agent", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/endpoint", [\ - ["npm:6.0.11", {\ - "packageLocation": "./.yarn/cache/@octokit-endpoint-npm-6.0.11-b00375a302-03b352ae8c.zip/node_modules/@octokit/endpoint/",\ - "packageDependencies": [\ - ["@octokit/endpoint", "npm:6.0.11"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["is-plain-object", "npm:5.0.0"],\ - ["universal-user-agent", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/graphql", [\ - ["npm:4.6.1", {\ - "packageLocation": "./.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-a9417a160e.zip/node_modules/@octokit/graphql/",\ - "packageDependencies": [\ - ["@octokit/graphql", "npm:4.6.1"],\ - ["@octokit/request", "npm:5.4.15"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["universal-user-agent", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/openapi-types", [\ - ["npm:7.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-7.0.0-13d5739029-715d414a2f.zip/node_modules/@octokit/openapi-types/",\ - "packageDependencies": [\ - ["@octokit/openapi-types", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/plugin-paginate-rest", [\ - ["npm:2.13.3", {\ - "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-bbfac86bd2.zip/node_modules/@octokit/plugin-paginate-rest/",\ - "packageDependencies": [\ - ["@octokit/plugin-paginate-rest", "npm:2.13.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3", {\ - "packageLocation": "./.yarn/__virtual__/@octokit-plugin-paginate-rest-virtual-33d7a96f24/0/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-bbfac86bd2.zip/node_modules/@octokit/plugin-paginate-rest/",\ - "packageDependencies": [\ - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3"],\ - ["@octokit/core", "npm:3.4.0"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["@types/octokit__core", null]\ - ],\ - "packagePeers": [\ - "@octokit/core",\ - "@types/octokit__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/plugin-request-log", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-48ec556c17.zip/node_modules/@octokit/plugin-request-log/",\ - "packageDependencies": [\ - ["@octokit/plugin-request-log", "npm:1.0.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3", {\ - "packageLocation": "./.yarn/__virtual__/@octokit-plugin-request-log-virtual-e6e47837ce/0/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-48ec556c17.zip/node_modules/@octokit/plugin-request-log/",\ - "packageDependencies": [\ - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3"],\ - ["@octokit/core", "npm:3.4.0"],\ - ["@types/octokit__core", null]\ - ],\ - "packagePeers": [\ - "@octokit/core",\ - "@types/octokit__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/plugin-rest-endpoint-methods", [\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-a39e246eda.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.15", {\ - "packageLocation": "./.yarn/cache/@octokit-request-npm-5.4.15-2cd9523802-4db9eb7fba.zip/node_modules/@octokit/request/",\ - "packageDependencies": [\ - ["@octokit/request", "npm:5.4.15"],\ - ["@octokit/endpoint", "npm:6.0.11"],\ - ["@octokit/request-error", "npm:2.0.5"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["is-plain-object", "npm:5.0.0"],\ - ["node-fetch", "npm:2.6.1"],\ - ["universal-user-agent", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/request-error", [\ - ["npm:2.0.5", {\ - "packageLocation": "./.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-61aef8e3c4.zip/node_modules/@octokit/request-error/",\ - "packageDependencies": [\ - ["@octokit/request-error", "npm:2.0.5"],\ - ["@octokit/types", "npm:6.14.2"],\ - ["deprecation", "npm:2.3.1"],\ - ["once", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/rest", [\ - ["npm:18.0.6", {\ - "packageLocation": "./.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-432c70a972.zip/node_modules/@octokit/rest/",\ - "packageDependencies": [\ - ["@octokit/rest", "npm:18.0.6"],\ - ["@octokit/core", "npm:3.4.0"],\ - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3"],\ - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3"],\ - ["@octokit/plugin-rest-endpoint-methods", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@octokit/types", [\ - ["npm:5.5.0", {\ - "packageLocation": "./.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-defd1d55ec.zip/node_modules/@octokit/types/",\ - "packageDependencies": [\ - ["@octokit/types", "npm:5.5.0"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.14.2", {\ - "packageLocation": "./.yarn/cache/@octokit-types-npm-6.14.2-6c5118e7f4-df455a2d20.zip/node_modules/@octokit/types/",\ - "packageDependencies": [\ - ["@octokit/types", "npm:6.14.2"],\ - ["@octokit/openapi-types", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/bob", [\ - ["npm:0.17.1", {\ - "packageLocation": "./.yarn/unplugged/@react-native-community-bob-npm-0.17.1-78519ee361/node_modules/@react-native-community/bob/",\ - "packageDependencies": [\ - ["@react-native-community/bob", "npm:0.17.1"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-flow", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"],\ - ["@babel/preset-react", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["browserslist", "npm:4.16.6"],\ - ["chalk", "npm:4.1.1"],\ - ["cosmiconfig", "npm:7.0.0"],\ - ["cross-spawn", "npm:7.0.3"],\ - ["dedent", "npm:0.7.0"],\ - ["del", "npm:6.0.0"],\ - ["ejs", "npm:3.1.6"],\ - ["fs-extra", "npm:9.1.0"],\ - ["github-username", "npm:5.0.1"],\ - ["glob", "npm:7.1.7"],\ - ["is-git-dirty", "npm:2.0.1"],\ - ["jetifier", "npm:1.6.8"],\ - ["json5", "npm:2.2.0"],\ - ["prompts", "npm:2.4.1"],\ - ["validate-npm-package-name", "npm:3.0.0"],\ - ["which", "npm:2.0.2"],\ - ["yargs", "npm:16.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-npm-13.6.9-73861e70f2-5cdf84a45c.zip/node_modules/@react-native-community/cli/",\ - "packageDependencies": [\ - ["@react-native-community/cli", "npm:13.6.9"],\ - ["@react-native-community/cli-clean", "npm:13.6.9"],\ - ["@react-native-community/cli-config", "npm:13.6.9"],\ - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"],\ - ["@react-native-community/cli-doctor", "npm:13.6.9"],\ - ["@react-native-community/cli-hermes", "npm:13.6.9"],\ - ["@react-native-community/cli-server-api", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["@react-native-community/cli-types", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["commander", "npm:9.5.0"],\ - ["deepmerge", "npm:4.3.1"],\ - ["execa", "npm:5.1.1"],\ - ["find-up", "npm:4.1.0"],\ - ["fs-extra", "npm:8.1.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["prompts", "npm:2.4.2"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-clean", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-clean-npm-13.6.9-7835f41fe8-586cdaff2a.zip/node_modules/@react-native-community/cli-clean/",\ - "packageDependencies": [\ - ["@react-native-community/cli-clean", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["execa", "npm:5.1.1"],\ - ["fast-glob", "npm:3.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-config", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-config-npm-13.6.9-8947727d1d-fa47a4c4f2.zip/node_modules/@react-native-community/cli-config/",\ - "packageDependencies": [\ - ["@react-native-community/cli-config", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["cosmiconfig", "npm:5.2.1"],\ - ["deepmerge", "npm:4.3.1"],\ - ["fast-glob", "npm:3.3.2"],\ - ["joi", "npm:17.13.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-debugger-ui", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-debugger-ui-npm-13.6.9-9cb700fd85-ef0acf98c8.zip/node_modules/@react-native-community/cli-debugger-ui/",\ - "packageDependencies": [\ - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"],\ - ["serve-static", "npm:1.16.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-doctor", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-doctor-npm-13.6.9-00f9937336-01f5ca98e0.zip/node_modules/@react-native-community/cli-doctor/",\ - "packageDependencies": [\ - ["@react-native-community/cli-doctor", "npm:13.6.9"],\ - ["@react-native-community/cli-config", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-android", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-apple", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-ios", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["command-exists", "npm:1.2.9"],\ - ["deepmerge", "npm:4.3.1"],\ - ["envinfo", "npm:7.14.0"],\ - ["execa", "npm:5.1.1"],\ - ["hermes-profile-transformer", "npm:0.0.6"],\ - ["node-stream-zip", "npm:1.15.0"],\ - ["ora", "npm:5.4.1"],\ - ["semver", "npm:7.6.3"],\ - ["strip-ansi", "npm:5.2.0"],\ - ["wcwidth", "npm:1.0.1"],\ - ["yaml", "npm:2.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-hermes", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-hermes-npm-13.6.9-2d171ae59c-4b68fe4ab4.zip/node_modules/@react-native-community/cli-hermes/",\ - "packageDependencies": [\ - ["@react-native-community/cli-hermes", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-android", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["hermes-profile-transformer", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-platform-android", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-android-npm-13.6.9-d3dc697aee-6fb98bfd8c.zip/node_modules/@react-native-community/cli-platform-android/",\ - "packageDependencies": [\ - ["@react-native-community/cli-platform-android", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["execa", "npm:5.1.1"],\ - ["fast-glob", "npm:3.3.2"],\ - ["fast-xml-parser", "npm:4.5.0"],\ - ["logkitty", "npm:0.7.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-platform-apple", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-apple-npm-13.6.9-af92330889-63c991edaf.zip/node_modules/@react-native-community/cli-platform-apple/",\ - "packageDependencies": [\ - ["@react-native-community/cli-platform-apple", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["chalk", "npm:4.1.2"],\ - ["execa", "npm:5.1.1"],\ - ["fast-glob", "npm:3.3.2"],\ - ["fast-xml-parser", "npm:4.5.0"],\ - ["ora", "npm:5.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-platform-ios", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-ios-npm-13.6.9-aa1c8682ea-80182ae7cb.zip/node_modules/@react-native-community/cli-platform-ios/",\ - "packageDependencies": [\ - ["@react-native-community/cli-platform-ios", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-apple", "npm:13.6.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-server-api", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-server-api-npm-13.6.9-9b87028c1a-21bb11184f.zip/node_modules/@react-native-community/cli-server-api/",\ - "packageDependencies": [\ - ["@react-native-community/cli-server-api", "npm:13.6.9"],\ - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["compression", "npm:1.7.4"],\ - ["connect", "npm:3.7.0"],\ - ["errorhandler", "npm:1.5.1"],\ - ["nocache", "npm:3.0.4"],\ - ["pretty-format", "npm:26.6.2"],\ - ["serve-static", "npm:1.16.2"],\ - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-tools", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-tools-npm-13.6.9-4fc9353fbf-1bbb2a3836.zip/node_modules/@react-native-community/cli-tools/",\ - "packageDependencies": [\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["appdirsjs", "npm:1.2.7"],\ - ["chalk", "npm:4.1.2"],\ - ["execa", "npm:5.1.1"],\ - ["find-up", "npm:5.0.0"],\ - ["mime", "npm:2.6.0"],\ - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"],\ - ["open", "npm:6.4.0"],\ - ["ora", "npm:5.4.1"],\ - ["semver", "npm:7.6.3"],\ - ["shell-quote", "npm:1.8.1"],\ - ["sudo-prompt", "npm:9.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/cli-types", [\ - ["npm:13.6.9", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-types-npm-13.6.9-f2336259cc-224c60447f.zip/node_modules/@react-native-community/cli-types/",\ - "packageDependencies": [\ - ["@react-native-community/cli-types", "npm:13.6.9"],\ - ["joi", "npm:17.13.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/eslint-config", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-e15e5b0535.zip/node_modules/@react-native-community/eslint-config/",\ - "packageDependencies": [\ - ["@react-native-community/eslint-config", "npm:2.0.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0", {\ - "packageLocation": "./.yarn/__virtual__/@react-native-community-eslint-config-virtual-bc7af5d9ca/0/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-e15e5b0535.zip/node_modules/@react-native-community/eslint-config/",\ - "packageDependencies": [\ - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"],\ - ["@react-native-community/eslint-plugin", "npm:1.1.0"],\ - ["@types/eslint", null],\ - ["@typescript-eslint/eslint-plugin", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"],\ - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"],\ - ["babel-eslint", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-config-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0"],\ - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"],\ - ["eslint-plugin-flowtype", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3"],\ - ["eslint-plugin-jest", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1"],\ - ["eslint-plugin-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2"],\ - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"],\ - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"],\ - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"],\ - ["prettier", "npm:2.3.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native-community/eslint-plugin", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@react-native-community-eslint-plugin-npm-1.1.0-86bd3dfadc-6d04d8086f.zip/node_modules/@react-native-community/eslint-plugin/",\ - "packageDependencies": [\ - ["@react-native-community/eslint-plugin", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/assets-registry", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-assets-registry-npm-0.74.87-5dc5ec21ec-03bd730a82.zip/node_modules/@react-native/assets-registry/",\ - "packageDependencies": [\ - ["@react-native/assets-registry", "npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/babel-plugin-codegen", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-babel-plugin-codegen-npm-0.74.87-31567c2937-c418a7e3d4.zip/node_modules/@react-native/babel-plugin-codegen/",\ - "packageDependencies": [\ - ["@react-native/babel-plugin-codegen", "npm:0.74.87"],\ - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/babel-preset", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-f71e57ad9c.zip/node_modules/@react-native/babel-preset/",\ - "packageDependencies": [\ - ["@react-native/babel-preset", "npm:0.74.87"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87", {\ - "packageLocation": "./.yarn/__virtual__/@react-native-babel-preset-virtual-63b6a8cb58/0/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-f71e57ad9c.zip/node_modules/@react-native/babel-preset/",\ - "packageDependencies": [\ - ["@react-native/babel-preset", "virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/plugin-proposal-async-generator-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/plugin-proposal-class-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"],\ - ["@babel/plugin-proposal-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"],\ - ["@babel/plugin-proposal-numeric-separator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"],\ - ["@babel/plugin-proposal-object-rest-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"],\ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-proposal-optional-chaining", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0"],\ - ["@babel/plugin-syntax-dynamic-import", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3"],\ - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"],\ - ["@babel/plugin-transform-arrow-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/plugin-transform-async-to-generator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/plugin-transform-block-scoping", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-classes", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-computed-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/plugin-transform-destructuring", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8"],\ - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"],\ - ["@babel/plugin-transform-function-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-transform-literals", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-transform-modules-commonjs", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0"],\ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/plugin-transform-parameters", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-private-methods", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4"],\ - ["@babel/plugin-transform-private-property-in-object", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"],\ - ["@babel/plugin-transform-react-display-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12"],\ - ["@babel/plugin-transform-react-jsx-self", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-transform-react-jsx-source", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-runtime", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"],\ - ["@babel/plugin-transform-shorthand-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-transform-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"],\ - ["@babel/plugin-transform-sticky-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"],\ - ["@babel/plugin-transform-unicode-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@react-native/babel-plugin-codegen", "npm:0.74.87"],\ - ["@types/babel__core", null],\ - ["babel-plugin-transform-flow-enums", "npm:0.0.2"],\ - ["react-refresh", "npm:0.14.2"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/codegen", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-codegen-npm-0.74.87-f772b0a115-4f962484bb.zip/node_modules/@react-native/codegen/",\ - "packageDependencies": [\ - ["@react-native/codegen", "npm:0.74.87"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87", {\ - "packageLocation": "./.yarn/__virtual__/@react-native-codegen-virtual-39ff8dcc54/0/cache/@react-native-codegen-npm-0.74.87-f772b0a115-4f962484bb.zip/node_modules/@react-native/codegen/",\ - "packageDependencies": [\ - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/preset-env", null],\ - ["@types/babel__preset-env", null],\ - ["glob", "npm:7.1.7"],\ - ["hermes-parser", "npm:0.19.1"],\ - ["invariant", "npm:2.2.4"],\ - ["jscodeshift", "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0"],\ - ["mkdirp", "npm:0.5.6"],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "packagePeers": [\ - "@babel/preset-env",\ - "@types/babel__preset-env"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/community-cli-plugin", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-community-cli-plugin-npm-0.74.87-bf141e2536-ac3d9621d5.zip/node_modules/@react-native/community-cli-plugin/",\ - "packageDependencies": [\ - ["@react-native/community-cli-plugin", "npm:0.74.87"],\ - ["@react-native-community/cli-server-api", "npm:13.6.9"],\ - ["@react-native-community/cli-tools", "npm:13.6.9"],\ - ["@react-native/dev-middleware", "npm:0.74.87"],\ - ["@react-native/metro-babel-transformer", "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87"],\ - ["chalk", "npm:4.1.1"],\ - ["execa", "npm:5.1.1"],\ - ["metro", "npm:0.80.12"],\ - ["metro-config", "npm:0.80.12"],\ - ["metro-core", "npm:0.80.12"],\ - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"],\ - ["querystring", "npm:0.2.1"],\ - ["readline", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/debugger-frontend", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-debugger-frontend-npm-0.74.87-7ec98a0c0a-6d9c20be19.zip/node_modules/@react-native/debugger-frontend/",\ - "packageDependencies": [\ - ["@react-native/debugger-frontend", "npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/dev-middleware", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-dev-middleware-npm-0.74.87-3e56b6bd6a-9fcaaa3b37.zip/node_modules/@react-native/dev-middleware/",\ - "packageDependencies": [\ - ["@react-native/dev-middleware", "npm:0.74.87"],\ - ["@isaacs/ttlcache", "npm:1.4.1"],\ - ["@react-native/debugger-frontend", "npm:0.74.87"],\ - ["@rnx-kit/chromium-edge-launcher", "npm:1.0.0"],\ - ["chrome-launcher", "npm:0.15.2"],\ - ["connect", "npm:3.7.0"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"],\ - ["nullthrows", "npm:1.1.1"],\ - ["open", "npm:7.4.2"],\ - ["selfsigned", "npm:2.4.1"],\ - ["serve-static", "npm:1.16.2"],\ - ["temp-dir", "npm:2.0.0"],\ - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/gradle-plugin", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/unplugged/@react-native-gradle-plugin-npm-0.74.87-2ad4f2fa47/node_modules/@react-native/gradle-plugin/",\ - "packageDependencies": [\ - ["@react-native/gradle-plugin", "npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/js-polyfills", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-js-polyfills-npm-0.74.87-83ddfb5d3d-aa552c0e3c.zip/node_modules/@react-native/js-polyfills/",\ - "packageDependencies": [\ - ["@react-native/js-polyfills", "npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/metro-babel-transformer", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-02654f4544.zip/node_modules/@react-native/metro-babel-transformer/",\ - "packageDependencies": [\ - ["@react-native/metro-babel-transformer", "npm:0.74.87"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87", {\ - "packageLocation": "./.yarn/__virtual__/@react-native-metro-babel-transformer-virtual-8a5906f434/0/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-02654f4544.zip/node_modules/@react-native/metro-babel-transformer/",\ - "packageDependencies": [\ - ["@react-native/metro-babel-transformer", "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@react-native/babel-preset", "virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87"],\ - ["@types/babel__core", null],\ - ["hermes-parser", "npm:0.19.1"],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "packagePeers": [\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/normalize-colors", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-normalize-colors-npm-0.74.87-5596454407-f24ba360e5.zip/node_modules/@react-native/normalize-colors/",\ - "packageDependencies": [\ - ["@react-native/normalize-colors", "npm:0.74.87"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@react-native/virtualized-lists", [\ - ["npm:0.74.87", {\ - "packageLocation": "./.yarn/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-eac3fd11d7.zip/node_modules/@react-native/virtualized-lists/",\ - "packageDependencies": [\ - ["@react-native/virtualized-lists", "npm:0.74.87"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87", {\ - "packageLocation": "./.yarn/__virtual__/@react-native-virtualized-lists-virtual-efe9ea4105/0/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-eac3fd11d7.zip/node_modules/@react-native/virtualized-lists/",\ - "packageDependencies": [\ - ["@react-native/virtualized-lists", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87"],\ - ["@types/react", null],\ - ["@types/react-native", null],\ - ["invariant", "npm:2.2.4"],\ - ["nullthrows", "npm:1.1.1"],\ - ["react", null],\ - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"]\ - ],\ - "packagePeers": [\ - "@types/react-native",\ - "@types/react",\ - "react-native",\ - "react"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@release-it/conventional-changelog", [\ - ["patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A.", {\ - "packageLocation": "./.yarn/cache/@release-it-conventional-changelog-patch-a575480bef-771356a002.zip/node_modules/@release-it/conventional-changelog/",\ - "packageDependencies": [\ - ["@release-it/conventional-changelog", "patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A.", {\ - "packageLocation": "./.yarn/__virtual__/@release-it-conventional-changelog-virtual-8d65802073/0/cache/@release-it-conventional-changelog-patch-a575480bef-771356a002.zip/node_modules/@release-it/conventional-changelog/",\ - "packageDependencies": [\ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=a6918e&locator=core%40workspace%3A."],\ - ["@types/release-it", null],\ - ["concat-stream", "npm:2.0.0"],\ - ["conventional-changelog", "npm:3.1.24"],\ - ["conventional-recommended-bump", "npm:6.1.0"],\ - ["prepend-file", "npm:2.0.0"],\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."]\ - ],\ - "packagePeers": [\ - "@types/release-it",\ - "release-it"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@rnx-kit/chromium-edge-launcher", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/@rnx-kit-chromium-edge-launcher-npm-1.0.0-5272508d46-b4f3775da4.zip/node_modules/@rnx-kit/chromium-edge-launcher/",\ - "packageDependencies": [\ - ["@rnx-kit/chromium-edge-launcher", "npm:1.0.0"],\ - ["@types/node", "npm:18.19.50"],\ - ["escape-string-regexp", "npm:4.0.0"],\ - ["is-wsl", "npm:2.2.0"],\ - ["lighthouse-logger", "npm:1.4.2"],\ - ["mkdirp", "npm:1.0.4"],\ - ["rimraf", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sideway/address", [\ - ["npm:4.1.5", {\ - "packageLocation": "./.yarn/cache/@sideway-address-npm-4.1.5-a3852745c8-c4c73ac033.zip/node_modules/@sideway/address/",\ - "packageDependencies": [\ - ["@sideway/address", "npm:4.1.5"],\ - ["@hapi/hoek", "npm:9.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sideway/formula", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/@sideway-formula-npm-3.0.1-ee371b2ddf-8d3ee7f80d.zip/node_modules/@sideway/formula/",\ - "packageDependencies": [\ - ["@sideway/formula", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sideway/pinpoint", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/@sideway-pinpoint-npm-2.0.0-66d94e687e-1ed2180012.zip/node_modules/@sideway/pinpoint/",\ - "packageDependencies": [\ - ["@sideway/pinpoint", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinclair/typebox", [\ - ["npm:0.27.8", {\ - "packageLocation": "./.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-297f95ff77.zip/node_modules/@sinclair/typebox/",\ - "packageDependencies": [\ - ["@sinclair/typebox", "npm:0.27.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sindresorhus/is", [\ - ["npm:0.14.0", {\ - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-789cd128f0.zip/node_modules/@sindresorhus/is/",\ - "packageDependencies": [\ - ["@sindresorhus/is", "npm:0.14.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.2", {\ - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-3.1.2-bcdc8ac1e4-33780588da.zip/node_modules/@sindresorhus/is/",\ - "packageDependencies": [\ - ["@sindresorhus/is", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinonjs/commons", [\ - ["npm:1.8.3", {\ - "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-910720ef0a.zip/node_modules/@sinonjs/commons/",\ - "packageDependencies": [\ - ["@sinonjs/commons", "npm:1.8.3"],\ - ["type-detect", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a0af217ba7.zip/node_modules/@sinonjs/commons/",\ - "packageDependencies": [\ - ["@sinonjs/commons", "npm:3.0.1"],\ - ["type-detect", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinonjs/fake-timers", [\ - ["npm:10.3.0", {\ - "packageLocation": "./.yarn/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-78155c7bd8.zip/node_modules/@sinonjs/fake-timers/",\ - "packageDependencies": [\ - ["@sinonjs/fake-timers", "npm:10.3.0"],\ - ["@sinonjs/commons", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-c7ee19f62b.zip/node_modules/@sinonjs/fake-timers/",\ - "packageDependencies": [\ - ["@sinonjs/fake-timers", "npm:6.0.1"],\ - ["@sinonjs/commons", "npm:1.8.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@szmarczak/http-timer", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-9b63853bd5.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-27b713859b.zip/node_modules/@szmarczak/http-timer/",\ - "packageDependencies": [\ - ["@szmarczak/http-timer", "npm:4.0.5"],\ - ["defer-to-connect", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tootallnate/once", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-e1fb1bbbc1.zip/node_modules/@tootallnate/once/",\ - "packageDependencies": [\ - ["@tootallnate/once", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/react-native", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/@tsconfig-react-native-npm-1.0.3-b2fdaa0bef-abc74329cc.zip/node_modules/@tsconfig/react-native/",\ - "packageDependencies": [\ - ["@tsconfig/react-native", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__core", [\ - ["npm:7.1.14", {\ - "packageLocation": "./.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-56ce28ec0d.zip/node_modules/@types/babel__core/",\ - "packageDependencies": [\ - ["@types/babel__core", "npm:7.1.14"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__generator", "npm:7.6.2"],\ - ["@types/babel__template", "npm:7.4.0"],\ - ["@types/babel__traverse", "npm:7.11.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__generator", [\ - ["npm:7.6.2", {\ - "packageLocation": "./.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-e1e1dac9c6.zip/node_modules/@types/babel__generator/",\ - "packageDependencies": [\ - ["@types/babel__generator", "npm:7.6.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__template", [\ - ["npm:7.4.0", {\ - "packageLocation": "./.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip/node_modules/@types/babel__template/",\ - "packageDependencies": [\ - ["@types/babel__template", "npm:7.4.0"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__traverse", [\ - ["npm:7.11.1", {\ - "packageLocation": "./.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-8df08f5ed9.zip/node_modules/@types/babel__traverse/",\ - "packageDependencies": [\ - ["@types/babel__traverse", "npm:7.11.1"],\ - ["@babel/types", "npm:7.14.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/cacheable-request", [\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-b3c7d8bc3c.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:15.3.0"],\ - ["@types/responselike", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/eslint-visitor-keys", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/@types-eslint-visitor-keys-npm-1.0.0-a300061b93-90cd39c84d.zip/node_modules/@types/eslint-visitor-keys/",\ - "packageDependencies": [\ - ["@types/eslint-visitor-keys", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/graceful-fs", [\ - ["npm:4.1.5", {\ - "packageLocation": "./.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-d076bb61f4.zip/node_modules/@types/graceful-fs/",\ - "packageDependencies": [\ - ["@types/graceful-fs", "npm:4.1.5"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/http-cache-semantics", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-31df6e12de.zip/node_modules/@types/http-cache-semantics/",\ - "packageDependencies": [\ - ["@types/http-cache-semantics", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/istanbul-lib-coverage", [\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.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-f121dcac8a.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:3.0.0", {\ - "packageLocation": "./.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.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.23", {\ - "packageLocation": "./.yarn/cache/@types-jest-npm-26.0.23-f0d419e70e-75a49993cd.zip/node_modules/@types/jest/",\ - "packageDependencies": [\ - ["@types/jest", "npm:26.0.23"],\ - ["jest-diff", "npm:26.6.2"],\ - ["pretty-format", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/json-schema", [\ - ["npm:7.0.7", {\ - "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-ebd22d30ae.zip/node_modules/@types/json-schema/",\ - "packageDependencies": [\ - ["@types/json-schema", "npm:7.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/keyv", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-ee0d098693.zip/node_modules/@types/keyv/",\ - "packageDependencies": [\ - ["@types/keyv", "npm:3.1.1"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/minimist", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/@types-minimist-npm-1.2.1-dc316d808d-02631cdd79.zip/node_modules/@types/minimist/",\ - "packageDependencies": [\ - ["@types/minimist", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/node", [\ - ["npm:15.3.0", {\ - "packageLocation": "./.yarn/cache/@types-node-npm-15.3.0-7ebc66d6bc-af8e8e50cd.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:18.19.50", {\ - "packageLocation": "./.yarn/cache/@types-node-npm-18.19.50-1d7a03097e-d238bb8779.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:18.19.50"],\ - ["undici-types", "npm:5.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/node-forge", [\ - ["npm:1.3.11", {\ - "packageLocation": "./.yarn/cache/@types-node-forge-npm-1.3.11-132541fb70-670c9b377c.zip/node_modules/@types/node-forge/",\ - "packageDependencies": [\ - ["@types/node-forge", "npm:1.3.11"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/normalize-package-data", [\ - ["npm:2.4.0", {\ - "packageLocation": "./.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-f98b30d59e.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-4df9de9815.zip/node_modules/@types/parse-json/",\ - "packageDependencies": [\ - ["@types/parse-json", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/prettier", [\ - ["npm:2.2.3", {\ - "packageLocation": "./.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-a11650cc71.zip/node_modules/@types/prettier/",\ - "packageDependencies": [\ - ["@types/prettier", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/prop-types", [\ - ["npm:15.7.3", {\ - "packageLocation": "./.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-9006410596.zip/node_modules/@types/prop-types/",\ - "packageDependencies": [\ - ["@types/prop-types", "npm:15.7.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/ramda", [\ - ["npm:0.27.44", {\ - "packageLocation": "./.yarn/cache/@types-ramda-npm-0.27.44-12231e2490-66d45a4f8c.zip/node_modules/@types/ramda/",\ - "packageDependencies": [\ - ["@types/ramda", "npm:0.27.44"],\ - ["ts-toolbelt", "npm:6.15.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/react", [\ - ["npm:17.0.5", {\ - "packageLocation": "./.yarn/cache/@types-react-npm-17.0.5-b0d58aba4c-cecac935bf.zip/node_modules/@types/react/",\ - "packageDependencies": [\ - ["@types/react", "npm:17.0.5"],\ - ["@types/prop-types", "npm:15.7.3"],\ - ["@types/scheduler", "npm:0.16.1"],\ - ["csstype", "npm:3.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/react-native", [\ - ["npm:0.64.5", {\ - "packageLocation": "./.yarn/cache/@types-react-native-npm-0.64.5-7da2731710-be2b11aed3.zip/node_modules/@types/react-native/",\ - "packageDependencies": [\ - ["@types/react-native", "npm:0.64.5"],\ - ["@types/react", "npm:17.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/responselike", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e497238945.zip/node_modules/@types/responselike/",\ - "packageDependencies": [\ - ["@types/responselike", "npm:1.0.0"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/scheduler", [\ - ["npm:0.16.1", {\ - "packageLocation": "./.yarn/cache/@types-scheduler-npm-0.16.1-9a58541608-709f02113c.zip/node_modules/@types/scheduler/",\ - "packageDependencies": [\ - ["@types/scheduler", "npm:0.16.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/stack-utils", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip/node_modules/@types/stack-utils/",\ - "packageDependencies": [\ - ["@types/stack-utils", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/yargs", [\ - ["npm:15.0.13", {\ - "packageLocation": "./.yarn/cache/@types-yargs-npm-15.0.13-d1172b1fcd-b07da55e9a.zip/node_modules/@types/yargs/",\ - "packageDependencies": [\ - ["@types/yargs", "npm:15.0.13"],\ - ["@types/yargs-parser", "npm:20.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:17.0.33", {\ - "packageLocation": "./.yarn/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-16f6681bf4.zip/node_modules/@types/yargs/",\ - "packageDependencies": [\ - ["@types/yargs", "npm:17.0.33"],\ - ["@types/yargs-parser", "npm:20.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/yargs-parser", [\ - ["npm:20.2.0", {\ - "packageLocation": "./.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-7351eecdee.zip/node_modules/@types/yargs-parser/",\ - "packageDependencies": [\ - ["@types/yargs-parser", "npm:20.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/eslint-plugin", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-5f4e48c6f3.zip/node_modules/@typescript-eslint/eslint-plugin/",\ - "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "npm:3.10.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-2900a668c0.zip/node_modules/@typescript-eslint/eslint-plugin/",\ - "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "npm:4.23.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-eslint-plugin-virtual-4f763673f9/0/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-2900a668c0.zip/node_modules/@typescript-eslint/eslint-plugin/",\ - "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@types/eslint", null],\ - ["@types/typescript", null],\ - ["@types/typescript-eslint__parser", null],\ - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"],\ - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@typescript-eslint/scope-manager", "npm:4.23.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["eslint", "npm:7.26.0"],\ - ["functional-red-black-tree", "npm:1.0.1"],\ - ["lodash", "npm:4.17.21"],\ - ["regexpp", "npm:3.1.0"],\ - ["semver", "npm:7.3.5"],\ - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/typescript-eslint__parser",\ - "@types/typescript",\ - "@typescript-eslint/parser",\ - "eslint",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-eslint-plugin-virtual-23c4f6f2ba/0/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-5f4e48c6f3.zip/node_modules/@typescript-eslint/eslint-plugin/",\ - "packageDependencies": [\ - ["@typescript-eslint/eslint-plugin", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"],\ - ["@types/eslint", null],\ - ["@types/typescript", null],\ - ["@types/typescript-eslint__parser", null],\ - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"],\ - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["eslint", "npm:7.26.0"],\ - ["functional-red-black-tree", "npm:1.0.1"],\ - ["regexpp", "npm:3.1.0"],\ - ["semver", "npm:7.3.5"],\ - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"],\ - ["typescript", null]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/typescript-eslint__parser",\ - "@types/typescript",\ - "@typescript-eslint/parser",\ - "eslint",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/experimental-utils", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-3055eb8588.zip/node_modules/@typescript-eslint/experimental-utils/",\ - "packageDependencies": [\ - ["@typescript-eslint/experimental-utils", "npm:3.10.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-239aad771d.zip/node_modules/@typescript-eslint/experimental-utils/",\ - "packageDependencies": [\ - ["@typescript-eslint/experimental-utils", "npm:4.23.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-experimental-utils-virtual-0033b36532/0/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-3055eb8588.zip/node_modules/@typescript-eslint/experimental-utils/",\ - "packageDependencies": [\ - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"],\ - ["@types/eslint", null],\ - ["@types/json-schema", "npm:7.0.7"],\ - ["@typescript-eslint/types", "npm:3.10.1"],\ - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-scope", "npm:5.1.1"],\ - ["eslint-utils", "npm:2.1.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-experimental-utils-virtual-4d181a89fd/0/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-239aad771d.zip/node_modules/@typescript-eslint/experimental-utils/",\ - "packageDependencies": [\ - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"],\ - ["@types/eslint", null],\ - ["@types/json-schema", "npm:7.0.7"],\ - ["@typescript-eslint/scope-manager", "npm:4.23.0"],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["@typescript-eslint/typescript-estree", "virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-scope", "npm:5.1.1"],\ - ["eslint-utils", "npm:2.1.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/parser", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-3488d0a7c0.zip/node_modules/@typescript-eslint/parser/",\ - "packageDependencies": [\ - ["@typescript-eslint/parser", "npm:3.10.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-e4c133f2f2.zip/node_modules/@typescript-eslint/parser/",\ - "packageDependencies": [\ - ["@typescript-eslint/parser", "npm:4.23.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-parser-virtual-9046837440/0/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-e4c133f2f2.zip/node_modules/@typescript-eslint/parser/",\ - "packageDependencies": [\ - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@types/eslint", null],\ - ["@types/typescript", null],\ - ["@typescript-eslint/scope-manager", "npm:4.23.0"],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["@typescript-eslint/typescript-estree", "virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["eslint", "npm:7.26.0"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/typescript",\ - "eslint",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-parser-virtual-7db2ee60f8/0/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-3488d0a7c0.zip/node_modules/@typescript-eslint/parser/",\ - "packageDependencies": [\ - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"],\ - ["@types/eslint", null],\ - ["@types/eslint-visitor-keys", "npm:1.0.0"],\ - ["@types/typescript", null],\ - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"],\ - ["@typescript-eslint/types", "npm:3.10.1"],\ - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-visitor-keys", "npm:1.3.0"],\ - ["typescript", null]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/typescript",\ - "eslint",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/scope-manager", [\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-4.23.0-678850fab8-4c7b60cf94.zip/node_modules/@typescript-eslint/scope-manager/",\ - "packageDependencies": [\ - ["@typescript-eslint/scope-manager", "npm:4.23.0"],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["@typescript-eslint/visitor-keys", "npm:4.23.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/types", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-3.10.1-faddecc057-c5c696a0c3.zip/node_modules/@typescript-eslint/types/",\ - "packageDependencies": [\ - ["@typescript-eslint/types", "npm:3.10.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-4.23.0-9da8b5e2f2-b8882b1ce8.zip/node_modules/@typescript-eslint/types/",\ - "packageDependencies": [\ - ["@typescript-eslint/types", "npm:4.23.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/typescript-estree", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-ed4eedd04d.zip/node_modules/@typescript-eslint/typescript-estree/",\ - "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "npm:3.10.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip/node_modules/@typescript-eslint/typescript-estree/",\ - "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "npm:4.23.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-466b446d2b/0/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-ed4eedd04d.zip/node_modules/@typescript-eslint/typescript-estree/",\ - "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"],\ - ["@types/typescript", null],\ - ["@typescript-eslint/types", "npm:3.10.1"],\ - ["@typescript-eslint/visitor-keys", "npm:3.10.1"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["glob", "npm:7.1.7"],\ - ["is-glob", "npm:4.0.1"],\ - ["lodash", "npm:4.17.21"],\ - ["semver", "npm:7.3.5"],\ - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"],\ - ["typescript", null]\ - ],\ - "packagePeers": [\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-304f49c303/0/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip/node_modules/@typescript-eslint/typescript-estree/",\ - "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0"],\ - ["@types/typescript", null],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["@typescript-eslint/visitor-keys", "npm:4.23.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["globby", "npm:11.0.3"],\ - ["is-glob", "npm:4.0.1"],\ - ["semver", "npm:7.3.5"],\ - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"],\ - ["typescript", null]\ - ],\ - "packagePeers": [\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0", {\ - "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-530012c10c/0/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip/node_modules/@typescript-eslint/typescript-estree/",\ - "packageDependencies": [\ - ["@typescript-eslint/typescript-estree", "virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0"],\ - ["@types/typescript", null],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["@typescript-eslint/visitor-keys", "npm:4.23.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["globby", "npm:11.0.3"],\ - ["is-glob", "npm:4.0.1"],\ - ["semver", "npm:7.3.5"],\ - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "packagePeers": [\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@typescript-eslint/visitor-keys", [\ - ["npm:3.10.1", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-3.10.1-6a80d0d416-13e8059db3.zip/node_modules/@typescript-eslint/visitor-keys/",\ - "packageDependencies": [\ - ["@typescript-eslint/visitor-keys", "npm:3.10.1"],\ - ["eslint-visitor-keys", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.23.0", {\ - "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-4.23.0-52443e952e-caac87703d.zip/node_modules/@typescript-eslint/visitor-keys/",\ - "packageDependencies": [\ - ["@typescript-eslint/visitor-keys", "npm:4.23.0"],\ - ["@typescript-eslint/types", "npm:4.23.0"],\ - ["eslint-visitor-keys", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["JSONStream", [\ - ["npm:1.3.5", {\ - "packageLocation": "./.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e30daf7b9b.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.5", {\ - "packageLocation": "./.yarn/cache/abab-npm-2.0.5-ae8d5b629e-92deff85d5.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-2d88294118.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-ed84af329f.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.8", {\ - "packageLocation": "./.yarn/cache/accepts-npm-1.3.8-9a812371c9-67eaaa90e2.zip/node_modules/accepts/",\ - "packageDependencies": [\ - ["accepts", "npm:1.3.8"],\ - ["mime-types", "npm:2.1.35"],\ - ["negotiator", "npm:0.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn", [\ - ["npm:7.4.1", {\ - "packageLocation": "./.yarn/cache/acorn-npm-7.4.1-f450b4646c-8be2a40714.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:7.4.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.12.1", {\ - "packageLocation": "./.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:8.12.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.2.4", {\ - "packageLocation": "./.yarn/cache/acorn-npm-8.2.4-4dfdb01127-05959efd24.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:8.2.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn-globals", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-72d95e5b5e.zip/node_modules/acorn-globals/",\ - "packageDependencies": [\ - ["acorn-globals", "npm:6.0.0"],\ - ["acorn", "npm:7.4.1"],\ - ["acorn-walk", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn-jsx", [\ - ["npm:5.3.1", {\ - "packageLocation": "./.yarn/cache/acorn-jsx-npm-5.3.1-6ba8185d02-fea205d89a.zip/node_modules/acorn-jsx/",\ - "packageDependencies": [\ - ["acorn-jsx", "npm:5.3.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1", {\ - "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-72d2078d8a/0/cache/acorn-jsx-npm-5.3.1-6ba8185d02-fea205d89a.zip/node_modules/acorn-jsx/",\ - "packageDependencies": [\ - ["acorn-jsx", "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1"],\ - ["@types/acorn", null],\ - ["acorn", "npm:7.4.1"]\ - ],\ - "packagePeers": [\ - "@types/acorn",\ - "acorn"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn-walk", [\ - ["npm:7.2.0", {\ - "packageLocation": "./.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-4d3e186f72.zip/node_modules/acorn-walk/",\ - "packageDependencies": [\ - ["acorn-walk", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["add-stream", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/add-stream-npm-1.0.0-a5a0c0498c-3e9e8b0b8f.zip/node_modules/add-stream/",\ - "packageDependencies": [\ - ["add-stream", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["agent-base", [\ - ["npm:6.0.2", {\ - "packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-21fb903e09.zip/node_modules/agent-base/",\ - "packageDependencies": [\ - ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["agentkeepalive", [\ - ["npm:4.1.4", {\ - "packageLocation": "./.yarn/cache/agentkeepalive-npm-4.1.4-4d5b41b4c1-848634c4e1.zip/node_modules/agentkeepalive/",\ - "packageDependencies": [\ - ["agentkeepalive", "npm:4.1.4"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["depd", "npm:1.1.2"],\ - ["humanize-ms", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["aggregate-error", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip/node_modules/aggregate-error/",\ - "packageDependencies": [\ - ["aggregate-error", "npm:3.1.0"],\ - ["clean-stack", "npm:2.2.0"],\ - ["indent-string", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ajv", [\ - ["npm:6.12.6", {\ - "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-48d6ad2113.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.4.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.4.0", {\ - "packageLocation": "./.yarn/cache/ajv-npm-8.4.0-1d671a4d5f-b32bd20cfe.zip/node_modules/ajv/",\ - "packageDependencies": [\ - ["ajv", "npm:8.4.0"],\ - ["fast-deep-equal", "npm:3.1.3"],\ - ["json-schema-traverse", "npm:1.0.0"],\ - ["require-from-string", "npm:2.0.2"],\ - ["uri-js", "npm:4.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["anser", [\ - ["npm:1.4.10", {\ - "packageLocation": "./.yarn/cache/anser-npm-1.4.10-3fa41e8526-a5a6658ccb.zip/node_modules/anser/",\ - "packageDependencies": [\ - ["anser", "npm:1.4.10"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-align", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-22cebe8d9b.zip/node_modules/ansi-align/",\ - "packageDependencies": [\ - ["ansi-align", "npm:3.0.0"],\ - ["string-width", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-colors", [\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/ansi-colors-npm-4.1.1-97ad42f223-e862fddd0a.zip/node_modules/ansi-colors/",\ - "packageDependencies": [\ - ["ansi-colors", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-escapes", [\ - ["npm:4.3.2", {\ - "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-8661034456.zip/node_modules/ansi-escapes/",\ - "packageDependencies": [\ - ["ansi-escapes", "npm:4.3.2"],\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-fragments", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/ansi-fragments-npm-0.2.1-7617f2a498-2380829941.zip/node_modules/ansi-fragments/",\ - "packageDependencies": [\ - ["ansi-fragments", "npm:0.2.1"],\ - ["colorette", "npm:1.4.0"],\ - ["slice-ansi", "npm:2.1.0"],\ - ["strip-ansi", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-regex", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.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-2ad11c416f.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-97aa465953.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-b1bb4e992a.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.1", {\ - "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-styles", [\ - ["npm:3.2.1", {\ - "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:3.2.1"],\ - ["color-convert", "npm:1.9.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.3.0", {\ - "packageLocation": "./.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-b4494dfbfc.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["color-convert", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "./.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["anymatch", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-f7bb192984.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.2", {\ - "packageLocation": "./.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip/node_modules/anymatch/",\ - "packageDependencies": [\ - ["anymatch", "npm:3.1.2"],\ - ["normalize-path", "npm:3.0.0"],\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["appdirsjs", [\ - ["npm:1.2.7", {\ - "packageLocation": "./.yarn/cache/appdirsjs-npm-1.2.7-fcd05e6058-8f6cb9cc18.zip/node_modules/appdirsjs/",\ - "packageDependencies": [\ - ["appdirsjs", "npm:1.2.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["aproba", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/aproba-npm-1.2.0-34129f0778-48def77733.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-d7c3608add.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-c6a621343a.zip/node_modules/argparse/",\ - "packageDependencies": [\ - ["argparse", "npm:1.0.10"],\ - ["sprintf-js", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["arr-diff", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-ea7c883484.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-963fe12564.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-b5b0408c6e.zip/node_modules/arr-union/",\ - "packageDependencies": [\ - ["arr-union", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-find-index", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-aac128bf36.zip/node_modules/array-find-index/",\ - "packageDependencies": [\ - ["array-find-index", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-ify", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/array-ify-npm-1.0.0-e09a371977-c0502015b3.zip/node_modules/array-ify/",\ - "packageDependencies": [\ - ["array-ify", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-includes", [\ - ["npm:3.1.3", {\ - "packageLocation": "./.yarn/cache/array-includes-npm-3.1.3-5f58cf4c82-e7ccea0a79.zip/node_modules/array-includes/",\ - "packageDependencies": [\ - ["array-includes", "npm:3.1.3"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["get-intrinsic", "npm:1.1.1"],\ - ["is-string", "npm:1.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-union", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip/node_modules/array-union/",\ - "packageDependencies": [\ - ["array-union", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-unique", [\ - ["npm:0.3.2", {\ - "packageLocation": "./.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-da344b89cf.zip/node_modules/array-unique/",\ - "packageDependencies": [\ - ["array-unique", "npm:0.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array.prototype.flatmap", [\ - ["npm:1.2.4", {\ - "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.2.4-77697fdbe6-192cc09409.zip/node_modules/array.prototype.flatmap/",\ - "packageDependencies": [\ - ["array.prototype.flatmap", "npm:1.2.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["function-bind", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["arrify", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip/node_modules/arrify/",\ - "packageDependencies": [\ - ["arrify", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["asap", [\ - ["npm:2.0.6", {\ - "packageLocation": "./.yarn/cache/asap-npm-2.0.6-36714d439d-b244c0458c.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-7e9ba05c58.zip/node_modules/asn1/",\ - "packageDependencies": [\ - ["asn1", "npm:0.2.4"],\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["assert-plus", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-f4f991ae2d.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-c0eb895911.zip/node_modules/assign-symbols/",\ - "packageDependencies": [\ - ["assign-symbols", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ast-metadata-inferer", [\ - ["npm:0.4.0", {\ - "packageLocation": "./.yarn/cache/ast-metadata-inferer-npm-0.4.0-9db434cd5b-bca2c07600.zip/node_modules/ast-metadata-inferer/",\ - "packageDependencies": [\ - ["ast-metadata-inferer", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ast-types", [\ - ["npm:0.15.2", {\ - "packageLocation": "./.yarn/cache/ast-types-npm-0.15.2-a09d26e72b-81680bd582.zip/node_modules/ast-types/",\ - "packageDependencies": [\ - ["ast-types", "npm:0.15.2"],\ - ["tslib", "npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["astral-regex", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-93417fc087.zip/node_modules/astral-regex/",\ - "packageDependencies": [\ - ["astral-regex", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip/node_modules/astral-regex/",\ - "packageDependencies": [\ - ["astral-regex", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async", [\ - ["npm:0.9.2", {\ - "packageLocation": "./.yarn/cache/async-npm-0.9.2-d8cafe6cc3-69b9573269.zip/node_modules/async/",\ - "packageDependencies": [\ - ["async", "npm:0.9.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async-each", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/async-each-npm-1.0.3-464af5d2f3-868651cfeb.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-2b849695b4.zip/node_modules/async-limiter/",\ - "packageDependencies": [\ - ["async-limiter", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async-retry", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/async-retry-npm-1.3.1-a013434040-42b518505c.zip/node_modules/async-retry/",\ - "packageDependencies": [\ - ["async-retry", "npm:1.3.1"],\ - ["retry", "npm:0.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["asynckit", [\ - ["npm:0.4.0", {\ - "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-c718858525-3ce727cbc7.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-463e2f8e43.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-0624406cc0.zip/node_modules/atob/",\ - "packageDependencies": [\ - ["atob", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["aws-sign2", [\ - ["npm:0.7.0", {\ - "packageLocation": "./.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-2ac497d739.zip/node_modules/aws-sign2/",\ - "packageDependencies": [\ - ["aws-sign2", "npm:0.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["aws4", [\ - ["npm:1.11.0", {\ - "packageLocation": "./.yarn/cache/aws4-npm-1.11.0-283476ad94-54886f07b3.zip/node_modules/aws4/",\ - "packageDependencies": [\ - ["aws4", "npm:1.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-core", [\ - ["npm:7.0.0-bridge.0", {\ - "packageLocation": "./.yarn/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-2a1cb87901.zip/node_modules/babel-core/",\ - "packageDependencies": [\ - ["babel-core", "npm:7.0.0-bridge.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-core-virtual-a77909de7e/0/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-2a1cb87901.zip/node_modules/babel-core/",\ - "packageDependencies": [\ - ["babel-core", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-eslint", [\ - ["npm:10.1.0", {\ - "packageLocation": "./.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip/node_modules/babel-eslint/",\ - "packageDependencies": [\ - ["babel-eslint", "npm:10.1.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-eslint-virtual-b9d859d540/0/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip/node_modules/babel-eslint/",\ - "packageDependencies": [\ - ["babel-eslint", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/parser", "npm:7.14.2"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-visitor-keys", "npm:1.3.0"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-jest", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-83ac016e7a.zip/node_modules/babel-jest/",\ - "packageDependencies": [\ - ["babel-jest", "npm:26.6.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3", {\ - "packageLocation": "./.yarn/__virtual__/babel-jest-virtual-9f33f3a3f1/0/cache/babel-jest-npm-26.6.3-5630fee2b8-83ac016e7a.zip/node_modules/babel-jest/",\ - "packageDependencies": [\ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@jest/transform", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/babel__core", "npm:7.1.14"],\ - ["babel-plugin-istanbul", "npm:6.0.0"],\ - ["babel-preset-jest", "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"],\ - ["chalk", "npm:4.1.1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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-c9d24415bc.zip/node_modules/babel-plugin-dynamic-import-node/",\ - "packageDependencies": [\ - ["babel-plugin-dynamic-import-node", "npm:2.3.3"],\ - ["object.assign", "npm:4.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-istanbul", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-c4ee0b1b6c.zip/node_modules/babel-plugin-istanbul/",\ - "packageDependencies": [\ - ["babel-plugin-istanbul", "npm:6.0.0"],\ - ["@babel/helper-plugin-utils", "npm:7.13.0"],\ - ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["istanbul-lib-instrument", "npm:4.0.3"],\ - ["test-exclude", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-jest-hoist", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-6190e6043c.zip/node_modules/babel-plugin-jest-hoist/",\ - "packageDependencies": [\ - ["babel-plugin-jest-hoist", "npm:26.6.2"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@types/babel__core", "npm:7.1.14"],\ - ["@types/babel__traverse", "npm:7.11.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-polyfill-corejs2", [\ - ["npm:0.2.0", {\ - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip/node_modules/babel-plugin-polyfill-corejs2/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs2", "npm:0.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-corejs2-virtual-7dda082ba3/0/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip/node_modules/babel-plugin-polyfill-corejs2/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs2", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"],\ - ["@types/babel__core", null],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-corejs2-virtual-297b566715/0/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip/node_modules/babel-plugin-polyfill-corejs2/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["@babel/compat-data", "npm:7.14.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"],\ - ["@types/babel__core", null],\ - ["semver", "npm:6.3.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-polyfill-corejs3", [\ - ["npm:0.2.0", {\ - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip/node_modules/babel-plugin-polyfill-corejs3/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs3", "npm:0.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-corejs3-virtual-62f42b549a/0/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip/node_modules/babel-plugin-polyfill-corejs3/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs3", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"],\ - ["@types/babel__core", null],\ - ["core-js-compat", "npm:3.12.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-corejs3-virtual-917bf48708/0/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip/node_modules/babel-plugin-polyfill-corejs3/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"],\ - ["@types/babel__core", null],\ - ["core-js-compat", "npm:3.12.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-polyfill-regenerator", [\ - ["npm:0.2.0", {\ - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip/node_modules/babel-plugin-polyfill-regenerator/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-regenerator", "npm:0.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-regenerator-virtual-bc36a82e89/0/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip/node_modules/babel-plugin-polyfill-regenerator/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-regenerator", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-plugin-polyfill-regenerator-virtual-35e7baee27/0/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip/node_modules/babel-plugin-polyfill-regenerator/",\ - "packageDependencies": [\ - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-transform-flow-enums", [\ - ["npm:0.0.2", {\ - "packageLocation": "./.yarn/cache/babel-plugin-transform-flow-enums-npm-0.0.2-dbfa5d78ce-fd52aef544.zip/node_modules/babel-plugin-transform-flow-enums/",\ - "packageDependencies": [\ - ["babel-plugin-transform-flow-enums", "npm:0.0.2"],\ - ["@babel/plugin-syntax-flow", "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-preset-current-node-syntax", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-94561959cb.zip/node_modules/babel-preset-current-node-syntax/",\ - "packageDependencies": [\ - ["babel-preset-current-node-syntax", "npm:1.0.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["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-94561959cb.zip/node_modules/babel-preset-current-node-syntax/",\ - "packageDependencies": [\ - ["babel-preset-current-node-syntax", "virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-syntax-async-generators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4"],\ - ["@babel/plugin-syntax-bigint", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-class-properties", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"],\ - ["@babel/plugin-syntax-import-meta", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/plugin-syntax-json-strings", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"],\ - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"],\ - ["@types/babel__core", "npm:7.1.14"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-preset-jest", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-1d9bef3a7a.zip/node_modules/babel-preset-jest/",\ - "packageDependencies": [\ - ["babel-preset-jest", "npm:26.6.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2", {\ - "packageLocation": "./.yarn/__virtual__/babel-preset-jest-virtual-953f19a93f/0/cache/babel-preset-jest-npm-26.6.2-456ec36f85-1d9bef3a7a.zip/node_modules/babel-preset-jest/",\ - "packageDependencies": [\ - ["babel-preset-jest", "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@types/babel__core", "npm:7.1.14"],\ - ["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"\ - }]\ - ]],\ - ["balanced-match", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip/node_modules/balanced-match/",\ - "packageDependencies": [\ - ["balanced-match", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["base", [\ - ["npm:0.11.2", {\ - "packageLocation": "./.yarn/cache/base-npm-0.11.2-a9bde462d6-33b0c5d570.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.5.1", {\ - "packageLocation": "./.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.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-13a4cde058.zip/node_modules/bcrypt-pbkdf/",\ - "packageDependencies": [\ - ["bcrypt-pbkdf", "npm:1.0.2"],\ - ["tweetnacl", "npm:0.14.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["before-after-hook", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/cache/before-after-hook-npm-2.2.1-0eb703f70c-3a05a63926.zip/node_modules/before-after-hook/",\ - "packageDependencies": [\ - ["before-after-hook", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["benchmark", [\ - ["npm:2.1.4", {\ - "packageLocation": "./.yarn/cache/benchmark-npm-2.1.4-3d024a205e-0f42f865ae.zip/node_modules/benchmark/",\ - "packageDependencies": [\ - ["benchmark", "npm:2.1.4"],\ - ["lodash", "npm:4.17.21"],\ - ["platform", "npm:1.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["binary-extensions", [\ - ["npm:1.13.1", {\ - "packageLocation": "./.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-ad7747f33c.zip/node_modules/binary-extensions/",\ - "packageDependencies": [\ - ["binary-extensions", "npm:1.13.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip/node_modules/binary-extensions/",\ - "packageDependencies": [\ - ["binary-extensions", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bl", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-b7904e66ed.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.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["boxen", [\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.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.1"],\ - ["string-width", "npm:4.2.2"],\ - ["term-size", "npm:2.2.1"],\ - ["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-faf34a7bb0.zip/node_modules/brace-expansion/",\ - "packageDependencies": [\ - ["brace-expansion", "npm:1.1.11"],\ - ["balanced-match", "npm:1.0.2"],\ - ["concat-map", "npm:0.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["braces", [\ - ["npm:2.3.2", {\ - "packageLocation": "./.yarn/cache/braces-npm-2.3.2-19cadb3384-7c0f0d9625.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.4"],\ - ["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-966b1fb48d.zip/node_modules/braces/",\ - "packageDependencies": [\ - ["braces", "npm:3.0.2"],\ - ["fill-range", "npm:7.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.3", {\ - "packageLocation": "./.yarn/cache/braces-npm-3.0.3-582c14023c-fad11a0d46.zip/node_modules/braces/",\ - "packageDependencies": [\ - ["braces", "npm:3.0.3"],\ - ["fill-range", "npm:7.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["browser-process-hrtime", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-e30f868cdb.zip/node_modules/browser-process-hrtime/",\ - "packageDependencies": [\ - ["browser-process-hrtime", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["browserslist", [\ - ["npm:4.16.6", {\ - "packageLocation": "./.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-aa191e2aca.zip/node_modules/browserslist/",\ - "packageDependencies": [\ - ["browserslist", "npm:4.16.6"],\ - ["caniuse-lite", "npm:1.0.30001228"],\ - ["colorette", "npm:1.2.2"],\ - ["electron-to-chromium", "npm:1.3.728"],\ - ["escalade", "npm:3.1.1"],\ - ["node-releases", "npm:1.1.72"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.23.3", {\ - "packageLocation": "./.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip/node_modules/browserslist/",\ - "packageDependencies": [\ - ["browserslist", "npm:4.23.3"],\ - ["caniuse-lite", "npm:1.0.30001662"],\ - ["electron-to-chromium", "npm:1.5.27"],\ - ["node-releases", "npm:2.0.18"],\ - ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bser", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/bser-npm-2.1.1-cc902055ce-edba1b65ba.zip/node_modules/bser/",\ - "packageDependencies": [\ - ["bser", "npm:2.1.1"],\ - ["node-int64", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["buffer", [\ - ["npm:5.7.1", {\ - "packageLocation": "./.yarn/cache/buffer-npm-5.7.1-513ef8259e-997434d3c6.zip/node_modules/buffer/",\ - "packageDependencies": [\ - ["buffer", "npm:5.7.1"],\ - ["base64-js", "npm:1.5.1"],\ - ["ieee754", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["buffer-from", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip/node_modules/buffer-from/",\ - "packageDependencies": [\ - ["buffer-from", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["builtins", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/builtins-npm-1.0.3-f09d2d57f2-8f756616bd.zip/node_modules/builtins/",\ - "packageDependencies": [\ - ["builtins", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bytes", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/bytes-npm-3.0.0-19be09472d-a2b386dd81.zip/node_modules/bytes/",\ - "packageDependencies": [\ - ["bytes", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cacache", [\ - ["npm:15.0.6", {\ - "packageLocation": "./.yarn/cache/cacache-npm-15.0.6-a8e1454dc8-a0b9c5cd1d.zip/node_modules/cacache/",\ - "packageDependencies": [\ - ["cacache", "npm:15.0.6"],\ - ["@npmcli/move-file", "npm:1.1.2"],\ - ["chownr", "npm:2.0.0"],\ - ["fs-minipass", "npm:2.1.0"],\ - ["glob", "npm:7.1.7"],\ - ["infer-owner", "npm:1.0.4"],\ - ["lru-cache", "npm:6.0.0"],\ - ["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:1.0.4"],\ - ["p-map", "npm:4.0.0"],\ - ["promise-inflight", "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1"],\ - ["rimraf", "npm:3.0.2"],\ - ["ssri", "npm:8.0.1"],\ - ["tar", "npm:6.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-50dd11af5c.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.4", {\ - "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-618a8b3eea.zip/node_modules/cacheable-lookup/",\ - "packageDependencies": [\ - ["cacheable-lookup", "npm:5.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cacheable-request", [\ - ["npm:6.1.0", {\ - "packageLocation": "./.yarn/cache/cacheable-request-npm-6.1.0-684b834873-804f6c377c.zip/node_modules/cacheable-request/",\ - "packageDependencies": [\ - ["cacheable-request", "npm:6.1.0"],\ - ["clone-response", "npm:1.0.2"],\ - ["get-stream", "npm:5.2.0"],\ - ["http-cache-semantics", "npm:4.1.0"],\ - ["keyv", "npm:3.1.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-682a51337a.zip/node_modules/cacheable-request/",\ - "packageDependencies": [\ - ["cacheable-request", "npm:7.0.1"],\ - ["clone-response", "npm:1.0.2"],\ - ["get-stream", "npm:5.2.0"],\ - ["http-cache-semantics", "npm:4.1.0"],\ - ["keyv", "npm:4.0.3"],\ - ["lowercase-keys", "npm:2.0.0"],\ - ["normalize-url", "npm:4.5.0"],\ - ["responselike", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["call-bind", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/call-bind-npm-1.0.2-c957124861-ca787179c1.zip/node_modules/call-bind/",\ - "packageDependencies": [\ - ["call-bind", "npm:1.0.2"],\ - ["function-bind", "npm:1.1.1"],\ - ["get-intrinsic", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["caller-callsite", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-b685e9d126.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-3e12ccd0c7.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-be2f67b247.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-072d17b6ab.zip/node_modules/callsites/",\ - "packageDependencies": [\ - ["callsites", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["camelcase", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/camelcase-npm-2.1.1-2ed296a336-20a3ef08f3.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.3.1", {\ - "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:5.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.2.0", {\ - "packageLocation": "./.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-8335cfd0ec.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:6.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.3.0", {\ - "packageLocation": "./.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-8c96818a90.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["camelcase-keys", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-55e8d787d4.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"\ - }],\ - ["npm:6.2.2", {\ - "packageLocation": "./.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-c1999f5b6d.zip/node_modules/camelcase-keys/",\ - "packageDependencies": [\ - ["camelcase-keys", "npm:6.2.2"],\ - ["camelcase", "npm:5.3.1"],\ - ["map-obj", "npm:4.2.1"],\ - ["quick-lru", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["camelize", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/camelize-npm-1.0.0-5eda108776-ad285ffc90.zip/node_modules/camelize/",\ - "packageDependencies": [\ - ["camelize", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["caniuse-lite", [\ - ["npm:1.0.30001228", {\ - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-f9824f85f7.zip/node_modules/caniuse-lite/",\ - "packageDependencies": [\ - ["caniuse-lite", "npm:1.0.30001228"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.0.30001662", {\ - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001662-4f7a06daf5-275dee3c23.zip/node_modules/caniuse-lite/",\ - "packageDependencies": [\ - ["caniuse-lite", "npm:1.0.30001662"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["capture-exit", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/capture-exit-npm-2.0.0-564874b447-0b9f10daca.zip/node_modules/capture-exit/",\ - "packageDependencies": [\ - ["capture-exit", "npm:2.0.0"],\ - ["rsvp", "npm:4.8.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["caseless", [\ - ["npm:0.12.0", {\ - "packageLocation": "./.yarn/cache/caseless-npm-0.12.0-e83bc5df83-ea1efdf430.zip/node_modules/caseless/",\ - "packageDependencies": [\ - ["caseless", "npm:0.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chalk", [\ - ["npm:2.4.2", {\ - "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-3d1d103433.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-37f90b31fd.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:3.0.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/chalk-npm-4.1.0-c746e252ba-e8d2b9b9ab.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-ae5031f496.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.1"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.2", {\ - "packageLocation": "./.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-cb3f3e5949.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.2"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["char-regex", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-1ec5c2906a.zip/node_modules/char-regex/",\ - "packageDependencies": [\ - ["char-regex", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chardet", [\ - ["npm:0.7.0", {\ - "packageLocation": "./.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b0ec668fba.zip/node_modules/chardet/",\ - "packageDependencies": [\ - ["chardet", "npm:0.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chokidar", [\ - ["npm:3.5.1", {\ - "packageLocation": "./.yarn/cache/chokidar-npm-3.5.1-205217279e-00685f675f.zip/node_modules/chokidar/",\ - "packageDependencies": [\ - ["chokidar", "npm:3.5.1"],\ - ["anymatch", "npm:3.1.2"],\ - ["braces", "npm:3.0.2"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ - ["glob-parent", "npm:5.1.2"],\ - ["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:2.0.0", {\ - "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip/node_modules/chownr/",\ - "packageDependencies": [\ - ["chownr", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chrome-launcher", [\ - ["npm:0.15.2", {\ - "packageLocation": "./.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-6faa189950.zip/node_modules/chrome-launcher/",\ - "packageDependencies": [\ - ["chrome-launcher", "npm:0.15.2"],\ - ["@types/node", "npm:15.3.0"],\ - ["escape-string-regexp", "npm:4.0.0"],\ - ["is-wsl", "npm:2.2.0"],\ - ["lighthouse-logger", "npm:1.4.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ci-info", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/ci-info-npm-2.0.0-78012236a1-3b374666a8.zip/node_modules/ci-info/",\ - "packageDependencies": [\ - ["ci-info", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.9.0", {\ - "packageLocation": "./.yarn/cache/ci-info-npm-3.9.0-646784ca0e-75bc67902b.zip/node_modules/ci-info/",\ - "packageDependencies": [\ - ["ci-info", "npm:3.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cjs-module-lexer", [\ - ["npm:0.6.0", {\ - "packageLocation": "./.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-9105867de7.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-b236d9deb6.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"\ - }]\ - ]],\ - ["clean-stack", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip/node_modules/clean-stack/",\ - "packageDependencies": [\ - ["clean-stack", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-boxes", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/cache/cli-boxes-npm-2.2.1-7125a5ba44-be79f8ec23.zip/node_modules/cli-boxes/",\ - "packageDependencies": [\ - ["cli-boxes", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-cursor", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-2692784c6c.zip/node_modules/cli-cursor/",\ - "packageDependencies": [\ - ["cli-cursor", "npm:3.1.0"],\ - ["restore-cursor", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-spinners", [\ - ["npm:2.6.0", {\ - "packageLocation": "./.yarn/cache/cli-spinners-npm-2.6.0-57d233343c-1079f3c8fc.zip/node_modules/cli-spinners/",\ - "packageDependencies": [\ - ["cli-spinners", "npm:2.6.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/cli-spinners-npm-2.9.2-be9c08efee-a0a863f442.zip/node_modules/cli-spinners/",\ - "packageDependencies": [\ - ["cli-spinners", "npm:2.9.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-width", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-8730848b04.zip/node_modules/cli-width/",\ - "packageDependencies": [\ - ["cli-width", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cliui", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/cliui-npm-6.0.0-488b2414c6-44afbcc29d.zip/node_modules/cliui/",\ - "packageDependencies": [\ - ["cliui", "npm:6.0.0"],\ - ["string-width", "npm:4.2.2"],\ - ["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-db858c49af.zip/node_modules/cliui/",\ - "packageDependencies": [\ - ["cliui", "npm:7.0.4"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["wrap-ansi", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.0.1", {\ - "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-eaa5561aeb.zip/node_modules/cliui/",\ - "packageDependencies": [\ - ["cliui", "npm:8.0.1"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["wrap-ansi", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["clone", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/clone-npm-1.0.4-a610fcbcf9-d06418b733.zip/node_modules/clone/",\ - "packageDependencies": [\ - ["clone", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["clone-deep", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.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-response", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/clone-response-npm-1.0.2-135ae8239d-2d0e61547f.zip/node_modules/clone-response/",\ - "packageDependencies": [\ - ["clone-response", "npm:1.0.2"],\ - ["mimic-response", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["co", [\ - ["npm:4.6.0", {\ - "packageLocation": "./.yarn/cache/co-npm-4.6.0-03f2d1feb6-a5d9f37091.zip/node_modules/co/",\ - "packageDependencies": [\ - ["co", "npm:4.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["code-point-at", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-17d5666611.zip/node_modules/code-point-at/",\ - "packageDependencies": [\ - ["code-point-at", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["collect-v8-coverage", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-85b26945ab.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-15d9658fe6.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-convert", [\ - ["npm:1.9.3", {\ - "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.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-fa00c91b43.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-09c5d3e33d.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-b044585952.zip/node_modules/color-name/",\ - "packageDependencies": [\ - ["color-name", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["colorette", [\ - ["npm:1.2.2", {\ - "packageLocation": "./.yarn/cache/colorette-npm-1.2.2-da75bd0b32-cd8451221e.zip/node_modules/colorette/",\ - "packageDependencies": [\ - ["colorette", "npm:1.2.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-c8d6c8c3ef.zip/node_modules/colorette/",\ - "packageDependencies": [\ - ["colorette", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["combined-stream", [\ - ["npm:1.0.8", {\ - "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-2e969e637d.zip/node_modules/combined-stream/",\ - "packageDependencies": [\ - ["combined-stream", "npm:1.0.8"],\ - ["delayed-stream", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["command-exists", [\ - ["npm:1.2.9", {\ - "packageLocation": "./.yarn/cache/command-exists-npm-1.2.9-cc51a1f78a-46fb3c4d62.zip/node_modules/command-exists/",\ - "packageDependencies": [\ - ["command-exists", "npm:1.2.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["commander", [\ - ["npm:2.20.3", {\ - "packageLocation": "./.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-90c5b68986.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-3b2dc4125f.zip/node_modules/commander/",\ - "packageDependencies": [\ - ["commander", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.5.0", {\ - "packageLocation": "./.yarn/cache/commander-npm-9.5.0-993b3f2434-41c49b3d0f.zip/node_modules/commander/",\ - "packageDependencies": [\ - ["commander", "npm:9.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["commitlint", [\ - ["npm:12.1.4", {\ - "packageLocation": "./.yarn/cache/commitlint-npm-12.1.4-4c404fa1f9-25ec6270ee.zip/node_modules/commitlint/",\ - "packageDependencies": [\ - ["commitlint", "npm:12.1.4"],\ - ["@commitlint/cli", "npm:12.1.4"],\ - ["@commitlint/types", "npm:12.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["commondir", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/commondir-npm-1.0.1-291b790340-4620bc4936.zip/node_modules/commondir/",\ - "packageDependencies": [\ - ["commondir", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["compare-func", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-fb71d70632.zip/node_modules/compare-func/",\ - "packageDependencies": [\ - ["compare-func", "npm:2.0.0"],\ - ["array-ify", "npm:1.0.0"],\ - ["dot-prop", "npm:5.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["component-emitter", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-dfc1ec2e7a.zip/node_modules/component-emitter/",\ - "packageDependencies": [\ - ["component-emitter", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["compressible", [\ - ["npm:2.0.18", {\ - "packageLocation": "./.yarn/cache/compressible-npm-2.0.18-ee5ab04d88-58321a85b3.zip/node_modules/compressible/",\ - "packageDependencies": [\ - ["compressible", "npm:2.0.18"],\ - ["mime-db", "npm:1.53.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["compression", [\ - ["npm:1.7.4", {\ - "packageLocation": "./.yarn/cache/compression-npm-1.7.4-e0cd6afa69-469cd09790.zip/node_modules/compression/",\ - "packageDependencies": [\ - ["compression", "npm:1.7.4"],\ - ["accepts", "npm:1.3.8"],\ - ["bytes", "npm:3.0.0"],\ - ["compressible", "npm:2.0.18"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["on-headers", "npm:1.0.2"],\ - ["safe-buffer", "npm:5.1.2"],\ - ["vary", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["concat-map", [\ - ["npm:0.0.1", {\ - "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-9680699c8e.zip/node_modules/concat-map/",\ - "packageDependencies": [\ - ["concat-map", "npm:0.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["concat-stream", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/concat-stream-npm-2.0.0-8bb2ad5aa0-250e576d06.zip/node_modules/concat-stream/",\ - "packageDependencies": [\ - ["concat-stream", "npm:2.0.0"],\ - ["buffer-from", "npm:1.1.1"],\ - ["inherits", "npm:2.0.4"],\ - ["readable-stream", "npm:3.6.0"],\ - ["typedarray", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["configstore", [\ - ["npm:5.0.1", {\ - "packageLocation": "./.yarn/cache/configstore-npm-5.0.1-739433cdc5-60ef65d493.zip/node_modules/configstore/",\ - "packageDependencies": [\ - ["configstore", "npm:5.0.1"],\ - ["dot-prop", "npm:5.3.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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"\ - }]\ - ]],\ - ["connect", [\ - ["npm:3.7.0", {\ - "packageLocation": "./.yarn/cache/connect-npm-3.7.0-25ccb085cc-f94818b198.zip/node_modules/connect/",\ - "packageDependencies": [\ - ["connect", "npm:3.7.0"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["finalhandler", "npm:1.1.2"],\ - ["parseurl", "npm:1.3.3"],\ - ["utils-merge", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["console-control-strings", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-27b5fa302b.zip/node_modules/console-control-strings/",\ - "packageDependencies": [\ - ["console-control-strings", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog", [\ - ["npm:3.1.24", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-npm-3.1.24-11de891016-e0b4d2c3c2.zip/node_modules/conventional-changelog/",\ - "packageDependencies": [\ - ["conventional-changelog", "npm:3.1.24"],\ - ["conventional-changelog-angular", "npm:5.0.12"],\ - ["conventional-changelog-atom", "npm:2.0.8"],\ - ["conventional-changelog-codemirror", "npm:2.0.8"],\ - ["conventional-changelog-conventionalcommits", "npm:4.6.0"],\ - ["conventional-changelog-core", "npm:4.2.2"],\ - ["conventional-changelog-ember", "npm:2.0.9"],\ - ["conventional-changelog-eslint", "npm:3.0.9"],\ - ["conventional-changelog-express", "npm:2.0.6"],\ - ["conventional-changelog-jquery", "npm:3.0.11"],\ - ["conventional-changelog-jshint", "npm:2.0.9"],\ - ["conventional-changelog-preset-loader", "npm:2.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-angular", [\ - ["npm:5.0.12", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-angular-npm-5.0.12-0dd88eb3f8-adacd1132d.zip/node_modules/conventional-changelog-angular/",\ - "packageDependencies": [\ - ["conventional-changelog-angular", "npm:5.0.12"],\ - ["compare-func", "npm:2.0.0"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-atom", [\ - ["npm:2.0.8", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-atom-npm-2.0.8-ab61571c15-53ae65ef33.zip/node_modules/conventional-changelog-atom/",\ - "packageDependencies": [\ - ["conventional-changelog-atom", "npm:2.0.8"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-codemirror", [\ - ["npm:2.0.8", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-codemirror-npm-2.0.8-342d72f6a3-45183dcb16.zip/node_modules/conventional-changelog-codemirror/",\ - "packageDependencies": [\ - ["conventional-changelog-codemirror", "npm:2.0.8"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-conventionalcommits", [\ - ["npm:4.6.0", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-conventionalcommits-npm-4.6.0-d399b251bd-e8b089306b.zip/node_modules/conventional-changelog-conventionalcommits/",\ - "packageDependencies": [\ - ["conventional-changelog-conventionalcommits", "npm:4.6.0"],\ - ["compare-func", "npm:2.0.0"],\ - ["lodash", "npm:4.17.21"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-core", [\ - ["npm:4.2.2", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-core-npm-4.2.2-2e3e4e3239-a34e50d352.zip/node_modules/conventional-changelog-core/",\ - "packageDependencies": [\ - ["conventional-changelog-core", "npm:4.2.2"],\ - ["add-stream", "npm:1.0.0"],\ - ["conventional-changelog-writer", "npm:4.1.0"],\ - ["conventional-commits-parser", "npm:3.2.1"],\ - ["dateformat", "npm:3.0.3"],\ - ["get-pkg-repo", "npm:1.4.0"],\ - ["git-raw-commits", "npm:2.0.10"],\ - ["git-remote-origin-url", "npm:2.0.0"],\ - ["git-semver-tags", "npm:4.1.1"],\ - ["lodash", "npm:4.17.21"],\ - ["normalize-package-data", "npm:3.0.2"],\ - ["q", "npm:1.5.1"],\ - ["read-pkg", "npm:3.0.0"],\ - ["read-pkg-up", "npm:3.0.0"],\ - ["shelljs", "npm:0.8.4"],\ - ["through2", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-ember", [\ - ["npm:2.0.9", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-ember-npm-2.0.9-2276834930-87faf42230.zip/node_modules/conventional-changelog-ember/",\ - "packageDependencies": [\ - ["conventional-changelog-ember", "npm:2.0.9"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-eslint", [\ - ["npm:3.0.9", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-eslint-npm-3.0.9-62c523a901-f12f82adae.zip/node_modules/conventional-changelog-eslint/",\ - "packageDependencies": [\ - ["conventional-changelog-eslint", "npm:3.0.9"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-express", [\ - ["npm:2.0.6", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-express-npm-2.0.6-8a37ff0369-08db048159.zip/node_modules/conventional-changelog-express/",\ - "packageDependencies": [\ - ["conventional-changelog-express", "npm:2.0.6"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-jquery", [\ - ["npm:3.0.11", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-jquery-npm-3.0.11-d4ff10c6e2-18720ee267.zip/node_modules/conventional-changelog-jquery/",\ - "packageDependencies": [\ - ["conventional-changelog-jquery", "npm:3.0.11"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-jshint", [\ - ["npm:2.0.9", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-jshint-npm-2.0.9-ef6b791bee-42e16d0e41.zip/node_modules/conventional-changelog-jshint/",\ - "packageDependencies": [\ - ["conventional-changelog-jshint", "npm:2.0.9"],\ - ["compare-func", "npm:2.0.0"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-preset-loader", [\ - ["npm:2.3.4", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-preset-loader-npm-2.3.4-a907f2e49a-23a889b7fc.zip/node_modules/conventional-changelog-preset-loader/",\ - "packageDependencies": [\ - ["conventional-changelog-preset-loader", "npm:2.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-changelog-writer", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/conventional-changelog-writer-npm-4.1.0-a660c822b9-15b947c966.zip/node_modules/conventional-changelog-writer/",\ - "packageDependencies": [\ - ["conventional-changelog-writer", "npm:4.1.0"],\ - ["compare-func", "npm:2.0.0"],\ - ["conventional-commits-filter", "npm:2.0.7"],\ - ["dateformat", "npm:3.0.3"],\ - ["handlebars", "npm:4.7.7"],\ - ["json-stringify-safe", "npm:5.0.1"],\ - ["lodash", "npm:4.17.21"],\ - ["meow", "npm:8.1.2"],\ - ["semver", "npm:6.3.0"],\ - ["split", "npm:1.0.1"],\ - ["through2", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-commits-filter", [\ - ["npm:2.0.7", {\ - "packageLocation": "./.yarn/cache/conventional-commits-filter-npm-2.0.7-8762ee3bfa-c7e25df941.zip/node_modules/conventional-commits-filter/",\ - "packageDependencies": [\ - ["conventional-commits-filter", "npm:2.0.7"],\ - ["lodash.ismatch", "npm:4.4.0"],\ - ["modify-values", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-commits-parser", [\ - ["npm:3.2.1", {\ - "packageLocation": "./.yarn/cache/conventional-commits-parser-npm-3.2.1-129ed8dab0-6f37835fac.zip/node_modules/conventional-commits-parser/",\ - "packageDependencies": [\ - ["conventional-commits-parser", "npm:3.2.1"],\ - ["JSONStream", "npm:1.3.5"],\ - ["is-text-path", "npm:1.0.1"],\ - ["lodash", "npm:4.17.21"],\ - ["meow", "npm:8.1.2"],\ - ["split2", "npm:3.2.2"],\ - ["through2", "npm:4.0.2"],\ - ["trim-off-newlines", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["conventional-recommended-bump", [\ - ["npm:6.1.0", {\ - "packageLocation": "./.yarn/cache/conventional-recommended-bump-npm-6.1.0-18a6db0ce9-5561a4163e.zip/node_modules/conventional-recommended-bump/",\ - "packageDependencies": [\ - ["conventional-recommended-bump", "npm:6.1.0"],\ - ["concat-stream", "npm:2.0.0"],\ - ["conventional-changelog-preset-loader", "npm:2.3.4"],\ - ["conventional-commits-filter", "npm:2.0.7"],\ - ["conventional-commits-parser", "npm:3.2.1"],\ - ["git-raw-commits", "npm:2.0.10"],\ - ["git-semver-tags", "npm:4.1.1"],\ - ["meow", "npm:8.1.2"],\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["convert-source-map", [\ - ["npm:1.7.0", {\ - "packageLocation": "./.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-0d0dd324ad.zip/node_modules/convert-source-map/",\ - "packageDependencies": [\ - ["convert-source-map", "npm:1.7.0"],\ - ["safe-buffer", "npm:5.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-c987be3ec0.zip/node_modules/convert-source-map/",\ - "packageDependencies": [\ - ["convert-source-map", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["copy-descriptor", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-edf4651bce.zip/node_modules/copy-descriptor/",\ - "packageDependencies": [\ - ["copy-descriptor", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["core", [\ - ["workspace:.", {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["core", "workspace:."],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"],\ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"],\ - ["@babel/runtime", "npm:7.14.0"],\ - ["@commitlint/cli", "npm:12.1.4"],\ - ["@commitlint/config-conventional", "npm:12.1.4"],\ - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"],\ - ["@react-native-community/eslint-plugin", "npm:1.1.0"],\ - ["@tsconfig/react-native", "npm:1.0.3"],\ - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["commitlint", "npm:12.1.4"],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"],\ - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"],\ - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"],\ - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"],\ - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"],\ - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"],\ - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"],\ - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"],\ - ["husky", "npm:6.0.0"],\ - ["jest", "npm:26.6.3"],\ - ["prettier", "npm:2.3.0"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["core-js", [\ - ["npm:3.12.1", {\ - "packageLocation": "./.yarn/unplugged/core-js-npm-3.12.1-6d1063bc86/node_modules/core-js/",\ - "packageDependencies": [\ - ["core-js", "npm:3.12.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["core-js-compat", [\ - ["npm:3.12.1", {\ - "packageLocation": "./.yarn/cache/core-js-compat-npm-3.12.1-b22ed3c2b0-1687739422.zip/node_modules/core-js-compat/",\ - "packageDependencies": [\ - ["core-js-compat", "npm:3.12.1"],\ - ["browserslist", "npm:4.16.6"],\ - ["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-d0f7587346.zip/node_modules/core-util-is/",\ - "packageDependencies": [\ - ["core-util-is", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cosmiconfig", [\ - ["npm:5.2.1", {\ - "packageLocation": "./.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-1d617668e1.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.1"],\ - ["parse-json", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.0.0", {\ - "packageLocation": "./.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-bdfcee5ef4.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.2.0"],\ - ["path-type", "npm:4.0.0"],\ - ["yaml", "npm:1.10.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cross-spawn", [\ - ["npm:6.0.5", {\ - "packageLocation": "./.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-f07e643b48.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-e1a13869d2.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"\ - }]\ - ]],\ - ["crypto-random-string", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-0283879f55.zip/node_modules/crypto-random-string/",\ - "packageDependencies": [\ - ["crypto-random-string", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["css-color-keywords", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip/node_modules/css-color-keywords/",\ - "packageDependencies": [\ - ["css-color-keywords", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["css-to-react-native", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-57f2df6665.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"\ - }]\ - ]],\ - ["cssom", [\ - ["npm:0.3.8", {\ - "packageLocation": "./.yarn/cache/cssom-npm-0.3.8-a9291d36ff-49eacc8807.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-6302c5f9b3.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-46f7f05a15.zip/node_modules/cssstyle/",\ - "packageDependencies": [\ - ["cssstyle", "npm:2.3.0"],\ - ["cssom", "npm:0.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["csstype", [\ - ["npm:3.0.8", {\ - "packageLocation": "./.yarn/cache/csstype-npm-3.0.8-99cf1f37ff-498e58edf4.zip/node_modules/csstype/",\ - "packageDependencies": [\ - ["csstype", "npm:3.0.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.9", {\ - "packageLocation": "./.yarn/cache/csstype-npm-3.0.9-0801c4a6d7-ffa22664f3.zip/node_modules/csstype/",\ - "packageDependencies": [\ - ["csstype", "npm:3.0.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["currently-unhandled", [\ - ["npm:0.4.1", {\ - "packageLocation": "./.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-53fb803e58.zip/node_modules/currently-unhandled/",\ - "packageDependencies": [\ - ["currently-unhandled", "npm:0.4.1"],\ - ["array-find-index", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dargs", [\ - ["npm:7.0.0", {\ - "packageLocation": "./.yarn/cache/dargs-npm-7.0.0-62701e0c7a-b8f1e3cba5.zip/node_modules/dargs/",\ - "packageDependencies": [\ - ["dargs", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dashdash", [\ - ["npm:1.14.1", {\ - "packageLocation": "./.yarn/cache/dashdash-npm-1.14.1-be8f10a286-137b287fa0.zip/node_modules/dashdash/",\ - "packageDependencies": [\ - ["dashdash", "npm:1.14.1"],\ - ["assert-plus", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["data-urls", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip/node_modules/data-urls/",\ - "packageDependencies": [\ - ["data-urls", "npm:2.0.0"],\ - ["abab", "npm:2.0.5"],\ - ["whatwg-mimetype", "npm:2.3.0"],\ - ["whatwg-url", "npm:8.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dateformat", [\ - ["npm:3.0.3", {\ - "packageLocation": "./.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-0504baf50c.zip/node_modules/dateformat/",\ - "packageDependencies": [\ - ["dateformat", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dayjs", [\ - ["npm:1.11.13", {\ - "packageLocation": "./.yarn/cache/dayjs-npm-1.11.13-d478bb9479-7374d63ab1.zip/node_modules/dayjs/",\ - "packageDependencies": [\ - ["dayjs", "npm:1.11.13"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["debug", [\ - ["npm:2.6.9", {\ - "packageLocation": "./.yarn/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "npm:2.6.9"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/debug-npm-4.2.0-9392baba7e-4877714f15.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-6a2980374e.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "npm:4.3.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:4.3.7", {\ - "packageLocation": "./.yarn/cache/debug-npm-4.3.7-385645adf9-71168908b9.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "npm:4.3.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-0a02903db3/0/cache/debug-npm-4.3.7-385645adf9-71168908b9.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.1.3"],\ - ["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-e07005f2b4.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.0.0"],\ - ["supports-color", null]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-8ddc51505b/0/cache/debug-npm-4.3.2-f0148b6afe-6a2980374e.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.1.2"],\ - ["supports-color", null]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:dd4968a530aeb52a93bdf9de31729205a7fb08629eece53844c2f951b7d41734349af90e5f417da407108da8d1c0d5d5fa144a26780022d5207bde4adac837d1#npm:4.2.0", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-fa0ad5be59/0/cache/debug-npm-4.2.0-9392baba7e-4877714f15.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:dd4968a530aeb52a93bdf9de31729205a7fb08629eece53844c2f951b7d41734349af90e5f417da407108da8d1c0d5d5fa144a26780022d5207bde4adac837d1#npm:4.2.0"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.1.2"],\ - ["supports-color", null]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["decamelize", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip/node_modules/decamelize/",\ - "packageDependencies": [\ - ["decamelize", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["decamelize-keys", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/decamelize-keys-npm-1.1.0-75168ffadd-968813219e.zip/node_modules/decamelize-keys/",\ - "packageDependencies": [\ - ["decamelize-keys", "npm:1.1.0"],\ - ["decamelize", "npm:1.2.0"],\ - ["map-obj", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["decimal.js", [\ - ["npm:10.2.1", {\ - "packageLocation": "./.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-2931d044a0.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-0686aa1f56.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-952552ac3b.zip/node_modules/decompress-response/",\ - "packageDependencies": [\ - ["decompress-response", "npm:3.3.0"],\ - ["mimic-response", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip/node_modules/decompress-response/",\ - "packageDependencies": [\ - ["decompress-response", "npm:6.0.0"],\ - ["mimic-response", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dedent", [\ - ["npm:0.7.0", {\ - "packageLocation": "./.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip/node_modules/dedent/",\ - "packageDependencies": [\ - ["dedent", "npm:0.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["deep-extend", [\ - ["npm:0.6.0", {\ - "packageLocation": "./.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.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-dee1094e98.zip/node_modules/deep-is/",\ - "packageDependencies": [\ - ["deep-is", "npm:0.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["deepmerge", [\ - ["npm:4.2.2", {\ - "packageLocation": "./.yarn/cache/deepmerge-npm-4.2.2-112165ced2-0e58ed14f5.zip/node_modules/deepmerge/",\ - "packageDependencies": [\ - ["deepmerge", "npm:4.2.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.3.1", {\ - "packageLocation": "./.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-058d9e1b0f.zip/node_modules/deepmerge/",\ - "packageDependencies": [\ - ["deepmerge", "npm:4.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["defaults", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/defaults-npm-1.0.3-e829107b9e-96e2112da6.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-9491b301dc.zip/node_modules/defer-to-connect/",\ - "packageDependencies": [\ - ["defer-to-connect", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-8a9b50d2f2.zip/node_modules/defer-to-connect/",\ - "packageDependencies": [\ - ["defer-to-connect", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["define-properties", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-33125cafaf.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-85af107072.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-5fbed11dac.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-3217ed53fc.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"\ - }]\ - ]],\ - ["del", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/del-npm-6.0.0-fb1f14b406-5742891627.zip/node_modules/del/",\ - "packageDependencies": [\ - ["del", "npm:6.0.0"],\ - ["globby", "npm:11.0.3"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["is-glob", "npm:4.0.1"],\ - ["is-path-cwd", "npm:2.2.0"],\ - ["is-path-inside", "npm:3.0.3"],\ - ["p-map", "npm:4.0.0"],\ - ["rimraf", "npm:3.0.2"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["delayed-stream", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.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-a51744d9b5.zip/node_modules/delegates/",\ - "packageDependencies": [\ - ["delegates", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["denodeify", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/denodeify-npm-1.2.1-ea99c72a1c-f5371a9305.zip/node_modules/denodeify/",\ - "packageDependencies": [\ - ["denodeify", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["depd", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip/node_modules/depd/",\ - "packageDependencies": [\ - ["depd", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip/node_modules/depd/",\ - "packageDependencies": [\ - ["depd", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["deprecated-obj", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/deprecated-obj-npm-2.0.0-a2d0810be4-9ecb158b67.zip/node_modules/deprecated-obj/",\ - "packageDependencies": [\ - ["deprecated-obj", "npm:2.0.0"],\ - ["flat", "npm:5.0.2"],\ - ["lodash", "npm:4.17.21"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["deprecation", [\ - ["npm:2.3.1", {\ - "packageLocation": "./.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-f56a05e182.zip/node_modules/deprecation/",\ - "packageDependencies": [\ - ["deprecation", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["destroy", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip/node_modules/destroy/",\ - "packageDependencies": [\ - ["destroy", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["detect-newline", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip/node_modules/detect-newline/",\ - "packageDependencies": [\ - ["detect-newline", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["diff-sequences", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-3ed8addfc6.zip/node_modules/diff-sequences/",\ - "packageDependencies": [\ - ["diff-sequences", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dir-glob", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip/node_modules/dir-glob/",\ - "packageDependencies": [\ - ["dir-glob", "npm:3.0.1"],\ - ["path-type", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["doctrine", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-555684f77e.zip/node_modules/doctrine/",\ - "packageDependencies": [\ - ["doctrine", "npm:2.1.0"],\ - ["esutils", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-b4b28f1df5.zip/node_modules/doctrine/",\ - "packageDependencies": [\ - ["doctrine", "npm:3.0.0"],\ - ["esutils", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dom-serializer", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.3.1-fcf2b18c0f-b0f3837a74.zip/node_modules/dom-serializer/",\ - "packageDependencies": [\ - ["dom-serializer", "npm:1.3.1"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.0"],\ - ["entities", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.3.2", {\ - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-102ea83664.zip/node_modules/dom-serializer/",\ - "packageDependencies": [\ - ["dom-serializer", "npm:1.3.2"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.0"],\ - ["entities", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["domelementtype", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-24cb386198.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-d638e9cb05.zip/node_modules/domexception/",\ - "packageDependencies": [\ - ["domexception", "npm:2.0.1"],\ - ["webidl-conversions", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["domhandler", [\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/domhandler-npm-4.2.0-e0e096a781-b7f92db6bc.zip/node_modules/domhandler/",\ - "packageDependencies": [\ - ["domhandler", "npm:4.2.0"],\ - ["domelementtype", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.2.2", {\ - "packageLocation": "./.yarn/cache/domhandler-npm-4.2.2-9a6cc9317e-502cb297ba.zip/node_modules/domhandler/",\ - "packageDependencies": [\ - ["domhandler", "npm:4.2.2"],\ - ["domelementtype", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["domutils", [\ - ["npm:2.8.0", {\ - "packageLocation": "./.yarn/cache/domutils-npm-2.8.0-0325139e5c-1f316a03f0.zip/node_modules/domutils/",\ - "packageDependencies": [\ - ["domutils", "npm:2.8.0"],\ - ["dom-serializer", "npm:1.3.1"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dot-case", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/dot-case-npm-3.0.4-09675b5521-a65e351941.zip/node_modules/dot-case/",\ - "packageDependencies": [\ - ["dot-case", "npm:3.0.4"],\ - ["no-case", "npm:3.0.4"],\ - ["tslib", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dot-prop", [\ - ["npm:5.3.0", {\ - "packageLocation": "./.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-33b2561617.zip/node_modules/dot-prop/",\ - "packageDependencies": [\ - ["dot-prop", "npm:5.3.0"],\ - ["is-obj", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["duplexer3", [\ - ["npm:0.1.4", {\ - "packageLocation": "./.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2f8e9d93d0.zip/node_modules/duplexer3/",\ - "packageDependencies": [\ - ["duplexer3", "npm:0.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ecc-jsbn", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-d43591f239.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"\ - }]\ - ]],\ - ["ee-first", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip/node_modules/ee-first/",\ - "packageDependencies": [\ - ["ee-first", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ejs", [\ - ["npm:3.1.6", {\ - "packageLocation": "./.yarn/cache/ejs-npm-3.1.6-03db39fd15-f3882b5765.zip/node_modules/ejs/",\ - "packageDependencies": [\ - ["ejs", "npm:3.1.6"],\ - ["jake", "npm:10.8.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["electron-to-chromium", [\ - ["npm:1.3.728", {\ - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.728-19bf8572c2-d91371911f.zip/node_modules/electron-to-chromium/",\ - "packageDependencies": [\ - ["electron-to-chromium", "npm:1.3.728"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.5.27", {\ - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.5.27-03ccf9f126-aaafe122c0.zip/node_modules/electron-to-chromium/",\ - "packageDependencies": [\ - ["electron-to-chromium", "npm:1.5.27"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["emittery", [\ - ["npm:0.7.2", {\ - "packageLocation": "./.yarn/cache/emittery-npm-0.7.2-4a6f20265e-8bbc1b2b34.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-9159b2228b.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-c72d67a682.zip/node_modules/emoji-regex/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["encodeurl", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip/node_modules/encodeurl/",\ - "packageDependencies": [\ - ["encodeurl", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/encodeurl-npm-2.0.0-3660bcc92a-abf5cd51b7.zip/node_modules/encodeurl/",\ - "packageDependencies": [\ - ["encodeurl", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["encoding", [\ - ["npm:0.1.13", {\ - "packageLocation": "./.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip/node_modules/encoding/",\ - "packageDependencies": [\ - ["encoding", "npm:0.1.13"],\ - ["iconv-lite", "npm:0.6.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["end-of-stream", [\ - ["npm:1.4.4", {\ - "packageLocation": "./.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip/node_modules/end-of-stream/",\ - "packageDependencies": [\ - ["end-of-stream", "npm:1.4.4"],\ - ["once", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["enquirer", [\ - ["npm:2.3.6", {\ - "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-7899175762-751d14f037.zip/node_modules/enquirer/",\ - "packageDependencies": [\ - ["enquirer", "npm:2.3.6"],\ - ["ansi-colors", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["entities", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-2c765221ee.zip/node_modules/entities/",\ - "packageDependencies": [\ - ["entities", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/entities-npm-3.0.1-21eeb201ba-3706e0292e.zip/node_modules/entities/",\ - "packageDependencies": [\ - ["entities", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["env-paths", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip/node_modules/env-paths/",\ - "packageDependencies": [\ - ["env-paths", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["envinfo", [\ - ["npm:7.14.0", {\ - "packageLocation": "./.yarn/cache/envinfo-npm-7.14.0-624fecc5a5-0d9d711f2b.zip/node_modules/envinfo/",\ - "packageDependencies": [\ - ["envinfo", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["err-code", [\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-1d20d825cd.zip/node_modules/err-code/",\ - "packageDependencies": [\ - ["err-code", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["error-ex", [\ - ["npm:1.3.2", {\ - "packageLocation": "./.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-d547740aa2.zip/node_modules/error-ex/",\ - "packageDependencies": [\ - ["error-ex", "npm:1.3.2"],\ - ["is-arrayish", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["error-stack-parser", [\ - ["npm:2.1.4", {\ - "packageLocation": "./.yarn/cache/error-stack-parser-npm-2.1.4-5b9f7fc0c2-23db33135b.zip/node_modules/error-stack-parser/",\ - "packageDependencies": [\ - ["error-stack-parser", "npm:2.1.4"],\ - ["stackframe", "npm:1.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["errorhandler", [\ - ["npm:1.5.1", {\ - "packageLocation": "./.yarn/cache/errorhandler-npm-1.5.1-bbeb9f9d1b-73b7abb08f.zip/node_modules/errorhandler/",\ - "packageDependencies": [\ - ["errorhandler", "npm:1.5.1"],\ - ["accepts", "npm:1.3.8"],\ - ["escape-html", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-abstract", [\ - ["npm:1.18.0", {\ - "packageLocation": "./.yarn/cache/es-abstract-npm-1.18.0-ac2faa8a98-98b2dd3778.zip/node_modules/es-abstract/",\ - "packageDependencies": [\ - ["es-abstract", "npm:1.18.0"],\ - ["call-bind", "npm:1.0.2"],\ - ["es-to-primitive", "npm:1.2.1"],\ - ["function-bind", "npm:1.1.1"],\ - ["get-intrinsic", "npm:1.1.1"],\ - ["has", "npm:1.0.3"],\ - ["has-symbols", "npm:1.0.2"],\ - ["is-callable", "npm:1.2.3"],\ - ["is-negative-zero", "npm:2.0.1"],\ - ["is-regex", "npm:1.1.3"],\ - ["is-string", "npm:1.0.6"],\ - ["object-inspect", "npm:1.10.3"],\ - ["object-keys", "npm:1.1.1"],\ - ["object.assign", "npm:4.1.2"],\ - ["string.prototype.trimend", "npm:1.0.4"],\ - ["string.prototype.trimstart", "npm:1.0.4"],\ - ["unbox-primitive", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-to-primitive", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-74aeeefe27.zip/node_modules/es-to-primitive/",\ - "packageDependencies": [\ - ["es-to-primitive", "npm:1.2.1"],\ - ["is-callable", "npm:1.2.3"],\ - ["is-date-object", "npm:1.0.4"],\ - ["is-symbol", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escalade", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-afa618e733.zip/node_modules/escalade/",\ - "packageDependencies": [\ - ["escalade", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.2.0", {\ - "packageLocation": "./.yarn/cache/escalade-npm-3.2.0-19b50dd48f-9d7169e396.zip/node_modules/escalade/",\ - "packageDependencies": [\ - ["escalade", "npm:3.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escape-goat", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-ce05c70c20.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-6213ca9ae0.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-6092fda75c.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-9f8a2d5743.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-98b48897d9.zip/node_modules/escape-string-regexp/",\ - "packageDependencies": [\ - ["escape-string-regexp", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escodegen", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/escodegen-npm-2.0.0-6450b02925-0f7e404b19.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:7.26.0", {\ - "packageLocation": "./.yarn/cache/eslint-npm-7.26.0-0bcc96e5d3-9a4d3ad7ce.zip/node_modules/eslint/",\ - "packageDependencies": [\ - ["eslint", "npm:7.26.0"],\ - ["@babel/code-frame", "npm:7.12.11"],\ - ["@eslint/eslintrc", "npm:0.4.1"],\ - ["ajv", "npm:6.12.6"],\ - ["chalk", "npm:4.1.1"],\ - ["cross-spawn", "npm:7.0.3"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["doctrine", "npm:3.0.0"],\ - ["enquirer", "npm:2.3.6"],\ - ["eslint-scope", "npm:5.1.1"],\ - ["eslint-utils", "npm:2.1.0"],\ - ["eslint-visitor-keys", "npm:2.1.0"],\ - ["espree", "npm:7.3.1"],\ - ["esquery", "npm:1.4.0"],\ - ["esutils", "npm:2.0.3"],\ - ["file-entry-cache", "npm:6.0.1"],\ - ["functional-red-black-tree", "npm:1.0.1"],\ - ["glob-parent", "npm:5.1.2"],\ - ["globals", "npm:13.8.0"],\ - ["ignore", "npm:4.0.6"],\ - ["import-fresh", "npm:3.3.0"],\ - ["imurmurhash", "npm:0.1.4"],\ - ["is-glob", "npm:4.0.1"],\ - ["js-yaml", "npm:3.14.1"],\ - ["json-stable-stringify-without-jsonify", "npm:1.0.1"],\ - ["levn", "npm:0.4.1"],\ - ["lodash", "npm:4.17.21"],\ - ["minimatch", "npm:3.0.4"],\ - ["natural-compare", "npm:1.4.0"],\ - ["optionator", "npm:0.9.1"],\ - ["progress", "npm:2.0.3"],\ - ["regexpp", "npm:3.1.0"],\ - ["semver", "npm:7.3.5"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["strip-json-comments", "npm:3.1.1"],\ - ["table", "npm:6.7.1"],\ - ["text-table", "npm:0.2.0"],\ - ["v8-compile-cache", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-config-prettier", [\ - ["npm:6.15.0", {\ - "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-8648ec4259.zip/node_modules/eslint-config-prettier/",\ - "packageDependencies": [\ - ["eslint-config-prettier", "npm:6.15.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:8.3.0", {\ - "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-3f4c7e0731.zip/node_modules/eslint-config-prettier/",\ - "packageDependencies": [\ - ["eslint-config-prettier", "npm:8.3.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-config-prettier-virtual-1d1df074ac/0/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-3f4c7e0731.zip/node_modules/eslint-config-prettier/",\ - "packageDependencies": [\ - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-config-prettier-virtual-4dfa352130/0/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-8648ec4259.zip/node_modules/eslint-config-prettier/",\ - "packageDependencies": [\ - ["eslint-config-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"],\ - ["get-stdin", "npm:6.0.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-compat", [\ - ["npm:3.9.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-350867802b.zip/node_modules/eslint-plugin-compat/",\ - "packageDependencies": [\ - ["eslint-plugin-compat", "npm:3.9.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-compat-virtual-bc4a87f962/0/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-350867802b.zip/node_modules/eslint-plugin-compat/",\ - "packageDependencies": [\ - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"],\ - ["@mdn/browser-compat-data", "npm:2.0.7"],\ - ["@types/eslint", null],\ - ["ast-metadata-inferer", "npm:0.4.0"],\ - ["browserslist", "npm:4.16.6"],\ - ["caniuse-lite", "npm:1.0.30001228"],\ - ["core-js", "npm:3.12.1"],\ - ["eslint", "npm:7.26.0"],\ - ["find-up", "npm:4.1.0"],\ - ["lodash.memoize", "npm:4.1.2"],\ - ["semver", "npm:7.3.2"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-eslint-comments", [\ - ["npm:3.2.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-4aa0d31a78.zip/node_modules/eslint-plugin-eslint-comments/",\ - "packageDependencies": [\ - ["eslint-plugin-eslint-comments", "npm:3.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-eslint-comments-virtual-7a2370aad3/0/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-4aa0d31a78.zip/node_modules/eslint-plugin-eslint-comments/",\ - "packageDependencies": [\ - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"],\ - ["@types/eslint", null],\ - ["escape-string-regexp", "npm:1.0.5"],\ - ["eslint", "npm:7.26.0"],\ - ["ignore", "npm:5.1.8"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-flowtype", [\ - ["npm:2.50.3", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-cddcbd1884.zip/node_modules/eslint-plugin-flowtype/",\ - "packageDependencies": [\ - ["eslint-plugin-flowtype", "npm:2.50.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-flowtype-virtual-3b6dc06a48/0/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-cddcbd1884.zip/node_modules/eslint-plugin-flowtype/",\ - "packageDependencies": [\ - ["eslint-plugin-flowtype", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"],\ - ["lodash", "npm:4.17.21"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-jest", [\ - ["npm:22.4.1", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-b3594574d7.zip/node_modules/eslint-plugin-jest/",\ - "packageDependencies": [\ - ["eslint-plugin-jest", "npm:22.4.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:24.3.6", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-418141c3b8.zip/node_modules/eslint-plugin-jest/",\ - "packageDependencies": [\ - ["eslint-plugin-jest", "npm:24.3.6"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-jest-virtual-684204b55b/0/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-418141c3b8.zip/node_modules/eslint-plugin-jest/",\ - "packageDependencies": [\ - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"],\ - ["@types/eslint", null],\ - ["@types/typescript-eslint__eslint-plugin", null],\ - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"],\ - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"],\ - ["eslint", "npm:7.26.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/typescript-eslint__eslint-plugin",\ - "@typescript-eslint/eslint-plugin",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-jest-virtual-3f75bba53e/0/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-b3594574d7.zip/node_modules/eslint-plugin-jest/",\ - "packageDependencies": [\ - ["eslint-plugin-jest", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-prettier", [\ - ["npm:3.1.2", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-b2816b97d8.zip/node_modules/eslint-plugin-prettier/",\ - "packageDependencies": [\ - ["eslint-plugin-prettier", "npm:3.1.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:3.4.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-9ad30325f5.zip/node_modules/eslint-plugin-prettier/",\ - "packageDependencies": [\ - ["eslint-plugin-prettier", "npm:3.4.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-prettier-virtual-aabdf87e47/0/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-9ad30325f5.zip/node_modules/eslint-plugin-prettier/",\ - "packageDependencies": [\ - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"],\ - ["@types/eslint", null],\ - ["@types/eslint-config-prettier", null],\ - ["@types/prettier", null],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"],\ - ["prettier", "npm:2.3.0"],\ - ["prettier-linter-helpers", "npm:1.0.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint-config-prettier",\ - "@types/eslint",\ - "@types/prettier",\ - "eslint-config-prettier",\ - "eslint",\ - "prettier"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-prettier-virtual-d779e39a08/0/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-b2816b97d8.zip/node_modules/eslint-plugin-prettier/",\ - "packageDependencies": [\ - ["eslint-plugin-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2"],\ - ["@types/eslint", null],\ - ["@types/prettier", null],\ - ["eslint", "npm:7.26.0"],\ - ["prettier", "npm:2.3.0"],\ - ["prettier-linter-helpers", "npm:1.0.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "@types/prettier",\ - "eslint",\ - "prettier"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-react", [\ - ["npm:7.23.2", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-812b310009.zip/node_modules/eslint-plugin-react/",\ - "packageDependencies": [\ - ["eslint-plugin-react", "npm:7.23.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-virtual-f55f3e4928/0/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-812b310009.zip/node_modules/eslint-plugin-react/",\ - "packageDependencies": [\ - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"],\ - ["@types/eslint", null],\ - ["array-includes", "npm:3.1.3"],\ - ["array.prototype.flatmap", "npm:1.2.4"],\ - ["doctrine", "npm:2.1.0"],\ - ["eslint", "npm:7.26.0"],\ - ["has", "npm:1.0.3"],\ - ["jsx-ast-utils", "npm:3.2.0"],\ - ["minimatch", "npm:3.0.4"],\ - ["object.entries", "npm:1.1.3"],\ - ["object.fromentries", "npm:2.0.4"],\ - ["object.values", "npm:1.1.3"],\ - ["prop-types", "npm:15.7.2"],\ - ["resolve", "patch:resolve@npm%3A2.0.0-next.3#optional!builtin::version=2.0.0-next.3&hash=c3c19d"],\ - ["string.prototype.matchall", "npm:4.0.4"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-react-hooks", [\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-2cdb3bce0d.zip/node_modules/eslint-plugin-react-hooks/",\ - "packageDependencies": [\ - ["eslint-plugin-react-hooks", "npm:4.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-hooks-virtual-8577ff6e25/0/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-2cdb3bce0d.zip/node_modules/eslint-plugin-react-hooks/",\ - "packageDependencies": [\ - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-react-native", [\ - ["npm:3.10.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-711abbaa86.zip/node_modules/eslint-plugin-react-native/",\ - "packageDependencies": [\ - ["eslint-plugin-react-native", "npm:3.10.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-native-virtual-dcf9298259/0/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-711abbaa86.zip/node_modules/eslint-plugin-react-native/",\ - "packageDependencies": [\ - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@types/eslint", null],\ - ["eslint", "npm:7.26.0"],\ - ["eslint-plugin-react-native-globals", "npm:0.1.2"]\ - ],\ - "packagePeers": [\ - "@types/eslint",\ - "eslint"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-plugin-react-native-globals", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-react-native-globals-npm-0.1.2-1a654c3f21-ab91e8ecbb.zip/node_modules/eslint-plugin-react-native-globals/",\ - "packageDependencies": [\ - ["eslint-plugin-react-native-globals", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-scope", [\ - ["npm:5.1.1", {\ - "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-c541ef384c.zip/node_modules/eslint-scope/",\ - "packageDependencies": [\ - ["eslint-scope", "npm:5.1.1"],\ - ["esrecurse", "npm:4.3.0"],\ - ["estraverse", "npm:4.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eslint-utils", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/eslint-utils-npm-2.1.0-a3a7ebf4fa-a7e43a5154.zip/node_modules/eslint-utils/",\ - "packageDependencies": [\ - ["eslint-utils", "npm:2.1.0"],\ - ["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-595ab230e0.zip/node_modules/eslint-visitor-keys/",\ - "packageDependencies": [\ - ["eslint-visitor-keys", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-db4547eef5.zip/node_modules/eslint-visitor-keys/",\ - "packageDependencies": [\ - ["eslint-visitor-keys", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["espree", [\ - ["npm:7.3.1", {\ - "packageLocation": "./.yarn/cache/espree-npm-7.3.1-8d8ea5d1e3-7cf230d4d7.zip/node_modules/espree/",\ - "packageDependencies": [\ - ["espree", "npm:7.3.1"],\ - ["acorn", "npm:7.4.1"],\ - ["acorn-jsx", "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1"],\ - ["eslint-visitor-keys", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["esprima", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-1084e98778-f1d3c622ad.zip/node_modules/esprima/",\ - "packageDependencies": [\ - ["esprima", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["esquery", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/esquery-npm-1.4.0-f39408b1a7-25b571ec54.zip/node_modules/esquery/",\ - "packageDependencies": [\ - ["esquery", "npm:1.4.0"],\ - ["estraverse", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["esrecurse", [\ - ["npm:4.3.0", {\ - "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-44ffcd89e7.zip/node_modules/esrecurse/",\ - "packageDependencies": [\ - ["esrecurse", "npm:4.3.0"],\ - ["estraverse", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["estraverse", [\ - ["npm:4.3.0", {\ - "packageLocation": "./.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-3f67ad02b6.zip/node_modules/estraverse/",\ - "packageDependencies": [\ - ["estraverse", "npm:4.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "./.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-9740a8fa42.zip/node_modules/estraverse/",\ - "packageDependencies": [\ - ["estraverse", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["esutils", [\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-f865beafd5-b23acd2479.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-571aeb3dbe.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-49ff46c3a7.zip/node_modules/event-target-shim/",\ - "packageDependencies": [\ - ["event-target-shim", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["exec-sh", [\ - ["npm:0.3.6", {\ - "packageLocation": "./.yarn/cache/exec-sh-npm-0.3.6-8a29d03ae2-48abc4a3fc.zip/node_modules/exec-sh/",\ - "packageDependencies": [\ - ["exec-sh", "npm:0.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["execa", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/execa-npm-1.0.0-7028e37029-9b7a0077ba.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-ba7984e015.zip/node_modules/execa/",\ - "packageDependencies": [\ - ["execa", "npm:4.0.3"],\ - ["cross-spawn", "npm:7.0.3"],\ - ["get-stream", "npm:5.2.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.2"],\ - ["signal-exit", "npm:3.0.3"],\ - ["strip-final-newline", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/execa-npm-4.1.0-cc675b4189-ed58e41fe4.zip/node_modules/execa/",\ - "packageDependencies": [\ - ["execa", "npm:4.1.0"],\ - ["cross-spawn", "npm:7.0.3"],\ - ["get-stream", "npm:5.2.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.2"],\ - ["signal-exit", "npm:3.0.3"],\ - ["strip-final-newline", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.1", {\ - "packageLocation": "./.yarn/cache/execa-npm-5.1.1-191347acf5-8ada91f2d7.zip/node_modules/execa/",\ - "packageDependencies": [\ - ["execa", "npm:5.1.1"],\ - ["cross-spawn", "npm:7.0.3"],\ - ["get-stream", "npm:6.0.1"],\ - ["human-signals", "npm:2.1.0"],\ - ["is-stream", "npm:2.0.0"],\ - ["merge-stream", "npm:2.0.0"],\ - ["npm-run-path", "npm:4.0.1"],\ - ["onetime", "npm:5.1.2"],\ - ["signal-exit", "npm:3.0.7"],\ - ["strip-final-newline", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["exit", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/exit-npm-0.1.2-ef3761a67d-387555050c.zip/node_modules/exit/",\ - "packageDependencies": [\ - ["exit", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["expand-brackets", [\ - ["npm:2.1.4", {\ - "packageLocation": "./.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-aa4acc6208.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"\ - }]\ - ]],\ - ["expect", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/expect-npm-26.6.2-256ea90344-fd81bfff9a.zip/node_modules/expect/",\ - "packageDependencies": [\ - ["expect", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["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"\ - }]\ - ]],\ - ["exponential-backoff", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-2d9bbb6473.zip/node_modules/exponential-backoff/",\ - "packageDependencies": [\ - ["exponential-backoff", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["extend", [\ - ["npm:3.0.2", {\ - "packageLocation": "./.yarn/cache/extend-npm-3.0.2-e1ca07ac54-59e89e2dc7.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-8fb58d9d7a.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-a920b0cd58.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:3.1.0", {\ - "packageLocation": "./.yarn/cache/external-editor-npm-3.1.0-878e7807af-776dff1d64.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-6869edd48d.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"\ - }]\ - ]],\ - ["extsprintf", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-26967d6c7e.zip/node_modules/extsprintf/",\ - "packageDependencies": [\ - ["extsprintf", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/extsprintf-npm-1.4.0-2b015bcaab-c1e6cc79d7.zip/node_modules/extsprintf/",\ - "packageDependencies": [\ - ["extsprintf", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-deep-equal", [\ - ["npm:3.1.3", {\ - "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\ - "packageDependencies": [\ - ["fast-deep-equal", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-diff", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-f62419b3d7.zip/node_modules/fast-diff/",\ - "packageDependencies": [\ - ["fast-diff", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-glob", [\ - ["npm:3.2.5", {\ - "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-d417aef0c5.zip/node_modules/fast-glob/",\ - "packageDependencies": [\ - ["fast-glob", "npm:3.2.5"],\ - ["@nodelib/fs.stat", "npm:2.0.4"],\ - ["@nodelib/fs.walk", "npm:1.2.6"],\ - ["glob-parent", "npm:5.1.2"],\ - ["merge2", "npm:1.4.1"],\ - ["micromatch", "npm:4.0.4"],\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.3.2", {\ - "packageLocation": "./.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-222512e931.zip/node_modules/fast-glob/",\ - "packageDependencies": [\ - ["fast-glob", "npm:3.3.2"],\ - ["@nodelib/fs.stat", "npm:2.0.4"],\ - ["@nodelib/fs.walk", "npm:1.2.6"],\ - ["glob-parent", "npm:5.1.2"],\ - ["merge2", "npm:1.4.1"],\ - ["micromatch", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-json-stable-stringify", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-2c20055c1f.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-eb7e220ecf.zip/node_modules/fast-levenshtein/",\ - "packageDependencies": [\ - ["fast-levenshtein", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-xml-parser", [\ - ["npm:4.5.0", {\ - "packageLocation": "./.yarn/cache/fast-xml-parser-npm-4.5.0-353a57f69a-dc9571c10e.zip/node_modules/fast-xml-parser/",\ - "packageDependencies": [\ - ["fast-xml-parser", "npm:4.5.0"],\ - ["strnum", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fastq", [\ - ["npm:1.11.0", {\ - "packageLocation": "./.yarn/cache/fastq-npm-1.11.0-840a129ad5-818f85ae47.zip/node_modules/fastq/",\ - "packageDependencies": [\ - ["fastq", "npm:1.11.0"],\ - ["reusify", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fb-watchman", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-9a03efc7d4.zip/node_modules/fb-watchman/",\ - "packageDependencies": [\ - ["fb-watchman", "npm:2.0.1"],\ - ["bser", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["figures", [\ - ["npm:3.2.0", {\ - "packageLocation": "./.yarn/cache/figures-npm-3.2.0-85d357e955-a3bf94e001.zip/node_modules/figures/",\ - "packageDependencies": [\ - ["figures", "npm:3.2.0"],\ - ["escape-string-regexp", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["file-entry-cache", [\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-099bb9d4ab.zip/node_modules/file-entry-cache/",\ - "packageDependencies": [\ - ["file-entry-cache", "npm:6.0.1"],\ - ["flat-cache", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["filelist", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/filelist-npm-1.0.2-d98495ab20-1de9ff4fa8.zip/node_modules/filelist/",\ - "packageDependencies": [\ - ["filelist", "npm:1.0.2"],\ - ["minimatch", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fill-range", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/fill-range-npm-4.0.0-95a6e45784-68be23b3c4.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-e260f7592f.zip/node_modules/fill-range/",\ - "packageDependencies": [\ - ["fill-range", "npm:7.0.1"],\ - ["to-regex-range", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.1.1", {\ - "packageLocation": "./.yarn/cache/fill-range-npm-7.1.1-bf491486db-a7095cb39e.zip/node_modules/fill-range/",\ - "packageDependencies": [\ - ["fill-range", "npm:7.1.1"],\ - ["to-regex-range", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["filter-obj", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/filter-obj-npm-1.1.0-84128fc26d-9d681939ee.zip/node_modules/filter-obj/",\ - "packageDependencies": [\ - ["filter-obj", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["finalhandler", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-351e99a889.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-60ad475a6d.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"\ - }]\ - ]],\ - ["find-up", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/find-up-npm-1.1.2-22f047c6a9-a2cb9f4c9f.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-43284fe4da.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-38eba3fe7a.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-4c172680e8.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"\ - }],\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip/node_modules/find-up/",\ - "packageDependencies": [\ - ["find-up", "npm:5.0.0"],\ - ["locate-path", "npm:6.0.0"],\ - ["path-exists", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flat", [\ - ["npm:5.0.2", {\ - "packageLocation": "./.yarn/cache/flat-npm-5.0.2-12748102a5-72479e651c.zip/node_modules/flat/",\ - "packageDependencies": [\ - ["flat", "npm:5.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flat-cache", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-9fe5d0cb97.zip/node_modules/flat-cache/",\ - "packageDependencies": [\ - ["flat-cache", "npm:3.0.4"],\ - ["flatted", "npm:3.1.1"],\ - ["rimraf", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flatted", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/flatted-npm-3.1.1-ffd80d62a2-2ce58ed083.zip/node_modules/flatted/",\ - "packageDependencies": [\ - ["flatted", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flow-enums-runtime", [\ - ["npm:0.0.6", {\ - "packageLocation": "./.yarn/cache/flow-enums-runtime-npm-0.0.6-e57295284d-df54ec17f6.zip/node_modules/flow-enums-runtime/",\ - "packageDependencies": [\ - ["flow-enums-runtime", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flow-parser", [\ - ["npm:0.246.0", {\ - "packageLocation": "./.yarn/cache/flow-parser-npm-0.246.0-6e76074a65-db5c6c2684.zip/node_modules/flow-parser/",\ - "packageDependencies": [\ - ["flow-parser", "npm:0.246.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["for-in", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-09f4ae93ce.zip/node_modules/for-in/",\ - "packageDependencies": [\ - ["for-in", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["forever-agent", [\ - ["npm:0.6.1", {\ - "packageLocation": "./.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-c1e1644d5e.zip/node_modules/forever-agent/",\ - "packageDependencies": [\ - ["forever-agent", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["form-data", [\ - ["npm:2.3.3", {\ - "packageLocation": "./.yarn/cache/form-data-npm-2.3.3-c016cc11c0-1b6f3ccbf4.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.30"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/form-data-npm-3.0.0-b01f488350-aea890ae3e.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.30"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fragment-cache", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-1cbbd0b011.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-64c88e489b.zip/node_modules/fresh/",\ - "packageDependencies": [\ - ["fresh", "npm:0.5.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs-extra", [\ - ["npm:8.1.0", {\ - "packageLocation": "./.yarn/cache/fs-extra-npm-8.1.0-197473387f-6fb12449f5.zip/node_modules/fs-extra/",\ - "packageDependencies": [\ - ["fs-extra", "npm:8.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["jsonfile", "npm:4.0.0"],\ - ["universalify", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.1.0", {\ - "packageLocation": "./.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-08600da1b4.zip/node_modules/fs-extra/",\ - "packageDependencies": [\ - ["fs-extra", "npm:9.1.0"],\ - ["at-least-node", "npm:1.0.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["jsonfile", "npm:6.1.0"],\ - ["universalify", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs-minipass", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-03191781e9.zip/node_modules/fs-minipass/",\ - "packageDependencies": [\ - ["fs-minipass", "npm:2.1.0"],\ - ["minipass", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs-readdir-recursive", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/fs-readdir-recursive-npm-1.1.0-258e230a4b-d5e3fd8456.zip/node_modules/fs-readdir-recursive/",\ - "packageDependencies": [\ - ["fs-readdir-recursive", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs.realpath", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-e703107c28.zip/node_modules/fs.realpath/",\ - "packageDependencies": [\ - ["fs.realpath", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fsevents", [\ - ["patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1", {\ - "packageLocation": "./.yarn/unplugged/fsevents-patch-19706e7e35/node_modules/fsevents/",\ - "packageDependencies": [\ - ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ - ["node-gyp", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ - "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ - "packageDependencies": [\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["node-gyp", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["function-bind", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-d83f296803.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-debe73e922.zip/node_modules/functional-red-black-tree/",\ - "packageDependencies": [\ - ["functional-red-black-tree", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["gauge", [\ - ["npm:2.7.4", {\ - "packageLocation": "./.yarn/cache/gauge-npm-2.7.4-2189a73529-0db20a7def.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"\ - }]\ - ]],\ - ["gensync", [\ - ["npm:1.0.0-beta.2", {\ - "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-17d8333460.zip/node_modules/gensync/",\ - "packageDependencies": [\ - ["gensync", "npm:1.0.0-beta.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-caller-file", [\ - ["npm:2.0.5", {\ - "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip/node_modules/get-caller-file/",\ - "packageDependencies": [\ - ["get-caller-file", "npm:2.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-intrinsic", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-7143f5407b.zip/node_modules/get-intrinsic/",\ - "packageDependencies": [\ - ["get-intrinsic", "npm:1.1.1"],\ - ["function-bind", "npm:1.1.1"],\ - ["has", "npm:1.0.3"],\ - ["has-symbols", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-package-type", [\ - ["npm:0.1.0", {\ - "packageLocation": "./.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip/node_modules/get-package-type/",\ - "packageDependencies": [\ - ["get-package-type", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-pkg-repo", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/get-pkg-repo-npm-1.4.0-2e8b78f4cf-c81dd33b33.zip/node_modules/get-pkg-repo/",\ - "packageDependencies": [\ - ["get-pkg-repo", "npm:1.4.0"],\ - ["hosted-git-info", "npm:2.8.9"],\ - ["meow", "npm:3.7.0"],\ - ["normalize-package-data", "npm:2.5.0"],\ - ["parse-github-repo-url", "npm:1.4.1"],\ - ["through2", "npm:2.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-stdin", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-4f73d3fe05.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-593f6fb4ff.zip/node_modules/get-stdin/",\ - "packageDependencies": [\ - ["get-stdin", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-stream", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/get-stream-npm-4.1.0-314d430a5d-12673e8aeb.zip/node_modules/get-stream/",\ - "packageDependencies": [\ - ["get-stream", "npm:4.1.0"],\ - ["pump", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "./.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-13a73148dc.zip/node_modules/get-stream/",\ - "packageDependencies": [\ - ["get-stream", "npm:5.2.0"],\ - ["pump", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/get-stream-npm-6.0.1-83e51a4642-781266d297.zip/node_modules/get-stream/",\ - "packageDependencies": [\ - ["get-stream", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-value", [\ - ["npm:2.0.6", {\ - "packageLocation": "./.yarn/cache/get-value-npm-2.0.6-03cd422e0a-5c3b99cb53.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-ab18d55661.zip/node_modules/getpass/",\ - "packageDependencies": [\ - ["getpass", "npm:0.1.7"],\ - ["assert-plus", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["gh-got", [\ - ["npm:8.1.0", {\ - "packageLocation": "./.yarn/cache/gh-got-npm-8.1.0-7e62a35c76-2eeae560c0.zip/node_modules/gh-got/",\ - "packageDependencies": [\ - ["gh-got", "npm:8.1.0"],\ - ["got", "npm:9.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["git-raw-commits", [\ - ["npm:2.0.10", {\ - "packageLocation": "./.yarn/cache/git-raw-commits-npm-2.0.10-66e3a843dd-090509e423.zip/node_modules/git-raw-commits/",\ - "packageDependencies": [\ - ["git-raw-commits", "npm:2.0.10"],\ - ["dargs", "npm:7.0.0"],\ - ["lodash", "npm:4.17.21"],\ - ["meow", "npm:8.1.2"],\ - ["split2", "npm:3.2.2"],\ - ["through2", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["git-remote-origin-url", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/git-remote-origin-url-npm-2.0.0-319debe0d1-85263a09c0.zip/node_modules/git-remote-origin-url/",\ - "packageDependencies": [\ - ["git-remote-origin-url", "npm:2.0.0"],\ - ["gitconfiglocal", "npm:1.0.0"],\ - ["pify", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["git-semver-tags", [\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/git-semver-tags-npm-4.1.1-93b9747811-ab2ad6c7c8.zip/node_modules/git-semver-tags/",\ - "packageDependencies": [\ - ["git-semver-tags", "npm:4.1.1"],\ - ["meow", "npm:8.1.2"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["git-up", [\ - ["npm:4.0.2", {\ - "packageLocation": "./.yarn/cache/git-up-npm-4.0.2-3cd4003c69-05b1fa309f.zip/node_modules/git-up/",\ - "packageDependencies": [\ - ["git-up", "npm:4.0.2"],\ - ["is-ssh", "npm:1.3.3"],\ - ["parse-url", "npm:5.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["git-url-parse", [\ - ["npm:11.3.0", {\ - "packageLocation": "./.yarn/cache/git-url-parse-npm-11.3.0-12b198debf-1d8df1a49e.zip/node_modules/git-url-parse/",\ - "packageDependencies": [\ - ["git-url-parse", "npm:11.3.0"],\ - ["git-up", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["gitconfiglocal", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/gitconfiglocal-npm-1.0.0-905970379d-e6d2764c15.zip/node_modules/gitconfiglocal/",\ - "packageDependencies": [\ - ["gitconfiglocal", "npm:1.0.0"],\ - ["ini", "npm:1.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["github-username", [\ - ["npm:5.0.1", {\ - "packageLocation": "./.yarn/cache/github-username-npm-5.0.1-83a4b8d1c6-916b9e0eff.zip/node_modules/github-username/",\ - "packageDependencies": [\ - ["github-username", "npm:5.0.1"],\ - ["gh-got", "npm:8.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["glob", [\ - ["npm:7.1.7", {\ - "packageLocation": "./.yarn/cache/glob-npm-7.1.7-5698ad9c48-ff5aab0386.zip/node_modules/glob/",\ - "packageDependencies": [\ - ["glob", "npm:7.1.7"],\ - ["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-653d559237.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.2", {\ - "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.2-021ab32634-32cd106ce8.zip/node_modules/glob-parent/",\ - "packageDependencies": [\ - ["glob-parent", "npm:5.1.2"],\ - ["is-glob", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["global-dirs", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/global-dirs-npm-0.1.1-87c167e806-10624f5a8d.zip/node_modules/global-dirs/",\ - "packageDependencies": [\ - ["global-dirs", "npm:0.1.1"],\ - ["ini", "npm:1.3.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/global-dirs-npm-2.1.0-790e02e61c-f80b74032c.zip/node_modules/global-dirs/",\ - "packageDependencies": [\ - ["global-dirs", "npm:2.1.0"],\ - ["ini", "npm:1.3.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["globals", [\ - ["npm:11.12.0", {\ - "packageLocation": "./.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.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-11b38ef007.zip/node_modules/globals/",\ - "packageDependencies": [\ - ["globals", "npm:12.4.0"],\ - ["type-fest", "npm:0.8.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:13.8.0", {\ - "packageLocation": "./.yarn/cache/globals-npm-13.8.0-0988f60ed8-27c147b501.zip/node_modules/globals/",\ - "packageDependencies": [\ - ["globals", "npm:13.8.0"],\ - ["type-fest", "npm:0.20.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["globby", [\ - ["npm:11.0.1", {\ - "packageLocation": "./.yarn/cache/globby-npm-11.0.1-b32c0f1cff-7b3b21802a.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.5"],\ - ["ignore", "npm:5.1.8"],\ - ["merge2", "npm:1.4.1"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:11.0.3", {\ - "packageLocation": "./.yarn/cache/globby-npm-11.0.3-bb0a10f600-774b23d76f.zip/node_modules/globby/",\ - "packageDependencies": [\ - ["globby", "npm:11.0.3"],\ - ["array-union", "npm:2.1.0"],\ - ["dir-glob", "npm:3.0.1"],\ - ["fast-glob", "npm:3.2.5"],\ - ["ignore", "npm:5.1.8"],\ - ["merge2", "npm:1.4.1"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["got", [\ - ["npm:11.7.0", {\ - "packageLocation": "./.yarn/cache/got-npm-11.7.0-cacb9b44fc-e3c6b87f23.zip/node_modules/got/",\ - "packageDependencies": [\ - ["got", "npm:11.7.0"],\ - ["@sindresorhus/is", "npm:3.1.2"],\ - ["@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.4"],\ - ["cacheable-request", "npm:7.0.1"],\ - ["decompress-response", "npm:6.0.0"],\ - ["http2-wrapper", "npm:1.0.3"],\ - ["lowercase-keys", "npm:2.0.0"],\ - ["p-cancelable", "npm:2.1.1"],\ - ["responselike", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.6.0", {\ - "packageLocation": "./.yarn/cache/got-npm-9.6.0-80edc15fd0-fae3273b44.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.11", {\ - "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip/node_modules/graceful-fs/",\ - "packageDependencies": [\ - ["graceful-fs", "npm:4.2.11"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.2.6", {\ - "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-04e1001c39.zip/node_modules/graceful-fs/",\ - "packageDependencies": [\ - ["graceful-fs", "npm:4.2.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["growly", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-77f9abc3a8.zip/node_modules/growly/",\ - "packageDependencies": [\ - ["growly", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["handlebars", [\ - ["npm:4.7.7", {\ - "packageLocation": "./.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-617b1e689b.zip/node_modules/handlebars/",\ - "packageDependencies": [\ - ["handlebars", "npm:4.7.7"],\ - ["minimist", "npm:1.2.5"],\ - ["neo-async", "npm:2.6.2"],\ - ["source-map", "npm:0.6.1"],\ - ["uglify-js", "npm:3.13.6"],\ - ["wordwrap", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["har-schema", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip/node_modules/har-schema/",\ - "packageDependencies": [\ - ["har-schema", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["har-validator", [\ - ["npm:5.1.5", {\ - "packageLocation": "./.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip/node_modules/har-validator/",\ - "packageDependencies": [\ - ["har-validator", "npm:5.1.5"],\ - ["ajv", "npm:6.12.6"],\ - ["har-schema", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hard-rejection", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip/node_modules/hard-rejection/",\ - "packageDependencies": [\ - ["hard-rejection", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/has-npm-1.0.3-b7f00631c1-a449f3185b.zip/node_modules/has/",\ - "packageDependencies": [\ - ["has", "npm:1.0.3"],\ - ["function-bind", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-bigints", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/has-bigints-npm-1.0.1-1b93717a74-44ab558681.zip/node_modules/has-bigints/",\ - "packageDependencies": [\ - ["has-bigints", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-flag", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.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-261a135703.zip/node_modules/has-flag/",\ - "packageDependencies": [\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-symbols", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.2-50e53af115-3d8b4f3c7d.zip/node_modules/has-symbols/",\ - "packageDependencies": [\ - ["has-symbols", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-unicode", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-893adb4747-041b4293ad.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-29e2a1e657.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-b9421d354e.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-ab1c4bcaf8.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-77e6693f73.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-5eb1d0bb85.zip/node_modules/has-yarn/",\ - "packageDependencies": [\ - ["has-yarn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hermes-estree", [\ - ["npm:0.19.1", {\ - "packageLocation": "./.yarn/cache/hermes-estree-npm-0.19.1-e23907b22e-dadafea5cf.zip/node_modules/hermes-estree/",\ - "packageDependencies": [\ - ["hermes-estree", "npm:0.19.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.23.1", {\ - "packageLocation": "./.yarn/cache/hermes-estree-npm-0.23.1-b96541fb28-b7ad78f530.zip/node_modules/hermes-estree/",\ - "packageDependencies": [\ - ["hermes-estree", "npm:0.23.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hermes-parser", [\ - ["npm:0.19.1", {\ - "packageLocation": "./.yarn/cache/hermes-parser-npm-0.19.1-ee11958fe7-4fd886ce3a.zip/node_modules/hermes-parser/",\ - "packageDependencies": [\ - ["hermes-parser", "npm:0.19.1"],\ - ["hermes-estree", "npm:0.19.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.23.1", {\ - "packageLocation": "./.yarn/cache/hermes-parser-npm-0.23.1-031eeefaa0-de88df4f23.zip/node_modules/hermes-parser/",\ - "packageDependencies": [\ - ["hermes-parser", "npm:0.23.1"],\ - ["hermes-estree", "npm:0.23.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hermes-profile-transformer", [\ - ["npm:0.0.6", {\ - "packageLocation": "./.yarn/cache/hermes-profile-transformer-npm-0.0.6-80b3a74e21-92ffe2ad1b.zip/node_modules/hermes-profile-transformer/",\ - "packageDependencies": [\ - ["hermes-profile-transformer", "npm:0.0.6"],\ - ["source-map", "npm:0.7.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hosted-git-info", [\ - ["npm:2.8.9", {\ - "packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-96da7d4123.zip/node_modules/hosted-git-info/",\ - "packageDependencies": [\ - ["hosted-git-info", "npm:2.8.9"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.2", {\ - "packageLocation": "./.yarn/cache/hosted-git-info-npm-4.0.2-7330924e0c-cb007a7201.zip/node_modules/hosted-git-info/",\ - "packageDependencies": [\ - ["hosted-git-info", "npm:4.0.2"],\ - ["lru-cache", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["html-encoding-sniffer", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-70365109ca.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-034d74029d.zip/node_modules/html-escaper/",\ - "packageDependencies": [\ - ["html-escaper", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["htmlparser2", [\ - ["npm:7.1.2", {\ - "packageLocation": "./.yarn/cache/htmlparser2-npm-7.1.2-35aba759f6-3f68d004fd.zip/node_modules/htmlparser2/",\ - "packageDependencies": [\ - ["htmlparser2", "npm:7.1.2"],\ - ["domelementtype", "npm:2.2.0"],\ - ["domhandler", "npm:4.2.2"],\ - ["domutils", "npm:2.8.0"],\ - ["entities", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-cache-semantics", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-c9c29508b2.zip/node_modules/http-cache-semantics/",\ - "packageDependencies": [\ - ["http-cache-semantics", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-errors", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip/node_modules/http-errors/",\ - "packageDependencies": [\ - ["http-errors", "npm:2.0.0"],\ - ["depd", "npm:2.0.0"],\ - ["inherits", "npm:2.0.4"],\ - ["setprototypeof", "npm:1.2.0"],\ - ["statuses", "npm:2.0.1"],\ - ["toidentifier", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-proxy-agent", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-2e17f5519f.zip/node_modules/http-proxy-agent/",\ - "packageDependencies": [\ - ["http-proxy-agent", "npm:4.0.1"],\ - ["@tootallnate/once", "npm:1.1.2"],\ - ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-signature", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/http-signature-npm-1.2.0-ee92426f34-2ff7112e6b.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.3", {\ - "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-8097ee2699.zip/node_modules/http2-wrapper/",\ - "packageDependencies": [\ - ["http2-wrapper", "npm:1.0.3"],\ - ["quick-lru", "npm:5.1.1"],\ - ["resolve-alpn", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["https-proxy-agent", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-517037badc.zip/node_modules/https-proxy-agent/",\ - "packageDependencies": [\ - ["https-proxy-agent", "npm:5.0.0"],\ - ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["human-signals", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/human-signals-npm-1.1.1-616b2586c2-6a58224dff.zip/node_modules/human-signals/",\ - "packageDependencies": [\ - ["human-signals", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/human-signals-npm-2.1.0-f75815481d-df59be9e0a.zip/node_modules/human-signals/",\ - "packageDependencies": [\ - ["human-signals", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["humanize-ms", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip/node_modules/humanize-ms/",\ - "packageDependencies": [\ - ["humanize-ms", "npm:1.2.1"],\ - ["ms", "npm:2.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["husky", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/husky-npm-6.0.0-384872ea98-7527e831c8.zip/node_modules/husky/",\ - "packageDependencies": [\ - ["husky", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["iconv-lite", [\ - ["npm:0.4.24", {\ - "packageLocation": "./.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-6d3a2dac6e.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-ba81a32a54.zip/node_modules/iconv-lite/",\ - "packageDependencies": [\ - ["iconv-lite", "npm:0.6.2"],\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ieee754", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-d9f2557a59.zip/node_modules/ieee754/",\ - "packageDependencies": [\ - ["ieee754", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ignore", [\ - ["npm:4.0.6", {\ - "packageLocation": "./.yarn/cache/ignore-npm-4.0.6-66c0d6543e-e04d6bd60d.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-b3e8dceccb.zip/node_modules/ignore/",\ - "packageDependencies": [\ - ["ignore", "npm:5.1.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["image-size", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/image-size-npm-1.1.1-4e6d664667-f28966dd3f.zip/node_modules/image-size/",\ - "packageDependencies": [\ - ["image-size", "npm:1.1.1"],\ - ["queue", "npm:6.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["import-cwd", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-f2c4230e83.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-610255f975.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.3.0", {\ - "packageLocation": "./.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.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-5040a7400e.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-05294f3b9d.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-c74d9f9484.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-2d30b157a9.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-2fe7124311.zip/node_modules/indent-string/",\ - "packageDependencies": [\ - ["indent-string", "npm:2.1.0"],\ - ["repeating", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-cd3f5cbc9c.zip/node_modules/indent-string/",\ - "packageDependencies": [\ - ["indent-string", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["infer-owner", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.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-d2ebd65441.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.4", {\ - "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip/node_modules/inherits/",\ - "packageDependencies": [\ - ["inherits", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ini", [\ - ["npm:1.3.7", {\ - "packageLocation": "./.yarn/cache/ini-npm-1.3.7-188ee858c0-dc1239eb9a.zip/node_modules/ini/",\ - "packageDependencies": [\ - ["ini", "npm:1.3.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.3.8", {\ - "packageLocation": "./.yarn/cache/ini-npm-1.3.8-fb5040b4c0-314ae176e8.zip/node_modules/ini/",\ - "packageDependencies": [\ - ["ini", "npm:1.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inquirer", [\ - ["npm:7.3.3", {\ - "packageLocation": "./.yarn/cache/inquirer-npm-7.3.3-9e86782610-052c6fce2d.zip/node_modules/inquirer/",\ - "packageDependencies": [\ - ["inquirer", "npm:7.3.3"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.1"],\ - ["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.21"],\ - ["mute-stream", "npm:0.0.8"],\ - ["run-async", "npm:2.4.1"],\ - ["rxjs", "npm:6.6.7"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["through", "npm:2.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["internal-slot", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.3-9e05eea002-1c6d22f797.zip/node_modules/internal-slot/",\ - "packageDependencies": [\ - ["internal-slot", "npm:1.0.3"],\ - ["get-intrinsic", "npm:1.1.1"],\ - ["has", "npm:1.0.3"],\ - ["side-channel", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["interpret", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-5beec568d3.zip/node_modules/interpret/",\ - "packageDependencies": [\ - ["interpret", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["invariant", [\ - ["npm:2.2.4", {\ - "packageLocation": "./.yarn/cache/invariant-npm-2.2.4-717fbdb119-cc3182d793.zip/node_modules/invariant/",\ - "packageDependencies": [\ - ["invariant", "npm:2.2.4"],\ - ["loose-envify", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ip", [\ - ["npm:1.1.5", {\ - "packageLocation": "./.yarn/cache/ip-npm-1.1.5-af36318aa6-40a00572cf.zip/node_modules/ip/",\ - "packageDependencies": [\ - ["ip", "npm:1.1.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-absolute", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-9d16b2605e.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-accessor-descriptor", [\ - ["npm:0.1.6", {\ - "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-3d629a086a.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-8e475968e9.zip/node_modules/is-accessor-descriptor/",\ - "packageDependencies": [\ - ["is-accessor-descriptor", "npm:1.0.0"],\ - ["kind-of", "npm:6.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-arrayish", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-73ced84fa3.zip/node_modules/is-arrayish/",\ - "packageDependencies": [\ - ["is-arrayish", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-bigint", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/is-bigint-npm-1.0.2-db0dde4bd4-7e01ddae28.zip/node_modules/is-bigint/",\ - "packageDependencies": [\ - ["is-bigint", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-binary-path", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-a803c99e9d.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-078e51b4f9.zip/node_modules/is-binary-path/",\ - "packageDependencies": [\ - ["is-binary-path", "npm:2.1.0"],\ - ["binary-extensions", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-boolean-object", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/is-boolean-object-npm-1.1.1-4a132c53e4-63fbf0841b.zip/node_modules/is-boolean-object/",\ - "packageDependencies": [\ - ["is-boolean-object", "npm:1.1.1"],\ - ["call-bind", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-buffer", [\ - ["npm:1.1.6", {\ - "packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-f63da109e7.zip/node_modules/is-buffer/",\ - "packageDependencies": [\ - ["is-buffer", "npm:1.1.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-callable", [\ - ["npm:1.2.3", {\ - "packageLocation": "./.yarn/cache/is-callable-npm-1.2.3-2a68c9d549-34d51c2c4a.zip/node_modules/is-callable/",\ - "packageDependencies": [\ - ["is-callable", "npm:1.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-ci", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/is-ci-npm-2.0.0-8662a0f445-77b8690575.zip/node_modules/is-ci/",\ - "packageDependencies": [\ - ["is-ci", "npm:2.0.0"],\ - ["ci-info", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-core-module", [\ - ["npm:2.4.0", {\ - "packageLocation": "./.yarn/cache/is-core-module-npm-2.4.0-bae19c65cd-9b0f05c4ee.zip/node_modules/is-core-module/",\ - "packageDependencies": [\ - ["is-core-module", "npm:2.4.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-5c622e078b.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-b8b1f13a53.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.4", {\ - "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.4-bc85407e70-69a39c1036.zip/node_modules/is-date-object/",\ - "packageDependencies": [\ - ["is-date-object", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-descriptor", [\ - ["npm:0.1.6", {\ - "packageLocation": "./.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-b946ba8421.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-e68059b333.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-dce9a9d398.zip/node_modules/is-directory/",\ - "packageDependencies": [\ - ["is-directory", "npm:0.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-docker", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-3fef7ddbf0.zip/node_modules/is-docker/",\ - "packageDependencies": [\ - ["is-docker", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-extendable", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-3875571d20.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-db07bc1e9d.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-df033653d0.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-532b97ed3d.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-4d46a7465a.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-eef9c6e15f.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-44a30c2945.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-a6ad5492cf.zip/node_modules/is-generator-fn/",\ - "packageDependencies": [\ - ["is-generator-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-git-dirty", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/is-git-dirty-npm-2.0.1-a42f1034ca-76a4b33d77.zip/node_modules/is-git-dirty/",\ - "packageDependencies": [\ - ["is-git-dirty", "npm:2.0.1"],\ - ["execa", "npm:4.1.0"],\ - ["is-git-repository", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-git-repository", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/is-git-repository-npm-2.0.0-775ac048b7-9eba764379.zip/node_modules/is-git-repository/",\ - "packageDependencies": [\ - ["is-git-repository", "npm:2.0.0"],\ - ["execa", "npm:4.1.0"],\ - ["is-absolute", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-glob", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9d483bca84.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-998cdc412d.zip/node_modules/is-glob/",\ - "packageDependencies": [\ - ["is-glob", "npm:4.0.1"],\ - ["is-extglob", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-installed-globally", [\ - ["npm:0.3.2", {\ - "packageLocation": "./.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-03ebad377d.zip/node_modules/is-installed-globally/",\ - "packageDependencies": [\ - ["is-installed-globally", "npm:0.3.2"],\ - ["global-dirs", "npm:2.1.0"],\ - ["is-path-inside", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-interactive", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-824808776e.zip/node_modules/is-interactive/",\ - "packageDependencies": [\ - ["is-interactive", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-lambda", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip/node_modules/is-lambda/",\ - "packageDependencies": [\ - ["is-lambda", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-negative-zero", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/is-negative-zero-npm-2.0.1-d8f3dbcfe1-3a017d57c2.zip/node_modules/is-negative-zero/",\ - "packageDependencies": [\ - ["is-negative-zero", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-npm", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/is-npm-npm-5.0.0-2758bcd54b-9baff02b0c.zip/node_modules/is-npm/",\ - "packageDependencies": [\ - ["is-npm", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-number", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/is-number-npm-3.0.0-9088035ade-0c62bf8e9d.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-6a6c3383f6.zip/node_modules/is-number/",\ - "packageDependencies": [\ - ["is-number", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-number-object", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/is-number-object-npm-1.0.5-fb5fdccdde-360b0c6cc9.zip/node_modules/is-number-object/",\ - "packageDependencies": [\ - ["is-number-object", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-obj", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-c9916ac8f4.zip/node_modules/is-obj/",\ - "packageDependencies": [\ - ["is-obj", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-path-cwd", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-46a840921b.zip/node_modules/is-path-cwd/",\ - "packageDependencies": [\ - ["is-path-cwd", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-path-inside", [\ - ["npm:3.0.3", {\ - "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip/node_modules/is-path-inside/",\ - "packageDependencies": [\ - ["is-path-inside", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-plain-obj", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip/node_modules/is-plain-obj/",\ - "packageDependencies": [\ - ["is-plain-obj", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-plain-object", [\ - ["npm:2.0.4", {\ - "packageLocation": "./.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.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-e32d27061e.zip/node_modules/is-plain-object/",\ - "packageDependencies": [\ - ["is-plain-object", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-potential-custom-element-name", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip/node_modules/is-potential-custom-element-name/",\ - "packageDependencies": [\ - ["is-potential-custom-element-name", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-regex", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/is-regex-npm-1.1.3-5a00a17388-f3f66c934e.zip/node_modules/is-regex/",\ - "packageDependencies": [\ - ["is-regex", "npm:1.1.3"],\ - ["call-bind", "npm:1.0.2"],\ - ["has-symbols", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-relative", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/is-relative-npm-1.0.0-af71733ca6-3271a0df10.zip/node_modules/is-relative/",\ - "packageDependencies": [\ - ["is-relative", "npm:1.0.0"],\ - ["is-unc-path", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-ssh", [\ - ["npm:1.3.3", {\ - "packageLocation": "./.yarn/cache/is-ssh-npm-1.3.3-dae2e96b9a-fca677f3cb.zip/node_modules/is-ssh/",\ - "packageDependencies": [\ - ["is-ssh", "npm:1.3.3"],\ - ["protocols", "npm:1.4.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-stream", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-351aa77c54.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-4dc47738e2.zip/node_modules/is-stream/",\ - "packageDependencies": [\ - ["is-stream", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-string", [\ - ["npm:1.0.6", {\ - "packageLocation": "./.yarn/cache/is-string-npm-1.0.6-2e7dbd354f-6813897bb0.zip/node_modules/is-string/",\ - "packageDependencies": [\ - ["is-string", "npm:1.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-symbol", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-a47dd899a8.zip/node_modules/is-symbol/",\ - "packageDependencies": [\ - ["is-symbol", "npm:1.0.4"],\ - ["has-symbols", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-text-path", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/is-text-path-npm-1.0.1-92c78fe58d-fb5d78752c.zip/node_modules/is-text-path/",\ - "packageDependencies": [\ - ["is-text-path", "npm:1.0.1"],\ - ["text-extensions", "npm:1.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-typedarray", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4b433bfb0f.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-e8abfde203.zip/node_modules/is-unc-path/",\ - "packageDependencies": [\ - ["is-unc-path", "npm:1.0.0"],\ - ["unc-path-regex", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-unicode-supported", [\ - ["npm:0.1.0", {\ - "packageLocation": "./.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip/node_modules/is-unicode-supported/",\ - "packageDependencies": [\ - ["is-unicode-supported", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-utf8", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-167ccd2be8.zip/node_modules/is-utf8/",\ - "packageDependencies": [\ - ["is-utf8", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-windows", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip/node_modules/is-windows/",\ - "packageDependencies": [\ - ["is-windows", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-wsl", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-ea157d2323.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-20849846ae.zip/node_modules/is-wsl/",\ - "packageDependencies": [\ - ["is-wsl", "npm:2.2.0"],\ - ["is-docker", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-yarn-global", [\ - ["npm:0.3.0", {\ - "packageLocation": "./.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-bca013d65f.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-f032df8e02.zip/node_modules/isarray/",\ - "packageDependencies": [\ - ["isarray", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["isexe", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7c9f715c03.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-811c6f5a86.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-db85c4c970.zip/node_modules/isobject/",\ - "packageDependencies": [\ - ["isobject", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["isstream", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/isstream-npm-0.1.2-8581c75385-22d9c18101.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-eb0ba20589.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-6e04ab365b.zip/node_modules/istanbul-lib-instrument/",\ - "packageDependencies": [\ - ["istanbul-lib-instrument", "npm:4.0.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["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-06b37952e9.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.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-lib-source-maps", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-765252abc6.zip/node_modules/istanbul-lib-source-maps/",\ - "packageDependencies": [\ - ["istanbul-lib-source-maps", "npm:4.0.0"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["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-3be3b0a80b.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"\ - }]\ - ]],\ - ["jake", [\ - ["npm:10.8.2", {\ - "packageLocation": "./.yarn/cache/jake-npm-10.8.2-e211473cb9-7a64df8060.zip/node_modules/jake/",\ - "packageDependencies": [\ - ["jake", "npm:10.8.2"],\ - ["async", "npm:0.9.2"],\ - ["chalk", "npm:2.4.2"],\ - ["filelist", "npm:1.0.2"],\ - ["minimatch", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/jest-npm-26.6.3-dafe93d52f-e3a10f27af.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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-0cb25665c9.zip/node_modules/jest-changed-files/",\ - "packageDependencies": [\ - ["jest-changed-files", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["execa", "npm:4.1.0"],\ - ["throat", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-cli", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-9b0c2d277c.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.1"],\ - ["exit", "npm:0.1.2"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.4.1"],\ - ["yargs", "npm:15.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-config", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-58b748cd63.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-58b748cd63.zip/node_modules/jest-config/",\ - "packageDependencies": [\ - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@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.1"],\ - ["deepmerge", "npm:4.2.2"],\ - ["glob", "npm:7.1.7"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.4"],\ - ["pretty-format", "npm:26.6.2"],\ - ["ts-node", null]\ - ],\ - "packagePeers": [\ - "@types/ts-node",\ - "ts-node"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-diff", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-1aaac60e32.zip/node_modules/jest-diff/",\ - "packageDependencies": [\ - ["jest-diff", "npm:26.6.2"],\ - ["chalk", "npm:4.1.1"],\ - ["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-a189f89ba3.zip/node_modules/jest-docblock/",\ - "packageDependencies": [\ - ["jest-docblock", "npm:26.0.0"],\ - ["detect-newline", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-each", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-each-npm-26.6.2-651078df67-099a0e9c3b.zip/node_modules/jest-each/",\ - "packageDependencies": [\ - ["jest-each", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["chalk", "npm:4.1.1"],\ - ["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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-8af9ffdf1b.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:15.3.0"],\ - ["jest-mock", "npm:26.6.2"],\ - ["jest-util", "npm:26.6.2"],\ - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-environment-node", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-0b69b481e6.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:15.3.0"],\ - ["jest-mock", "npm:26.6.2"],\ - ["jest-util", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-9cf7045adf.zip/node_modules/jest-environment-node/",\ - "packageDependencies": [\ - ["jest-environment-node", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:15.3.0"],\ - ["jest-mock", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-get-type", [\ - ["npm:26.3.0", {\ - "packageLocation": "./.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-1cc6465ae4.zip/node_modules/jest-get-type/",\ - "packageDependencies": [\ - ["jest-get-type", "npm:26.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.6.3", {\ - "packageLocation": "./.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip/node_modules/jest-get-type/",\ - "packageDependencies": [\ - ["jest-get-type", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-haste-map", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-bb4261a0f3.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.5"],\ - ["@types/node", "npm:15.3.0"],\ - ["anymatch", "npm:3.1.2"],\ - ["fb-watchman", "npm:2.0.1"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.4"],\ - ["sane", "npm:4.1.0"],\ - ["walker", "npm:1.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-jasmine2", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-e39b92003f.zip/node_modules/jest-jasmine2/",\ - "packageDependencies": [\ - ["jest-jasmine2", "npm:26.6.3"],\ - ["@babel/traverse", "npm:7.14.2"],\ - ["@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:15.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-364dd4d021.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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-1c07921612.zip/node_modules/jest-matcher-utils/",\ - "packageDependencies": [\ - ["jest-matcher-utils", "npm:26.6.2"],\ - ["chalk", "npm:4.1.1"],\ - ["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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-8b1fb4b0e4.zip/node_modules/jest-message-util/",\ - "packageDependencies": [\ - ["jest-message-util", "npm:26.6.2"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/stack-utils", "npm:2.0.0"],\ - ["chalk", "npm:4.1.1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["micromatch", "npm:4.0.4"],\ - ["pretty-format", "npm:26.6.2"],\ - ["slash", "npm:3.0.0"],\ - ["stack-utils", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-31d53c6ed2.zip/node_modules/jest-message-util/",\ - "packageDependencies": [\ - ["jest-message-util", "npm:29.7.0"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/stack-utils", "npm:2.0.0"],\ - ["chalk", "npm:4.1.1"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["micromatch", "npm:4.0.8"],\ - ["pretty-format", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["stack-utils", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-mock", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-6ac5e23b0a.zip/node_modules/jest-mock/",\ - "packageDependencies": [\ - ["jest-mock", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/node", "npm:15.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-ae51d1b4f8.zip/node_modules/jest-mock/",\ - "packageDependencies": [\ - ["jest-mock", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:15.3.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-pnp-resolver", [\ - ["npm:1.2.2", {\ - "packageLocation": "./.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip/node_modules/jest-pnp-resolver/",\ - "packageDependencies": [\ - ["jest-pnp-resolver", "npm:1.2.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2", {\ - "packageLocation": "./.yarn/__virtual__/jest-pnp-resolver-virtual-c95d0051b1/0/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.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-930a00665e.zip/node_modules/jest-regex-util/",\ - "packageDependencies": [\ - ["jest-regex-util", "npm:26.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-resolve", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-72b7ef3f56.zip/node_modules/jest-resolve/",\ - "packageDependencies": [\ - ["jest-resolve", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["chalk", "npm:4.1.1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-resolve-dependencies", [\ - ["npm:26.6.3", {\ - "packageLocation": "./.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-533ea1e271.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.6.3", {\ - "packageLocation": "./.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-065e525b8f.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:15.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["emittery", "npm:0.7.2"],\ - ["exit", "npm:0.1.2"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.6.3", {\ - "packageLocation": "./.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-6a569b9edb.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.13"],\ - ["chalk", "npm:4.1.1"],\ - ["cjs-module-lexer", "npm:0.6.0"],\ - ["collect-v8-coverage", "npm:1.0.1"],\ - ["exit", "npm:0.1.2"],\ - ["glob", "npm:7.1.7"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.6.2", {\ - "packageLocation": "./.yarn/cache/jest-serializer-npm-26.6.2-0907990487-dbecfb0d01.zip/node_modules/jest-serializer/",\ - "packageDependencies": [\ - ["jest-serializer", "npm:26.6.2"],\ - ["@types/node", "npm:15.3.0"],\ - ["graceful-fs", "npm:4.2.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-snapshot", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-ce60c5b295.zip/node_modules/jest-snapshot/",\ - "packageDependencies": [\ - ["jest-snapshot", "npm:26.6.2"],\ - ["@babel/types", "npm:7.14.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/babel__traverse", "npm:7.11.1"],\ - ["@types/prettier", "npm:2.2.3"],\ - ["chalk", "npm:4.1.1"],\ - ["expect", "npm:26.6.2"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-util", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-4502bc699f.zip/node_modules/jest-util/",\ - "packageDependencies": [\ - ["jest-util", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["@types/node", "npm:15.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["is-ci", "npm:2.0.0"],\ - ["micromatch", "npm:4.0.4"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-30d58af696.zip/node_modules/jest-util/",\ - "packageDependencies": [\ - ["jest-util", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:15.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["ci-info", "npm:3.9.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-validate", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-ecef94010e.zip/node_modules/jest-validate/",\ - "packageDependencies": [\ - ["jest-validate", "npm:26.6.2"],\ - ["@jest/types", "npm:26.6.2"],\ - ["camelcase", "npm:6.2.0"],\ - ["chalk", "npm:4.1.1"],\ - ["jest-get-type", "npm:26.3.0"],\ - ["leven", "npm:3.1.0"],\ - ["pretty-format", "npm:26.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-8ee1163666.zip/node_modules/jest-validate/",\ - "packageDependencies": [\ - ["jest-validate", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["camelcase", "npm:6.3.0"],\ - ["chalk", "npm:4.1.1"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["leven", "npm:3.1.0"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-watcher", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-9babed3211.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:15.3.0"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.1"],\ - ["jest-util", "npm:26.6.2"],\ - ["string-length", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-worker", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5f6b94cf0e.zip/node_modules/jest-worker/",\ - "packageDependencies": [\ - ["jest-worker", "npm:26.6.2"],\ - ["@types/node", "npm:15.3.0"],\ - ["merge-stream", "npm:2.0.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-364cbaef00.zip/node_modules/jest-worker/",\ - "packageDependencies": [\ - ["jest-worker", "npm:29.7.0"],\ - ["@types/node", "npm:15.3.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["merge-stream", "npm:2.0.0"],\ - ["supports-color", "npm:8.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jetifier", [\ - ["npm:1.6.8", {\ - "packageLocation": "./.yarn/unplugged/jetifier-npm-1.6.8-940248aabe/node_modules/jetifier/",\ - "packageDependencies": [\ - ["jetifier", "npm:1.6.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["joi", [\ - ["npm:17.13.3", {\ - "packageLocation": "./.yarn/cache/joi-npm-17.13.3-866dad5bc8-4c150db0c8.zip/node_modules/joi/",\ - "packageDependencies": [\ - ["joi", "npm:17.13.3"],\ - ["@hapi/hoek", "npm:9.3.0"],\ - ["@hapi/topo", "npm:5.1.0"],\ - ["@sideway/address", "npm:4.1.5"],\ - ["@sideway/formula", "npm:3.0.1"],\ - ["@sideway/pinpoint", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["js-tokens", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-af37d0d913.zip/node_modules/js-tokens/",\ - "packageDependencies": [\ - ["js-tokens", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["js-yaml", [\ - ["npm:3.14.1", {\ - "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-9e22d80b4d.zip/node_modules/js-yaml/",\ - "packageDependencies": [\ - ["js-yaml", "npm:3.14.1"],\ - ["argparse", "npm:1.0.10"],\ - ["esprima", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsbn", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/jsbn-npm-0.1.1-0eb7132404-5450133242.zip/node_modules/jsbn/",\ - "packageDependencies": [\ - ["jsbn", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsc-android", [\ - ["npm:250231.0.0", {\ - "packageLocation": "./.yarn/unplugged/jsc-android-npm-250231.0.0-8322f50944/node_modules/jsc-android/",\ - "packageDependencies": [\ - ["jsc-android", "npm:250231.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsc-safe-url", [\ - ["npm:0.2.4", {\ - "packageLocation": "./.yarn/cache/jsc-safe-url-npm-0.2.4-4c5f8d6d7b-2729b32e69.zip/node_modules/jsc-safe-url/",\ - "packageDependencies": [\ - ["jsc-safe-url", "npm:0.2.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jscodeshift", [\ - ["npm:0.14.0", {\ - "packageLocation": "./.yarn/cache/jscodeshift-npm-0.14.0-76e38c9080-fc355dde22.zip/node_modules/jscodeshift/",\ - "packageDependencies": [\ - ["jscodeshift", "npm:0.14.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0", {\ - "packageLocation": "./.yarn/__virtual__/jscodeshift-virtual-a066de45ed/0/cache/jscodeshift-npm-0.14.0-76e38c9080-fc355dde22.zip/node_modules/jscodeshift/",\ - "packageDependencies": [\ - ["jscodeshift", "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/plugin-proposal-class-properties", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"],\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"],\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2"],\ - ["@babel/plugin-transform-modules-commonjs", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8"],\ - ["@babel/preset-env", null],\ - ["@babel/preset-flow", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7"],\ - ["@babel/preset-typescript", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"],\ - ["@babel/register", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6"],\ - ["@types/babel__preset-env", null],\ - ["babel-core", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0"],\ - ["chalk", "npm:4.1.2"],\ - ["flow-parser", "npm:0.246.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["micromatch", "npm:4.0.8"],\ - ["neo-async", "npm:2.6.2"],\ - ["node-dir", "npm:0.1.17"],\ - ["recast", "npm:0.21.5"],\ - ["temp", "npm:0.8.4"],\ - ["write-file-atomic", "npm:2.4.3"]\ - ],\ - "packagePeers": [\ - "@babel/preset-env",\ - "@types/babel__preset-env"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsdom", [\ - ["npm:16.5.3", {\ - "packageLocation": "./.yarn/cache/jsdom-npm-16.5.3-a7674d3b6b-eb48af5767.zip/node_modules/jsdom/",\ - "packageDependencies": [\ - ["jsdom", "npm:16.5.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3", {\ - "packageLocation": "./.yarn/__virtual__/jsdom-virtual-96f830aa00/0/cache/jsdom-npm-16.5.3-a7674d3b6b-eb48af5767.zip/node_modules/jsdom/",\ - "packageDependencies": [\ - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3"],\ - ["@types/canvas", null],\ - ["abab", "npm:2.0.5"],\ - ["acorn", "npm:8.2.4"],\ - ["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.1"],\ - ["nwsapi", "npm:2.2.0"],\ - ["parse5", "npm:6.0.1"],\ - ["request", "npm:2.88.2"],\ - ["request-promise-native", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#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.5.0"],\ - ["ws", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5"],\ - ["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-fab949f585.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-d2096abdcd.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-6e36458560.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-8287615452.zip/node_modules/json-buffer/",\ - "packageDependencies": [\ - ["json-buffer", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-parse-better-errors", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-5553232045.zip/node_modules/json-parse-better-errors/",\ - "packageDependencies": [\ - ["json-parse-better-errors", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-parse-even-better-errors", [\ - ["npm:2.3.1", {\ - "packageLocation": "./.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-5f3a99009e.zip/node_modules/json-parse-even-better-errors/",\ - "packageDependencies": [\ - ["json-parse-even-better-errors", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-schema", [\ - ["npm:0.2.3", {\ - "packageLocation": "./.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-2f98d28db7.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-7486074d3b.zip/node_modules/json-schema-traverse/",\ - "packageDependencies": [\ - ["json-schema-traverse", "npm:0.4.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip/node_modules/json-schema-traverse/",\ - "packageDependencies": [\ - ["json-schema-traverse", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-stable-stringify-without-jsonify", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-12786c2e2f.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-59169a081e.zip/node_modules/json-stringify-safe/",\ - "packageDependencies": [\ - ["json-stringify-safe", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json5", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/json5-npm-2.2.0-da49dc7cb5-d72ea87423.zip/node_modules/json5/",\ - "packageDependencies": [\ - ["json5", "npm:2.2.0"],\ - ["minimist", "npm:1.2.5"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.2.3", {\ - "packageLocation": "./.yarn/cache/json5-npm-2.2.3-9962c55073-1db67b853f.zip/node_modules/json5/",\ - "packageDependencies": [\ - ["json5", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsonfile", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-17796f0ab1.zip/node_modules/jsonfile/",\ - "packageDependencies": [\ - ["jsonfile", "npm:4.0.0"],\ - ["graceful-fs", "npm:4.2.6"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.1.0", {\ - "packageLocation": "./.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-03014769e7.zip/node_modules/jsonfile/",\ - "packageDependencies": [\ - ["jsonfile", "npm:6.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["universalify", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsonparse", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-24531e956f.zip/node_modules/jsonparse/",\ - "packageDependencies": [\ - ["jsonparse", "npm:1.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsprim", [\ - ["npm:1.4.1", {\ - "packageLocation": "./.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-819f15255a.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"\ - }]\ - ]],\ - ["jsx-ast-utils", [\ - ["npm:3.2.0", {\ - "packageLocation": "./.yarn/cache/jsx-ast-utils-npm-3.2.0-c3558dbd96-7a6c160f1c.zip/node_modules/jsx-ast-utils/",\ - "packageDependencies": [\ - ["jsx-ast-utils", "npm:3.2.0"],\ - ["array-includes", "npm:3.1.3"],\ - ["object.assign", "npm:4.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["keyv", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/keyv-npm-3.1.0-81c9ff4454-6de272b3f7.zip/node_modules/keyv/",\ - "packageDependencies": [\ - ["keyv", "npm:3.1.0"],\ - ["json-buffer", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.3", {\ - "packageLocation": "./.yarn/cache/keyv-npm-4.0.3-4018fb536e-2c6c8f7635.zip/node_modules/keyv/",\ - "packageDependencies": [\ - ["keyv", "npm:4.0.3"],\ - ["json-buffer", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["kind-of", [\ - ["npm:3.2.2", {\ - "packageLocation": "./.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-b6e7eed10f.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-b35a90e069.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-acf7cc7388.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-5873d303fb.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-0c0ecaf00a.zip/node_modules/kleur/",\ - "packageDependencies": [\ - ["kleur", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["latest-version", [\ - ["npm:5.1.0", {\ - "packageLocation": "./.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-fbc72b071e.zip/node_modules/latest-version/",\ - "packageDependencies": [\ - ["latest-version", "npm:5.1.0"],\ - ["package-json", "npm:6.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["leven", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip/node_modules/leven/",\ - "packageDependencies": [\ - ["leven", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["levn", [\ - ["npm:0.3.0", {\ - "packageLocation": "./.yarn/cache/levn-npm-0.3.0-48d774b1c2-e1c3e75b5c.zip/node_modules/levn/",\ - "packageDependencies": [\ - ["levn", "npm:0.3.0"],\ - ["prelude-ls", "npm:1.1.2"],\ - ["type-check", "npm:0.3.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.4.1", {\ - "packageLocation": "./.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2e4720ff79.zip/node_modules/levn/",\ - "packageDependencies": [\ - ["levn", "npm:0.4.1"],\ - ["prelude-ls", "npm:1.2.1"],\ - ["type-check", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lighthouse-logger", [\ - ["npm:1.4.2", {\ - "packageLocation": "./.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ffcedbf687.zip/node_modules/lighthouse-logger/",\ - "packageDependencies": [\ - ["lighthouse-logger", "npm:1.4.2"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["marky", "npm:1.2.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lines-and-columns", [\ - ["npm:1.1.6", {\ - "packageLocation": "./.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip/node_modules/lines-and-columns/",\ - "packageDependencies": [\ - ["lines-and-columns", "npm:1.1.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["load-json-file", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-bb16e169d8.zip/node_modules/load-json-file/",\ - "packageDependencies": [\ - ["load-json-file", "npm:1.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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-8f5d6d93ba.zip/node_modules/load-json-file/",\ - "packageDependencies": [\ - ["load-json-file", "npm:4.0.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["parse-json", "npm:4.0.0"],\ - ["pify", "npm:3.0.0"],\ - ["strip-bom", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["locate-path", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-02d581edbb.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-53db399667.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-83e51725e6.zip/node_modules/locate-path/",\ - "packageDependencies": [\ - ["locate-path", "npm:5.0.0"],\ - ["p-locate", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip/node_modules/locate-path/",\ - "packageDependencies": [\ - ["locate-path", "npm:6.0.0"],\ - ["p-locate", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash", [\ - ["npm:4.17.20", {\ - "packageLocation": "./.yarn/cache/lodash-npm-4.17.20-c0db62021c-a5f94125d7.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-c08619c038.zip/node_modules/lodash/",\ - "packageDependencies": [\ - ["lodash", "npm:4.17.21"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.clonedeep", [\ - ["npm:4.5.0", {\ - "packageLocation": "./.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-957ed243f8.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-cd0b281978.zip/node_modules/lodash.debounce/",\ - "packageDependencies": [\ - ["lodash.debounce", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.ismatch", [\ - ["npm:4.4.0", {\ - "packageLocation": "./.yarn/cache/lodash.ismatch-npm-4.4.0-e538fd6c3d-946a7176cd.zip/node_modules/lodash.ismatch/",\ - "packageDependencies": [\ - ["lodash.ismatch", "npm:4.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.memoize", [\ - ["npm:4.1.2", {\ - "packageLocation": "./.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-192b2168f3.zip/node_modules/lodash.memoize/",\ - "packageDependencies": [\ - ["lodash.memoize", "npm:4.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.throttle", [\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-9be9fb2ffd.zip/node_modules/lodash.throttle/",\ - "packageDependencies": [\ - ["lodash.throttle", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.truncate", [\ - ["npm:4.4.2", {\ - "packageLocation": "./.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-7a49561612.zip/node_modules/lodash.truncate/",\ - "packageDependencies": [\ - ["lodash.truncate", "npm:4.4.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["log-symbols", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip/node_modules/log-symbols/",\ - "packageDependencies": [\ - ["log-symbols", "npm:4.1.0"],\ - ["chalk", "npm:4.1.1"],\ - ["is-unicode-supported", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["logkitty", [\ - ["npm:0.7.1", {\ - "packageLocation": "./.yarn/cache/logkitty-npm-0.7.1-222a2102c2-1b9ab87319.zip/node_modules/logkitty/",\ - "packageDependencies": [\ - ["logkitty", "npm:0.7.1"],\ - ["ansi-fragments", "npm:0.2.1"],\ - ["dayjs", "npm:1.11.13"],\ - ["yargs", "npm:15.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["loose-envify", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.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-750e12defd.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.2", {\ - "packageLocation": "./.yarn/cache/lower-case-npm-2.0.2-151055f1c2-83a0a5f159.zip/node_modules/lower-case/",\ - "packageDependencies": [\ - ["lower-case", "npm:2.0.2"],\ - ["tslib", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lowercase-keys", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-12ba64572d.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-1c233d2da3.zip/node_modules/lowercase-keys/",\ - "packageDependencies": [\ - ["lowercase-keys", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lru-cache", [\ - ["npm:5.1.1", {\ - "packageLocation": "./.yarn/cache/lru-cache-npm-5.1.1-f475882a51-951d2673dc.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-fc1fe2ee20.zip/node_modules/lru-cache/",\ - "packageDependencies": [\ - ["lru-cache", "npm:6.0.0"],\ - ["yallist", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["macos-release", [\ - ["npm:2.4.1", {\ - "packageLocation": "./.yarn/cache/macos-release-npm-2.4.1-4856441ab1-3271698f08.zip/node_modules/macos-release/",\ - "packageDependencies": [\ - ["macos-release", "npm:2.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-dir", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-043548886b.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-484200020a.zip/node_modules/make-dir/",\ - "packageDependencies": [\ - ["make-dir", "npm:3.1.0"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-fetch-happen", [\ - ["npm:8.0.14", {\ - "packageLocation": "./.yarn/cache/make-fetch-happen-npm-8.0.14-fa5d78adad-d28f020818.zip/node_modules/make-fetch-happen/",\ - "packageDependencies": [\ - ["make-fetch-happen", "npm:8.0.14"],\ - ["agentkeepalive", "npm:4.1.4"],\ - ["cacache", "npm:15.0.6"],\ - ["http-cache-semantics", "npm:4.1.0"],\ - ["http-proxy-agent", "npm:4.0.1"],\ - ["https-proxy-agent", "npm:5.0.0"],\ - ["is-lambda", "npm:1.0.1"],\ - ["lru-cache", "npm:6.0.0"],\ - ["minipass", "npm:3.1.3"],\ - ["minipass-collect", "npm:1.0.2"],\ - ["minipass-fetch", "npm:1.3.3"],\ - ["minipass-flush", "npm:1.0.5"],\ - ["minipass-pipeline", "npm:1.2.4"],\ - ["promise-retry", "npm:2.0.1"],\ - ["socks-proxy-agent", "npm:5.0.0"],\ - ["ssri", "npm:8.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["makeerror", [\ - ["npm:1.0.11", {\ - "packageLocation": "./.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-b08b6120da.zip/node_modules/makeerror/",\ - "packageDependencies": [\ - ["makeerror", "npm:1.0.11"],\ - ["tmpl", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["map-cache", [\ - ["npm:0.2.2", {\ - "packageLocation": "./.yarn/cache/map-cache-npm-0.2.2-1620199b05-3067cea542.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-f8e6fc7f61.zip/node_modules/map-obj/",\ - "packageDependencies": [\ - ["map-obj", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.2.1", {\ - "packageLocation": "./.yarn/cache/map-obj-npm-4.2.1-754eda8456-2745227b11.zip/node_modules/map-obj/",\ - "packageDependencies": [\ - ["map-obj", "npm:4.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["map-visit", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-c27045a502.zip/node_modules/map-visit/",\ - "packageDependencies": [\ - ["map-visit", "npm:1.0.0"],\ - ["object-visit", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["marky", [\ - ["npm:1.2.5", {\ - "packageLocation": "./.yarn/cache/marky-npm-1.2.5-007e6cc885-ae775cea93.zip/node_modules/marky/",\ - "packageDependencies": [\ - ["marky", "npm:1.2.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["memoize-one", [\ - ["npm:5.2.1", {\ - "packageLocation": "./.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-b7141dc148.zip/node_modules/memoize-one/",\ - "packageDependencies": [\ - ["memoize-one", "npm:5.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["meow", [\ - ["npm:3.7.0", {\ - "packageLocation": "./.yarn/cache/meow-npm-3.7.0-5653cc98af-dd1f7fc0e5.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"\ - }],\ - ["npm:8.1.2", {\ - "packageLocation": "./.yarn/cache/meow-npm-8.1.2-bcfe48d4f3-d4770f9013.zip/node_modules/meow/",\ - "packageDependencies": [\ - ["meow", "npm:8.1.2"],\ - ["@types/minimist", "npm:1.2.1"],\ - ["camelcase-keys", "npm:6.2.2"],\ - ["decamelize-keys", "npm:1.1.0"],\ - ["hard-rejection", "npm:2.1.0"],\ - ["minimist-options", "npm:4.1.0"],\ - ["normalize-package-data", "npm:3.0.2"],\ - ["read-pkg-up", "npm:7.0.1"],\ - ["redent", "npm:3.0.0"],\ - ["trim-newlines", "npm:3.0.0"],\ - ["type-fest", "npm:0.18.1"],\ - ["yargs-parser", "npm:20.2.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["merge-stream", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.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-7268db63ed.zip/node_modules/merge2/",\ - "packageDependencies": [\ - ["merge2", "npm:1.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-npm-0.80.12-22fc2f7367-b44280b16d.zip/node_modules/metro/",\ - "packageDependencies": [\ - ["metro", "npm:0.80.12"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"],\ - ["accepts", "npm:1.3.8"],\ - ["chalk", "npm:4.1.1"],\ - ["ci-info", "npm:2.0.0"],\ - ["connect", "npm:3.7.0"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["denodeify", "npm:1.2.1"],\ - ["error-stack-parser", "npm:2.1.4"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["hermes-parser", "npm:0.23.1"],\ - ["image-size", "npm:1.1.1"],\ - ["invariant", "npm:2.2.4"],\ - ["jest-worker", "npm:29.7.0"],\ - ["jsc-safe-url", "npm:0.2.4"],\ - ["lodash.throttle", "npm:4.1.1"],\ - ["metro-babel-transformer", "npm:0.80.12"],\ - ["metro-cache", "npm:0.80.12"],\ - ["metro-cache-key", "npm:0.80.12"],\ - ["metro-config", "npm:0.80.12"],\ - ["metro-core", "npm:0.80.12"],\ - ["metro-file-map", "npm:0.80.12"],\ - ["metro-resolver", "npm:0.80.12"],\ - ["metro-runtime", "npm:0.80.12"],\ - ["metro-source-map", "npm:0.80.12"],\ - ["metro-symbolicate", "npm:0.80.12"],\ - ["metro-transform-plugins", "npm:0.80.12"],\ - ["metro-transform-worker", "npm:0.80.12"],\ - ["mime-types", "npm:2.1.35"],\ - ["nullthrows", "npm:1.1.1"],\ - ["serialize-error", "npm:2.1.0"],\ - ["source-map", "npm:0.5.7"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["throat", "npm:5.0.0"],\ - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"],\ - ["yargs", "npm:17.7.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-babel-transformer", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-babel-transformer-npm-0.80.12-181bafda20-3912367e26.zip/node_modules/metro-babel-transformer/",\ - "packageDependencies": [\ - ["metro-babel-transformer", "npm:0.80.12"],\ - ["@babel/core", "npm:7.25.2"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["hermes-parser", "npm:0.23.1"],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-cache", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-cache-npm-0.80.12-711aaffee1-914b599ad4.zip/node_modules/metro-cache/",\ - "packageDependencies": [\ - ["metro-cache", "npm:0.80.12"],\ - ["exponential-backoff", "npm:3.1.1"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["metro-core", "npm:0.80.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-cache-key", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-cache-key-npm-0.80.12-38ad08be54-7a06601180.zip/node_modules/metro-cache-key/",\ - "packageDependencies": [\ - ["metro-cache-key", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-config", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-config-npm-0.80.12-2cfceb58bb-2d11745d32.zip/node_modules/metro-config/",\ - "packageDependencies": [\ - ["metro-config", "npm:0.80.12"],\ - ["connect", "npm:3.7.0"],\ - ["cosmiconfig", "npm:5.2.1"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["jest-validate", "npm:29.7.0"],\ - ["metro", "npm:0.80.12"],\ - ["metro-cache", "npm:0.80.12"],\ - ["metro-core", "npm:0.80.12"],\ - ["metro-runtime", "npm:0.80.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-core", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-core-npm-0.80.12-ff30cce463-d29ab20df4.zip/node_modules/metro-core/",\ - "packageDependencies": [\ - ["metro-core", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["lodash.throttle", "npm:4.1.1"],\ - ["metro-resolver", "npm:0.80.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-file-map", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-file-map-npm-0.80.12-b1afc5df14-a0c06da7c8.zip/node_modules/metro-file-map/",\ - "packageDependencies": [\ - ["metro-file-map", "npm:0.80.12"],\ - ["anymatch", "npm:3.1.2"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["fb-watchman", "npm:2.0.1"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["invariant", "npm:2.2.4"],\ - ["jest-worker", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["node-abort-controller", "npm:3.1.1"],\ - ["nullthrows", "npm:1.1.1"],\ - ["walker", "npm:1.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-minify-terser", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-minify-terser-npm-0.80.12-7e0e86c5f6-ff527b3f04.zip/node_modules/metro-minify-terser/",\ - "packageDependencies": [\ - ["metro-minify-terser", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["terser", "npm:5.33.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-react-native-babel-preset", [\ - ["npm:0.66.0", {\ - "packageLocation": "./.yarn/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-df77573df3.zip/node_modules/metro-react-native-babel-preset/",\ - "packageDependencies": [\ - ["metro-react-native-babel-preset", "npm:0.66.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0", {\ - "packageLocation": "./.yarn/__virtual__/metro-react-native-babel-preset-virtual-e00a56a58e/0/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-df77573df3.zip/node_modules/metro-react-native-babel-preset/",\ - "packageDependencies": [\ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"],\ - ["@babel/core", "npm:7.14.2"],\ - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-proposal-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"],\ - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"],\ - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"],\ - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"],\ - ["@babel/plugin-transform-object-assign", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"],\ - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"],\ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"],\ - ["@babel/plugin-transform-react-jsx-self", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"],\ - ["@babel/plugin-transform-react-jsx-source", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"],\ - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"],\ - ["@babel/plugin-transform-runtime", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"],\ - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"],\ - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"],\ - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@types/babel__core", null],\ - ["react-refresh", "npm:0.4.3"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-resolver", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-resolver-npm-0.80.12-de2c2a6cdf-e8609f1b93.zip/node_modules/metro-resolver/",\ - "packageDependencies": [\ - ["metro-resolver", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-runtime", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-runtime-npm-0.80.12-8e7410ce37-8a09e7001b.zip/node_modules/metro-runtime/",\ - "packageDependencies": [\ - ["metro-runtime", "npm:0.80.12"],\ - ["@babel/runtime", "npm:7.25.6"],\ - ["flow-enums-runtime", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-source-map", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-source-map-npm-0.80.12-be9e4ab885-ad6e0cf7f4.zip/node_modules/metro-source-map/",\ - "packageDependencies": [\ - ["metro-source-map", "npm:0.80.12"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["invariant", "npm:2.2.4"],\ - ["metro-symbolicate", "npm:0.80.12"],\ - ["nullthrows", "npm:1.1.1"],\ - ["ob1", "npm:0.80.12"],\ - ["source-map", "npm:0.5.7"],\ - ["vlq", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-symbolicate", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-symbolicate-npm-0.80.12-e606a89ac8-0c1dd05569.zip/node_modules/metro-symbolicate/",\ - "packageDependencies": [\ - ["metro-symbolicate", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["invariant", "npm:2.2.4"],\ - ["metro-source-map", "npm:0.80.12"],\ - ["nullthrows", "npm:1.1.1"],\ - ["source-map", "npm:0.5.7"],\ - ["through2", "npm:2.0.5"],\ - ["vlq", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-transform-plugins", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-transform-plugins-npm-0.80.12-07eb90f0b6-801510bde9.zip/node_modules/metro-transform-plugins/",\ - "packageDependencies": [\ - ["metro-transform-plugins", "npm:0.80.12"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/template", "npm:7.12.13"],\ - ["@babel/traverse", "npm:7.25.6"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["metro-transform-worker", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/metro-transform-worker-npm-0.80.12-382c009c6c-a0802ebbc3.zip/node_modules/metro-transform-worker/",\ - "packageDependencies": [\ - ["metro-transform-worker", "npm:0.80.12"],\ - ["@babel/core", "npm:7.25.2"],\ - ["@babel/generator", "npm:7.25.6"],\ - ["@babel/parser", "npm:7.25.6"],\ - ["@babel/types", "npm:7.25.6"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["metro", "npm:0.80.12"],\ - ["metro-babel-transformer", "npm:0.80.12"],\ - ["metro-cache", "npm:0.80.12"],\ - ["metro-cache-key", "npm:0.80.12"],\ - ["metro-minify-terser", "npm:0.80.12"],\ - ["metro-source-map", "npm:0.80.12"],\ - ["metro-transform-plugins", "npm:0.80.12"],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["micromatch", [\ - ["npm:3.1.10", {\ - "packageLocation": "./.yarn/cache/micromatch-npm-3.1.10-016e80c79d-4102bac836.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.4", {\ - "packageLocation": "./.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-c499da5aad.zip/node_modules/micromatch/",\ - "packageDependencies": [\ - ["micromatch", "npm:4.0.4"],\ - ["braces", "npm:3.0.2"],\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.8", {\ - "packageLocation": "./.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-6bf2a01672.zip/node_modules/micromatch/",\ - "packageDependencies": [\ - ["micromatch", "npm:4.0.8"],\ - ["braces", "npm:3.0.3"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["microtime", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/unplugged/microtime-npm-3.0.0-eb762146b0/node_modules/microtime/",\ - "packageDependencies": [\ - ["microtime", "npm:3.0.0"],\ - ["node-addon-api", "npm:1.7.2"],\ - ["node-gyp", "npm:8.0.0"],\ - ["node-gyp-build", "npm:3.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mime", [\ - ["npm:1.6.0", {\ - "packageLocation": "./.yarn/cache/mime-npm-1.6.0-60ae95038a-b7d98bb1e0.zip/node_modules/mime/",\ - "packageDependencies": [\ - ["mime", "npm:1.6.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.6.0", {\ - "packageLocation": "./.yarn/cache/mime-npm-2.6.0-88b89d8de0-7da117808b.zip/node_modules/mime/",\ - "packageDependencies": [\ - ["mime", "npm:2.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mime-db", [\ - ["npm:1.44.0", {\ - "packageLocation": "./.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-7cde7b1d8e.zip/node_modules/mime-db/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.44.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.47.0", {\ - "packageLocation": "./.yarn/cache/mime-db-npm-1.47.0-a85d74ef62-1f91f81149.zip/node_modules/mime-db/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.47.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.52.0", {\ - "packageLocation": "./.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-54bb60bf39.zip/node_modules/mime-db/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.52.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.53.0", {\ - "packageLocation": "./.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-82409c568a.zip/node_modules/mime-db/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.53.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mime-types", [\ - ["npm:2.1.27", {\ - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-056a862572.zip/node_modules/mime-types/",\ - "packageDependencies": [\ - ["mime-types", "npm:2.1.27"],\ - ["mime-db", "npm:1.44.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.30", {\ - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.30-500b101efd-b490804d57.zip/node_modules/mime-types/",\ - "packageDependencies": [\ - ["mime-types", "npm:2.1.30"],\ - ["mime-db", "npm:1.47.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.35", {\ - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89aa9651b6.zip/node_modules/mime-types/",\ - "packageDependencies": [\ - ["mime-types", "npm:2.1.35"],\ - ["mime-db", "npm:1.52.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mimic-fn", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.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-034c78753b.zip/node_modules/mimic-response/",\ - "packageDependencies": [\ - ["mimic-response", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-7e71904761.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-bfc6dd03c5.zip/node_modules/min-indent/",\ - "packageDependencies": [\ - ["min-indent", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minimatch", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-3b3f17f765.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["minimatch", "npm:3.0.4"],\ - ["brace-expansion", "npm:1.1.11"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.2", {\ - "packageLocation": "./.yarn/cache/minimatch-npm-3.1.2-9405269906-e0b25b04cd.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["minimatch", "npm:3.1.2"],\ - ["brace-expansion", "npm:1.1.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minimist", [\ - ["npm:1.2.5", {\ - "packageLocation": "./.yarn/cache/minimist-npm-1.2.5-ced0e1f617-9dff2c7d84.zip/node_modules/minimist/",\ - "packageDependencies": [\ - ["minimist", "npm:1.2.5"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.2.8", {\ - "packageLocation": "./.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-908491b6cc.zip/node_modules/minimist/",\ - "packageDependencies": [\ - ["minimist", "npm:1.2.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minimist-options", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip/node_modules/minimist-options/",\ - "packageDependencies": [\ - ["minimist-options", "npm:4.1.0"],\ - ["arrify", "npm:1.0.1"],\ - ["is-plain-obj", "npm:1.1.0"],\ - ["kind-of", "npm:6.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass", [\ - ["npm:3.1.3", {\ - "packageLocation": "./.yarn/cache/minipass-npm-3.1.3-af723e33f3-cf2aec122a.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-14df761028.zip/node_modules/minipass-collect/",\ - "packageDependencies": [\ - ["minipass-collect", "npm:1.0.2"],\ - ["minipass", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-fetch", [\ - ["npm:1.3.3", {\ - "packageLocation": "./.yarn/cache/minipass-fetch-npm-1.3.3-6dd11d4b13-7ae4b649a3.zip/node_modules/minipass-fetch/",\ - "packageDependencies": [\ - ["minipass-fetch", "npm:1.3.3"],\ - ["encoding", "npm:0.1.13"],\ - ["minipass", "npm:3.1.3"],\ - ["minipass-sized", "npm:1.0.3"],\ - ["minizlib", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-flush", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.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-b14240dac0.zip/node_modules/minipass-pipeline/",\ - "packageDependencies": [\ - ["minipass-pipeline", "npm:1.2.4"],\ - ["minipass", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-sized", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-40982d8d83.zip/node_modules/minipass-sized/",\ - "packageDependencies": [\ - ["minipass-sized", "npm:1.0.3"],\ - ["minipass", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minizlib", [\ - ["npm:2.1.2", {\ - "packageLocation": "./.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-ae0f45436f.zip/node_modules/minizlib/",\ - "packageDependencies": [\ - ["minizlib", "npm:2.1.2"],\ - ["minipass", "npm:3.1.3"],\ - ["yallist", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mixin-deep", [\ - ["npm:1.3.2", {\ - "packageLocation": "./.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-820d5a51fc.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.6", {\ - "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip/node_modules/mkdirp/",\ - "packageDependencies": [\ - ["mkdirp", "npm:0.5.6"],\ - ["minimist", "npm:1.2.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-d71b8dcd4b.zip/node_modules/mkdirp/",\ - "packageDependencies": [\ - ["mkdirp", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["modify-values", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/modify-values-npm-1.0.1-9b2377e166-16fa93f7dd.zip/node_modules/modify-values/",\ - "packageDependencies": [\ - ["modify-values", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ms", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip/node_modules/ms/",\ - "packageDependencies": [\ - ["ms", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.2", {\ - "packageLocation": "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/",\ - "packageDependencies": [\ - ["ms", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.3", {\ - "packageLocation": "./.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip/node_modules/ms/",\ - "packageDependencies": [\ - ["ms", "npm:2.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mute-stream", [\ - ["npm:0.0.8", {\ - "packageLocation": "./.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-a2d2e79dde.zip/node_modules/mute-stream/",\ - "packageDependencies": [\ - ["mute-stream", "npm:0.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nanomatch", [\ - ["npm:1.2.13", {\ - "packageLocation": "./.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-5c4ec7d626.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"\ - }]\ - ]],\ - ["natural-compare", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip/node_modules/natural-compare/",\ - "packageDependencies": [\ - ["natural-compare", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["negotiator", [\ - ["npm:0.6.3", {\ - "packageLocation": "./.yarn/cache/negotiator-npm-0.6.3-9d50e36171-2723fb822a.zip/node_modules/negotiator/",\ - "packageDependencies": [\ - ["negotiator", "npm:0.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["neo-async", [\ - ["npm:2.6.2", {\ - "packageLocation": "./.yarn/cache/neo-async-npm-2.6.2-75d6902586-1a7948fea8.zip/node_modules/neo-async/",\ - "packageDependencies": [\ - ["neo-async", "npm:2.6.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nice-try", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip/node_modules/nice-try/",\ - "packageDependencies": [\ - ["nice-try", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["no-case", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/no-case-npm-3.0.4-12884c3d98-0b2ebc113d.zip/node_modules/no-case/",\ - "packageDependencies": [\ - ["no-case", "npm:3.0.4"],\ - ["lower-case", "npm:2.0.2"],\ - ["tslib", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nocache", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/nocache-npm-3.0.4-9393fdc373-e980eac3c6.zip/node_modules/nocache/",\ - "packageDependencies": [\ - ["nocache", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-abort-controller", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-0a2cdb7ec0.zip/node_modules/node-abort-controller/",\ - "packageDependencies": [\ - ["node-abort-controller", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-addon-api", [\ - ["npm:1.7.2", {\ - "packageLocation": "./.yarn/unplugged/node-addon-api-npm-1.7.2-c341ccaeb6/node_modules/node-addon-api/",\ - "packageDependencies": [\ - ["node-addon-api", "npm:1.7.2"],\ - ["node-gyp", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-dir", [\ - ["npm:0.1.17", {\ - "packageLocation": "./.yarn/cache/node-dir-npm-0.1.17-e25963e120-281fdea12d.zip/node_modules/node-dir/",\ - "packageDependencies": [\ - ["node-dir", "npm:0.1.17"],\ - ["minimatch", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-fetch", [\ - ["npm:2.6.1", {\ - "packageLocation": "./.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-0b54e56681.zip/node_modules/node-fetch/",\ - "packageDependencies": [\ - ["node-fetch", "npm:2.6.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.7.0", {\ - "packageLocation": "./.yarn/cache/node-fetch-npm-2.7.0-587d57004e-b24f8a3dc9.zip/node_modules/node-fetch/",\ - "packageDependencies": [\ - ["node-fetch", "npm:2.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0", {\ - "packageLocation": "./.yarn/__virtual__/node-fetch-virtual-aeed957619/0/cache/node-fetch-npm-2.7.0-587d57004e-b24f8a3dc9.zip/node_modules/node-fetch/",\ - "packageDependencies": [\ - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"],\ - ["@types/encoding", null],\ - ["encoding", null],\ - ["whatwg-url", "npm:5.0.0"]\ - ],\ - "packagePeers": [\ - "@types/encoding",\ - "encoding"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-forge", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/node-forge-npm-1.3.1-f31fd566cc-05bab68686.zip/node_modules/node-forge/",\ - "packageDependencies": [\ - ["node-forge", "npm:1.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-gyp", [\ - ["npm:8.0.0", {\ - "packageLocation": "./.yarn/unplugged/node-gyp-npm-8.0.0-a27599670d/node_modules/node-gyp/",\ - "packageDependencies": [\ - ["node-gyp", "npm:8.0.0"],\ - ["env-paths", "npm:2.2.1"],\ - ["glob", "npm:7.1.7"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["make-fetch-happen", "npm:8.0.14"],\ - ["nopt", "npm:5.0.0"],\ - ["npmlog", "npm:4.1.2"],\ - ["rimraf", "npm:3.0.2"],\ - ["semver", "npm:7.3.5"],\ - ["tar", "npm:6.1.0"],\ - ["which", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-gyp-build", [\ - ["npm:3.9.0", {\ - "packageLocation": "./.yarn/cache/node-gyp-build-npm-3.9.0-b5d3188708-c94f1fc077.zip/node_modules/node-gyp-build/",\ - "packageDependencies": [\ - ["node-gyp-build", "npm:3.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-int64", [\ - ["npm:0.4.0", {\ - "packageLocation": "./.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-b7afc2b65e.zip/node_modules/node-int64/",\ - "packageDependencies": [\ - ["node-int64", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-modules-regexp", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-9954190353.zip/node_modules/node-modules-regexp/",\ - "packageDependencies": [\ - ["node-modules-regexp", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-notifier", [\ - ["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.5"],\ - ["shellwords", "npm:0.1.1"],\ - ["uuid", "npm:8.3.2"],\ - ["which", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-releases", [\ - ["npm:1.1.72", {\ - "packageLocation": "./.yarn/cache/node-releases-npm-1.1.72-662e905d8e-5fdc3f2cdd.zip/node_modules/node-releases/",\ - "packageDependencies": [\ - ["node-releases", "npm:1.1.72"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.18", {\ - "packageLocation": "./.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip/node_modules/node-releases/",\ - "packageDependencies": [\ - ["node-releases", "npm:2.0.18"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-stream-zip", [\ - ["npm:1.15.0", {\ - "packageLocation": "./.yarn/cache/node-stream-zip-npm-1.15.0-47adb9fcfb-3fb56144d2.zip/node_modules/node-stream-zip/",\ - "packageDependencies": [\ - ["node-stream-zip", "npm:1.15.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nopt", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/nopt-npm-5.0.0-304b40fbfe-00f9bb2d16.zip/node_modules/nopt/",\ - "packageDependencies": [\ - ["nopt", "npm:5.0.0"],\ - ["abbrev", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["normalize-package-data", [\ - ["npm:2.5.0", {\ - "packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-644f830a8b.zip/node_modules/normalize-package-data/",\ - "packageDependencies": [\ - ["normalize-package-data", "npm:2.5.0"],\ - ["hosted-git-info", "npm:2.8.9"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["semver", "npm:5.7.1"],\ - ["validate-npm-package-license", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.2", {\ - "packageLocation": "./.yarn/cache/normalize-package-data-npm-3.0.2-4ca0cf04d6-b006f9359b.zip/node_modules/normalize-package-data/",\ - "packageDependencies": [\ - ["normalize-package-data", "npm:3.0.2"],\ - ["hosted-git-info", "npm:4.0.2"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["semver", "npm:7.3.5"],\ - ["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-7e9cbdcf7f.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-88eeb4da89.zip/node_modules/normalize-path/",\ - "packageDependencies": [\ - ["normalize-path", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["normalize-url", [\ - ["npm:3.3.0", {\ - "packageLocation": "./.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-f6aa4a1a94.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-c70ee89880.zip/node_modules/normalize-url/",\ - "packageDependencies": [\ - ["normalize-url", "npm:4.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["npm-run-path", [\ - ["npm:2.0.2", {\ - "packageLocation": "./.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-acd5ad8164.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-5374c0cea4.zip/node_modules/npm-run-path/",\ - "packageDependencies": [\ - ["npm-run-path", "npm:4.0.1"],\ - ["path-key", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["npmlog", [\ - ["npm:4.1.2", {\ - "packageLocation": "./.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-b6b85c9f33.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"\ - }]\ - ]],\ - ["nullthrows", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-c7cf377a09.zip/node_modules/nullthrows/",\ - "packageDependencies": [\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["number-is-nan", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-13656bc9aa.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-d278126549.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-1809a366d2.zip/node_modules/oauth-sign/",\ - "packageDependencies": [\ - ["oauth-sign", "npm:0.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ob1", [\ - ["npm:0.80.12", {\ - "packageLocation": "./.yarn/cache/ob1-npm-0.80.12-b815aaa055-c78af51d6e.zip/node_modules/ob1/",\ - "packageDependencies": [\ - ["ob1", "npm:0.80.12"],\ - ["flow-enums-runtime", "npm:0.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object-assign", [\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.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-a9e35f07e3.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.10.3", {\ - "packageLocation": "./.yarn/cache/object-inspect-npm-1.10.3-5aa499f036-74e2a92c68.zip/node_modules/object-inspect/",\ - "packageDependencies": [\ - ["object-inspect", "npm:1.10.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object-keys", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-3d81d02674.zip/node_modules/object-keys/",\ - "packageDependencies": [\ - ["object-keys", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object-visit", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-77abf807de.zip/node_modules/object-visit/",\ - "packageDependencies": [\ - ["object-visit", "npm:1.0.1"],\ - ["isobject", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object.assign", [\ - ["npm:4.1.2", {\ - "packageLocation": "./.yarn/cache/object.assign-npm-4.1.2-d52edada1c-83fdff0208.zip/node_modules/object.assign/",\ - "packageDependencies": [\ - ["object.assign", "npm:4.1.2"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["has-symbols", "npm:1.0.2"],\ - ["object-keys", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object.entries", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/object.entries-npm-1.1.3-204f993709-42751e9470.zip/node_modules/object.entries/",\ - "packageDependencies": [\ - ["object.entries", "npm:1.1.3"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["has", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object.fromentries", [\ - ["npm:2.0.4", {\ - "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.4-cc608f8739-62ae902d1b.zip/node_modules/object.fromentries/",\ - "packageDependencies": [\ - ["object.fromentries", "npm:2.0.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["has", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object.pick", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-92d7226a6b.zip/node_modules/object.pick/",\ - "packageDependencies": [\ - ["object.pick", "npm:1.3.0"],\ - ["isobject", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["object.values", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/object.values-npm-1.1.3-dd86635500-528523a295.zip/node_modules/object.values/",\ - "packageDependencies": [\ - ["object.values", "npm:1.1.3"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["has", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["on-finished", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-1db595bd96.zip/node_modules/on-finished/",\ - "packageDependencies": [\ - ["on-finished", "npm:2.3.0"],\ - ["ee-first", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.4.1", {\ - "packageLocation": "./.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip/node_modules/on-finished/",\ - "packageDependencies": [\ - ["on-finished", "npm:2.4.1"],\ - ["ee-first", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["on-headers", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/on-headers-npm-1.0.2-e7cd3ea25e-870766c163.zip/node_modules/on-headers/",\ - "packageDependencies": [\ - ["on-headers", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["once", [\ - ["npm:1.4.0", {\ - "packageLocation": "./.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/",\ - "packageDependencies": [\ - ["once", "npm:1.4.0"],\ - ["wrappy", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["onetime", [\ - ["npm:5.1.2", {\ - "packageLocation": "./.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e9fd0695a0.zip/node_modules/onetime/",\ - "packageDependencies": [\ - ["onetime", "npm:5.1.2"],\ - ["mimic-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["open", [\ - ["npm:6.4.0", {\ - "packageLocation": "./.yarn/unplugged/open-npm-6.4.0-d2020c939f/node_modules/open/",\ - "packageDependencies": [\ - ["open", "npm:6.4.0"],\ - ["is-wsl", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.4.2", {\ - "packageLocation": "./.yarn/unplugged/open-npm-7.4.2-a378c23959/node_modules/open/",\ - "packageDependencies": [\ - ["open", "npm:7.4.2"],\ - ["is-docker", "npm:2.2.1"],\ - ["is-wsl", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["optionator", [\ - ["npm:0.8.3", {\ - "packageLocation": "./.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-6fa3c841b5.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"\ - }],\ - ["npm:0.9.1", {\ - "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-577e397aae-19cfb625ba.zip/node_modules/optionator/",\ - "packageDependencies": [\ - ["optionator", "npm:0.9.1"],\ - ["deep-is", "npm:0.1.3"],\ - ["fast-levenshtein", "npm:2.0.6"],\ - ["levn", "npm:0.4.1"],\ - ["prelude-ls", "npm:1.2.1"],\ - ["type-check", "npm:0.4.0"],\ - ["word-wrap", "npm:1.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ora", [\ - ["npm:5.1.0", {\ - "packageLocation": "./.yarn/cache/ora-npm-5.1.0-0f7ce18b2d-16c0f1f54d.zip/node_modules/ora/",\ - "packageDependencies": [\ - ["ora", "npm:5.1.0"],\ - ["chalk", "npm:4.1.1"],\ - ["cli-cursor", "npm:3.1.0"],\ - ["cli-spinners", "npm:2.6.0"],\ - ["is-interactive", "npm:1.0.0"],\ - ["log-symbols", "npm:4.1.0"],\ - ["mute-stream", "npm:0.0.8"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["wcwidth", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.4.1", {\ - "packageLocation": "./.yarn/cache/ora-npm-5.4.1-4f0343adb7-8d071828f4.zip/node_modules/ora/",\ - "packageDependencies": [\ - ["ora", "npm:5.4.1"],\ - ["bl", "npm:4.1.0"],\ - ["chalk", "npm:4.1.1"],\ - ["cli-cursor", "npm:3.1.0"],\ - ["cli-spinners", "npm:2.9.2"],\ - ["is-interactive", "npm:1.0.0"],\ - ["is-unicode-supported", "npm:0.1.0"],\ - ["log-symbols", "npm:4.1.0"],\ - ["strip-ansi", "npm:6.0.0"],\ - ["wcwidth", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["os-name", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/os-name-npm-4.0.0-a24c30b783-a1f1122587.zip/node_modules/os-name/",\ - "packageDependencies": [\ - ["os-name", "npm:4.0.0"],\ - ["macos-release", "npm:2.4.1"],\ - ["windows-release", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["os-tmpdir", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-5666560f7b.zip/node_modules/os-tmpdir/",\ - "packageDependencies": [\ - ["os-tmpdir", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-cancelable", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-2db3814fef.zip/node_modules/p-cancelable/",\ - "packageDependencies": [\ - ["p-cancelable", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-7f1b64db17.zip/node_modules/p-cancelable/",\ - "packageDependencies": [\ - ["p-cancelable", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-each-series", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-5fbe2f1f19.zip/node_modules/p-each-series/",\ - "packageDependencies": [\ - ["p-each-series", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-finally", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-93a654c53d.zip/node_modules/p-finally/",\ - "packageDependencies": [\ - ["p-finally", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-limit", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/p-limit-npm-1.3.0-fdb471d864-eb9d9bc378.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-84ff17f1a3.zip/node_modules/p-limit/",\ - "packageDependencies": [\ - ["p-limit", "npm:2.3.0"],\ - ["p-try", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.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-e2dceb9b49.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-83991734a9.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-513bd14a45.zip/node_modules/p-locate/",\ - "packageDependencies": [\ - ["p-locate", "npm:4.1.0"],\ - ["p-limit", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip/node_modules/p-locate/",\ - "packageDependencies": [\ - ["p-locate", "npm:5.0.0"],\ - ["p-limit", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-map", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-4677ae07c7-7ba4a2b1e2.zip/node_modules/p-map/",\ - "packageDependencies": [\ - ["p-map", "npm:4.0.0"],\ - ["aggregate-error", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-try", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/p-try-npm-1.0.0-7373139e40-20d9735f57.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-f8a8e9a769.zip/node_modules/p-try/",\ - "packageDependencies": [\ - ["p-try", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["package-json", [\ - ["npm:6.5.0", {\ - "packageLocation": "./.yarn/cache/package-json-npm-6.5.0-30e58237bb-adb8e49f35.zip/node_modules/package-json/",\ - "packageDependencies": [\ - ["package-json", "npm:6.5.0"],\ - ["got", "npm:9.6.0"],\ - ["registry-auth-token", "npm:4.2.1"],\ - ["registry-url", "npm:5.1.0"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["param-case", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/param-case-npm-3.0.4-cfb242ad97-b34227fd0f.zip/node_modules/param-case/",\ - "packageDependencies": [\ - ["param-case", "npm:3.0.4"],\ - ["dot-case", "npm:3.0.4"],\ - ["tslib", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parent-module", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip/node_modules/parent-module/",\ - "packageDependencies": [\ - ["parent-module", "npm:1.0.1"],\ - ["callsites", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse-github-repo-url", [\ - ["npm:1.4.1", {\ - "packageLocation": "./.yarn/cache/parse-github-repo-url-npm-1.4.1-a6f5f1254e-a584efd7ff.zip/node_modules/parse-github-repo-url/",\ - "packageDependencies": [\ - ["parse-github-repo-url", "npm:1.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse-json", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-39924c0ddb.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-0fe227d410.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.1.0", {\ - "packageLocation": "./.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-0c0c299347.zip/node_modules/parse-json/",\ - "packageDependencies": [\ - ["parse-json", "npm:5.1.0"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["error-ex", "npm:1.3.2"],\ - ["json-parse-even-better-errors", "npm:2.3.1"],\ - ["lines-and-columns", "npm:1.1.6"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "./.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip/node_modules/parse-json/",\ - "packageDependencies": [\ - ["parse-json", "npm:5.2.0"],\ - ["@babel/code-frame", "npm:7.12.13"],\ - ["error-ex", "npm:1.3.2"],\ - ["json-parse-even-better-errors", "npm:2.3.1"],\ - ["lines-and-columns", "npm:1.1.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse-path", [\ - ["npm:4.0.3", {\ - "packageLocation": "./.yarn/cache/parse-path-npm-4.0.3-6d729a9baf-7285b5d23f.zip/node_modules/parse-path/",\ - "packageDependencies": [\ - ["parse-path", "npm:4.0.3"],\ - ["is-ssh", "npm:1.3.3"],\ - ["protocols", "npm:1.4.8"],\ - ["qs", "npm:6.10.1"],\ - ["query-string", "npm:6.14.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse-url", [\ - ["npm:5.0.2", {\ - "packageLocation": "./.yarn/cache/parse-url-npm-5.0.2-ebef68506c-6e7c586d95.zip/node_modules/parse-url/",\ - "packageDependencies": [\ - ["parse-url", "npm:5.0.2"],\ - ["is-ssh", "npm:1.3.3"],\ - ["normalize-url", "npm:3.3.0"],\ - ["parse-path", "npm:4.0.3"],\ - ["protocols", "npm:1.4.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse5", [\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/parse5-npm-6.0.1-70a35a494a-dfb110581f.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-407cee8e0a.zip/node_modules/parseurl/",\ - "packageDependencies": [\ - ["parseurl", "npm:1.3.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pascalcase", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-f83681c3c8.zip/node_modules/pascalcase/",\ - "packageDependencies": [\ - ["pascalcase", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-dirname", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/path-dirname-npm-1.0.2-d158cba006-0d2f6604ae.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-fdb734f1d0.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-96e92643aa.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-505807199d.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-060840f92c.zip/node_modules/path-is-absolute/",\ - "packageDependencies": [\ - ["path-is-absolute", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-key", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/path-key-npm-2.0.1-b1a971833d-6e654864e3.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-55cd7a9dd4.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-962a85dd38.zip/node_modules/path-parse/",\ - "packageDependencies": [\ - ["path-parse", "npm:1.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-type", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/path-type-npm-1.1.0-3949afd6c1-59a4b2c0e5.zip/node_modules/path-type/",\ - "packageDependencies": [\ - ["path-type", "npm:1.1.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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-735b35e256.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-5b1e2daa24.zip/node_modules/path-type/",\ - "packageDependencies": [\ - ["path-type", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["performance-now", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip/node_modules/performance-now/",\ - "packageDependencies": [\ - ["performance-now", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["performance-testing", [\ - ["workspace:packages/performance-testing", {\ - "packageLocation": "./packages/performance-testing/",\ - "packageDependencies": [\ - ["performance-testing", "workspace:packages/performance-testing"],\ - ["@native-html/transient-render-engine", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine"],\ - ["benchmark", "npm:2.1.4"],\ - ["lodash", "npm:4.17.21"],\ - ["microtime", "npm:3.0.0"],\ - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["picocolors", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-a2ad60d94d.zip/node_modules/picocolors/",\ - "packageDependencies": [\ - ["picocolors", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["picomatch", [\ - ["npm:2.2.3", {\ - "packageLocation": "./.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-f1ea1c8122.zip/node_modules/picomatch/",\ - "packageDependencies": [\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.3.1", {\ - "packageLocation": "./.yarn/cache/picomatch-npm-2.3.1-c782cfd986-60c2595003.zip/node_modules/picomatch/",\ - "packageDependencies": [\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pify", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/pify-npm-2.3.0-8b63310934-9503aaeaf4.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-668c1dc8d9.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-8b97cbf9dc.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-11d207257a.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-b53a4a2e73.zip/node_modules/pinkie-promise/",\ - "packageDependencies": [\ - ["pinkie-promise", "npm:2.0.1"],\ - ["pinkie", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pirates", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/pirates-npm-4.0.1-377058e8fc-091e232aac.zip/node_modules/pirates/",\ - "packageDependencies": [\ - ["pirates", "npm:4.0.1"],\ - ["node-modules-regexp", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.6", {\ - "packageLocation": "./.yarn/cache/pirates-npm-4.0.6-a8ec571a43-d02dda76f4.zip/node_modules/pirates/",\ - "packageDependencies": [\ - ["pirates", "npm:4.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pkg-dir", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-70c9476ffe.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-9863e3f351.zip/node_modules/pkg-dir/",\ - "packageDependencies": [\ - ["pkg-dir", "npm:4.2.0"],\ - ["find-up", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["platform", [\ - ["npm:1.3.6", {\ - "packageLocation": "./.yarn/cache/platform-npm-1.3.6-8c3cef9352-1f2d8333e2.zip/node_modules/platform/",\ - "packageDependencies": [\ - ["platform", "npm:1.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["posix-character-classes", [\ - ["npm:0.1.1", {\ - "packageLocation": "./.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-dedb99913c.zip/node_modules/posix-character-classes/",\ - "packageDependencies": [\ - ["posix-character-classes", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["postcss-value-parser", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-dac294ad5f.zip/node_modules/postcss-value-parser/",\ - "packageDependencies": [\ - ["postcss-value-parser", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prelude-ls", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-946a9f60d3.zip/node_modules/prelude-ls/",\ - "packageDependencies": [\ - ["prelude-ls", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-0b9d2c7680.zip/node_modules/prelude-ls/",\ - "packageDependencies": [\ - ["prelude-ls", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prepend-file", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/prepend-file-npm-2.0.0-396312303b-79bcbed105.zip/node_modules/prepend-file/",\ - "packageDependencies": [\ - ["prepend-file", "npm:2.0.0"],\ - ["path-exists", "npm:4.0.0"],\ - ["temp-write", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prepend-http", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-7694a95254.zip/node_modules/prepend-http/",\ - "packageDependencies": [\ - ["prepend-http", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prettier", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-b3a03b35fa.zip/node_modules/prettier/",\ - "packageDependencies": [\ - ["prettier", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prettier-linter-helpers", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip/node_modules/prettier-linter-helpers/",\ - "packageDependencies": [\ - ["prettier-linter-helpers", "npm:1.0.0"],\ - ["fast-diff", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pretty-format", [\ - ["npm:26.6.2", {\ - "packageLocation": "./.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-94a4c661bf.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.3.0"],\ - ["react-is", "npm:17.0.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:29.7.0", {\ - "packageLocation": "./.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-dea96bc83c.zip/node_modules/pretty-format/",\ - "packageDependencies": [\ - ["pretty-format", "npm:29.7.0"],\ - ["@jest/schemas", "npm:29.6.3"],\ - ["ansi-styles", "npm:5.2.0"],\ - ["react-is", "npm:18.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["process-nextick-args", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.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-e6f0bcb71f.zip/node_modules/progress/",\ - "packageDependencies": [\ - ["progress", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["promise", [\ - ["npm:8.3.0", {\ - "packageLocation": "./.yarn/cache/promise-npm-8.3.0-fbfb957417-55e9d0d723.zip/node_modules/promise/",\ - "packageDependencies": [\ - ["promise", "npm:8.3.0"],\ - ["asap", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["promise-inflight", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-1560d413ea.zip/node_modules/promise-inflight/",\ - "packageDependencies": [\ - ["promise-inflight", "npm:1.0.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1", {\ - "packageLocation": "./.yarn/__virtual__/promise-inflight-virtual-f8ad9d313c/0/cache/promise-inflight-npm-1.0.1-5bb925afac-1560d413ea.zip/node_modules/promise-inflight/",\ - "packageDependencies": [\ - ["promise-inflight", "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1"],\ - ["@types/bluebird", null],\ - ["bluebird", null]\ - ],\ - "packagePeers": [\ - "@types/bluebird",\ - "bluebird"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["promise-retry", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-96e1a82453.zip/node_modules/promise-retry/",\ - "packageDependencies": [\ - ["promise-retry", "npm:2.0.1"],\ - ["err-code", "npm:2.0.3"],\ - ["retry", "npm:0.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prompts", [\ - ["npm:2.4.1", {\ - "packageLocation": "./.yarn/cache/prompts-npm-2.4.1-dd3df3be17-ee40d417a7.zip/node_modules/prompts/",\ - "packageDependencies": [\ - ["prompts", "npm:2.4.1"],\ - ["kleur", "npm:3.0.3"],\ - ["sisteransi", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.4.2", {\ - "packageLocation": "./.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-c52536521a.zip/node_modules/prompts/",\ - "packageDependencies": [\ - ["prompts", "npm:2.4.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-1d2b646255.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"\ - }]\ - ]],\ - ["protocols", [\ - ["npm:1.4.8", {\ - "packageLocation": "./.yarn/cache/protocols-npm-1.4.8-f05b04a69f-2d555c013d.zip/node_modules/protocols/",\ - "packageDependencies": [\ - ["protocols", "npm:1.4.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["psl", [\ - ["npm:1.8.0", {\ - "packageLocation": "./.yarn/cache/psl-npm-1.8.0-226099d70e-5f62a8eca0.zip/node_modules/psl/",\ - "packageDependencies": [\ - ["psl", "npm:1.8.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pump", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip/node_modules/pump/",\ - "packageDependencies": [\ - ["pump", "npm:3.0.0"],\ - ["end-of-stream", "npm:1.4.4"],\ - ["once", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["punycode", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-939daa010c.zip/node_modules/punycode/",\ - "packageDependencies": [\ - ["punycode", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pupa", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/pupa-npm-2.1.1-fb256825ba-49529e5037.zip/node_modules/pupa/",\ - "packageDependencies": [\ - ["pupa", "npm:2.1.1"],\ - ["escape-goat", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["q", [\ - ["npm:1.5.1", {\ - "packageLocation": "./.yarn/cache/q-npm-1.5.1-a28b3cfeaf-70c4a30b30.zip/node_modules/q/",\ - "packageDependencies": [\ - ["q", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["qs", [\ - ["npm:6.10.1", {\ - "packageLocation": "./.yarn/cache/qs-npm-6.10.1-12d3ab7795-95f6725796.zip/node_modules/qs/",\ - "packageDependencies": [\ - ["qs", "npm:6.10.1"],\ - ["side-channel", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.5.2", {\ - "packageLocation": "./.yarn/cache/qs-npm-6.5.2-dbf9d8386b-ef17caa6e1.zip/node_modules/qs/",\ - "packageDependencies": [\ - ["qs", "npm:6.5.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["query-string", [\ - ["npm:6.14.1", {\ - "packageLocation": "./.yarn/cache/query-string-npm-6.14.1-dad16e37e6-95f5a372f7.zip/node_modules/query-string/",\ - "packageDependencies": [\ - ["query-string", "npm:6.14.1"],\ - ["decode-uri-component", "npm:0.2.0"],\ - ["filter-obj", "npm:1.1.0"],\ - ["split-on-first", "npm:1.1.0"],\ - ["strict-uri-encode", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["querystring", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/querystring-npm-0.2.1-15cb60859d-5ae2eeb8c6.zip/node_modules/querystring/",\ - "packageDependencies": [\ - ["querystring", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["queue", [\ - ["npm:6.0.2", {\ - "packageLocation": "./.yarn/cache/queue-npm-6.0.2-ebbcf599cf-3437954ef1.zip/node_modules/queue/",\ - "packageDependencies": [\ - ["queue", "npm:6.0.2"],\ - ["inherits", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["queue-microtask", [\ - ["npm:1.2.3", {\ - "packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-72900df061.zip/node_modules/queue-microtask/",\ - "packageDependencies": [\ - ["queue-microtask", "npm:1.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["quick-lru", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-5c7c75f1c6.zip/node_modules/quick-lru/",\ - "packageDependencies": [\ - ["quick-lru", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.1", {\ - "packageLocation": "./.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-a516faa255.zip/node_modules/quick-lru/",\ - "packageDependencies": [\ - ["quick-lru", "npm:5.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ramda", [\ - ["npm:0.27.2", {\ - "packageLocation": "./.yarn/cache/ramda-npm-0.27.2-5f4ede0eb9-75b359ed0e.zip/node_modules/ramda/",\ - "packageDependencies": [\ - ["ramda", "npm:0.27.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["range-parser", [\ - ["npm:1.2.1", {\ - "packageLocation": "./.yarn/cache/range-parser-npm-1.2.1-1a470fa390-ce21ef2a2d.zip/node_modules/range-parser/",\ - "packageDependencies": [\ - ["range-parser", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rc", [\ - ["npm:1.2.8", {\ - "packageLocation": "./.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip/node_modules/rc/",\ - "packageDependencies": [\ - ["rc", "npm:1.2.8"],\ - ["deep-extend", "npm:0.6.0"],\ - ["ini", "npm:1.3.8"],\ - ["minimist", "npm:1.2.5"],\ - ["strip-json-comments", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react", [\ - ["npm:17.0.2", {\ - "packageLocation": "./.yarn/cache/react-npm-17.0.2-99ba37d931-ece60c31c1.zip/node_modules/react/",\ - "packageDependencies": [\ - ["react", "npm:17.0.2"],\ - ["loose-envify", "npm:1.4.0"],\ - ["object-assign", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-devtools-core", [\ - ["npm:5.3.1", {\ - "packageLocation": "./.yarn/cache/react-devtools-core-npm-5.3.1-57e06d278c-247056e0cb.zip/node_modules/react-devtools-core/",\ - "packageDependencies": [\ - ["react-devtools-core", "npm:5.3.1"],\ - ["shell-quote", "npm:1.8.1"],\ - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-is", [\ - ["npm:16.13.1", {\ - "packageLocation": "./.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip/node_modules/react-is/",\ - "packageDependencies": [\ - ["react-is", "npm:16.13.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:17.0.2", {\ - "packageLocation": "./.yarn/cache/react-is-npm-17.0.2-091bbb8db6-73b36281e5.zip/node_modules/react-is/",\ - "packageDependencies": [\ - ["react-is", "npm:17.0.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:18.3.1", {\ - "packageLocation": "./.yarn/cache/react-is-npm-18.3.1-370a81e1e9-d5f60c87d2.zip/node_modules/react-is/",\ - "packageDependencies": [\ - ["react-is", "npm:18.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-native", [\ - ["npm:0.74.5", {\ - "packageLocation": "./.yarn/unplugged/react-native-virtual-ae095fdbcb/node_modules/react-native/",\ - "packageDependencies": [\ - ["react-native", "npm:0.74.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5", {\ - "packageLocation": "./.yarn/unplugged/react-native-virtual-ae095fdbcb/node_modules/react-native/",\ - "packageDependencies": [\ - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"],\ - ["@jest/create-cache-key-function", "npm:29.7.0"],\ - ["@react-native-community/cli", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-android", "npm:13.6.9"],\ - ["@react-native-community/cli-platform-ios", "npm:13.6.9"],\ - ["@react-native/assets-registry", "npm:0.74.87"],\ - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"],\ - ["@react-native/community-cli-plugin", "npm:0.74.87"],\ - ["@react-native/gradle-plugin", "npm:0.74.87"],\ - ["@react-native/js-polyfills", "npm:0.74.87"],\ - ["@react-native/normalize-colors", "npm:0.74.87"],\ - ["@react-native/virtualized-lists", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87"],\ - ["@types/react", null],\ - ["abort-controller", "npm:3.0.0"],\ - ["anser", "npm:1.4.10"],\ - ["ansi-regex", "npm:5.0.0"],\ - ["base64-js", "npm:1.5.1"],\ - ["chalk", "npm:4.1.1"],\ - ["event-target-shim", "npm:5.0.1"],\ - ["flow-enums-runtime", "npm:0.0.6"],\ - ["invariant", "npm:2.2.4"],\ - ["jest-environment-node", "npm:29.7.0"],\ - ["jsc-android", "npm:250231.0.0"],\ - ["memoize-one", "npm:5.2.1"],\ - ["metro-runtime", "npm:0.80.12"],\ - ["metro-source-map", "npm:0.80.12"],\ - ["mkdirp", "npm:0.5.6"],\ - ["nullthrows", "npm:1.1.1"],\ - ["pretty-format", "npm:26.6.2"],\ - ["promise", "npm:8.3.0"],\ - ["react", null],\ - ["react-devtools-core", "npm:5.3.1"],\ - ["react-refresh", "npm:0.14.2"],\ - ["react-shallow-renderer", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0"],\ - ["regenerator-runtime", "npm:0.13.11"],\ - ["scheduler", "npm:0.24.0-canary-efb381bbf-20230505"],\ - ["stacktrace-parser", "npm:0.1.10"],\ - ["whatwg-fetch", "npm:3.6.20"],\ - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"],\ - ["yargs", "npm:17.7.2"]\ - ],\ - "packagePeers": [\ - "@types/react",\ - "react"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-refresh", [\ - ["npm:0.14.2", {\ - "packageLocation": "./.yarn/cache/react-refresh-npm-0.14.2-95df341b4d-512abf9727.zip/node_modules/react-refresh/",\ - "packageDependencies": [\ - ["react-refresh", "npm:0.14.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.4.3", {\ - "packageLocation": "./.yarn/cache/react-refresh-npm-0.4.3-9a91aa5898-0cb1e09311.zip/node_modules/react-refresh/",\ - "packageDependencies": [\ - ["react-refresh", "npm:0.4.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-shallow-renderer", [\ - ["npm:16.15.0", {\ - "packageLocation": "./.yarn/cache/react-shallow-renderer-npm-16.15.0-cf95219885-06457fe5bc.zip/node_modules/react-shallow-renderer/",\ - "packageDependencies": [\ - ["react-shallow-renderer", "npm:16.15.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0", {\ - "packageLocation": "./.yarn/__virtual__/react-shallow-renderer-virtual-a0e01b2da2/0/cache/react-shallow-renderer-npm-16.15.0-cf95219885-06457fe5bc.zip/node_modules/react-shallow-renderer/",\ - "packageDependencies": [\ - ["react-shallow-renderer", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0"],\ - ["@types/react", null],\ - ["object-assign", "npm:4.1.1"],\ - ["react", null],\ - ["react-is", "npm:18.3.1"]\ - ],\ - "packagePeers": [\ - "@types/react",\ - "react"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["read-pkg", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-a0f5d5e322.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-398903ebae.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-eb696e6052.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.2.0"],\ - ["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-d18399a0f4.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:3.0.0", {\ - "packageLocation": "./.yarn/cache/read-pkg-up-npm-3.0.0-3d7faf047f-16175573f2.zip/node_modules/read-pkg-up/",\ - "packageDependencies": [\ - ["read-pkg-up", "npm:3.0.0"],\ - ["find-up", "npm:2.1.0"],\ - ["read-pkg", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.0.1", {\ - "packageLocation": "./.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.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-d04c677c17.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-b80b3e6a7f.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"\ - }],\ - ["npm:3.6.2", {\ - "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-d9e3e53193.zip/node_modules/readable-stream/",\ - "packageDependencies": [\ - ["readable-stream", "npm:3.6.2"],\ - ["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-14af3408ac.zip/node_modules/readdirp/",\ - "packageDependencies": [\ - ["readdirp", "npm:2.2.1"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["micromatch", "npm:3.1.10"],\ - ["readable-stream", "npm:2.3.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.5.0", {\ - "packageLocation": "./.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-5441c90a13.zip/node_modules/readdirp/",\ - "packageDependencies": [\ - ["readdirp", "npm:3.5.0"],\ - ["picomatch", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["readline", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/readline-npm-1.3.0-c1788eeabc-2cb7c27433.zip/node_modules/readline/",\ - "packageDependencies": [\ - ["readline", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["recast", [\ - ["npm:0.21.5", {\ - "packageLocation": "./.yarn/cache/recast-npm-0.21.5-8dcd3e46d3-b41da2bcf7.zip/node_modules/recast/",\ - "packageDependencies": [\ - ["recast", "npm:0.21.5"],\ - ["ast-types", "npm:0.15.2"],\ - ["esprima", "npm:4.0.1"],\ - ["source-map", "npm:0.6.1"],\ - ["tslib", "npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rechoir", [\ - ["npm:0.6.2", {\ - "packageLocation": "./.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-fe76bf9c21.zip/node_modules/rechoir/",\ - "packageDependencies": [\ - ["rechoir", "npm:0.6.2"],\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["redent", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/redent-npm-1.0.0-b4da60611f-2bb8f76fda.zip/node_modules/redent/",\ - "packageDependencies": [\ - ["redent", "npm:1.0.0"],\ - ["indent-string", "npm:2.1.0"],\ - ["strip-indent", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip/node_modules/redent/",\ - "packageDependencies": [\ - ["redent", "npm:3.0.0"],\ - ["indent-string", "npm:4.0.0"],\ - ["strip-indent", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regenerate", [\ - ["npm:1.4.2", {\ - "packageLocation": "./.yarn/cache/regenerate-npm-1.4.2-b296c5b63a-dc6c95ae4b.zip/node_modules/regenerate/",\ - "packageDependencies": [\ - ["regenerate", "npm:1.4.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regenerate-unicode-properties", [\ - ["npm:10.2.0", {\ - "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-9150eae6fe.zip/node_modules/regenerate-unicode-properties/",\ - "packageDependencies": [\ - ["regenerate-unicode-properties", "npm:10.2.0"],\ - ["regenerate", "npm:1.4.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.2.0", {\ - "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-403fe5bd7b.zip/node_modules/regenerate-unicode-properties/",\ - "packageDependencies": [\ - ["regenerate-unicode-properties", "npm:8.2.0"],\ - ["regenerate", "npm:1.4.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regenerator-runtime", [\ - ["npm:0.13.11", {\ - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-d493e9e118.zip/node_modules/regenerator-runtime/",\ - "packageDependencies": [\ - ["regenerator-runtime", "npm:0.13.11"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.13.8", {\ - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.8-0450f887d6-f56633f805.zip/node_modules/regenerator-runtime/",\ - "packageDependencies": [\ - ["regenerator-runtime", "npm:0.13.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.14.1", {\ - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-5db3161abb.zip/node_modules/regenerator-runtime/",\ - "packageDependencies": [\ - ["regenerator-runtime", "npm:0.14.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regenerator-transform", [\ - ["npm:0.14.5", {\ - "packageLocation": "./.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-f9db6e6f00.zip/node_modules/regenerator-transform/",\ - "packageDependencies": [\ - ["regenerator-transform", "npm:0.14.5"],\ - ["@babel/runtime", "npm:7.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regex-not", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3081403de7.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"\ - }]\ - ]],\ - ["regexp.prototype.flags", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.3.1-f0c34f894f-751e69bf6c.zip/node_modules/regexp.prototype.flags/",\ - "packageDependencies": [\ - ["regexp.prototype.flags", "npm:1.3.1"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regexpp", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/regexpp-npm-3.1.0-94a1868d49-2f68db77f3.zip/node_modules/regexpp/",\ - "packageDependencies": [\ - ["regexpp", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regexpu-core", [\ - ["npm:4.7.1", {\ - "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-3d1b6c6117.zip/node_modules/regexpu-core/",\ - "packageDependencies": [\ - ["regexpu-core", "npm:4.7.1"],\ - ["regenerate", "npm:1.4.2"],\ - ["regenerate-unicode-properties", "npm:8.2.0"],\ - ["regjsgen", "npm:0.5.2"],\ - ["regjsparser", "npm:0.6.9"],\ - ["unicode-match-property-ecmascript", "npm:1.0.4"],\ - ["unicode-match-property-value-ecmascript", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.3.2", {\ - "packageLocation": "./.yarn/cache/regexpu-core-npm-5.3.2-89effc52a2-ed0d7c66d8.zip/node_modules/regexpu-core/",\ - "packageDependencies": [\ - ["regexpu-core", "npm:5.3.2"],\ - ["@babel/regjsgen", "npm:0.8.0"],\ - ["regenerate", "npm:1.4.2"],\ - ["regenerate-unicode-properties", "npm:10.2.0"],\ - ["regjsparser", "npm:0.9.1"],\ - ["unicode-match-property-ecmascript", "npm:2.0.0"],\ - ["unicode-match-property-value-ecmascript", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["registry-auth-token", [\ - ["npm:4.2.1", {\ - "packageLocation": "./.yarn/cache/registry-auth-token-npm-4.2.1-200e2be697-d1a5c28c0b.zip/node_modules/registry-auth-token/",\ - "packageDependencies": [\ - ["registry-auth-token", "npm:4.2.1"],\ - ["rc", "npm:1.2.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["registry-url", [\ - ["npm:5.1.0", {\ - "packageLocation": "./.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-bcea86c84a.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-4f8dc74b5a.zip/node_modules/regjsgen/",\ - "packageDependencies": [\ - ["regjsgen", "npm:0.5.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["regjsparser", [\ - ["npm:0.6.9", {\ - "packageLocation": "./.yarn/cache/regjsparser-npm-0.6.9-4fe5869344-7654f46607.zip/node_modules/regjsparser/",\ - "packageDependencies": [\ - ["regjsparser", "npm:0.6.9"],\ - ["jsesc", "npm:0.5.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.9.1", {\ - "packageLocation": "./.yarn/cache/regjsparser-npm-0.9.1-47cd7c2ee2-be7757ef76.zip/node_modules/regjsparser/",\ - "packageDependencies": [\ - ["regjsparser", "npm:0.9.1"],\ - ["jsesc", "npm:0.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["release-config", [\ - ["workspace:packages/release-config", {\ - "packageLocation": "./packages/release-config/",\ - "packageDependencies": [\ - ["release-config", "workspace:packages/release-config"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["release-it", [\ - ["patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A.", {\ - "packageLocation": "./.yarn/cache/release-it-patch-dd4968a530-d9cff90c75.zip/node_modules/release-it/",\ - "packageDependencies": [\ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=993654&locator=core%40workspace%3A."],\ - ["@iarna/toml", "npm:2.2.5"],\ - ["@octokit/rest", "npm:18.0.6"],\ - ["async-retry", "npm:1.3.1"],\ - ["chalk", "npm:4.1.0"],\ - ["cosmiconfig", "npm:7.0.0"],\ - ["debug", "virtual:dd4968a530aeb52a93bdf9de31729205a7fb08629eece53844c2f951b7d41734349af90e5f417da407108da8d1c0d5d5fa144a26780022d5207bde4adac837d1#npm:4.2.0"],\ - ["deprecated-obj", "npm:2.0.0"],\ - ["execa", "npm:4.0.3"],\ - ["find-up", "npm:5.0.0"],\ - ["form-data", "npm:3.0.0"],\ - ["git-url-parse", "npm:11.3.0"],\ - ["globby", "npm:11.0.1"],\ - ["got", "npm:11.7.0"],\ - ["import-cwd", "npm:3.0.0"],\ - ["inquirer", "npm:7.3.3"],\ - ["is-ci", "npm:2.0.0"],\ - ["lodash", "npm:4.17.20"],\ - ["mime-types", "npm:2.1.27"],\ - ["ora", "npm:5.1.0"],\ - ["os-name", "npm:4.0.0"],\ - ["parse-json", "npm:5.1.0"],\ - ["semver", "npm:7.3.2"],\ - ["shelljs", "npm:0.8.4"],\ - ["update-notifier", "npm:5.0.0"],\ - ["url-join", "npm:4.0.1"],\ - ["uuid", "npm:8.3.1"],\ - ["yaml", "npm:1.10.0"],\ - ["yargs-parser", "npm:20.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["remove-trailing-separator", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-d3c20b5a2d.zip/node_modules/remove-trailing-separator/",\ - "packageDependencies": [\ - ["remove-trailing-separator", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["repeat-element", [\ - ["npm:1.1.4", {\ - "packageLocation": "./.yarn/cache/repeat-element-npm-1.1.4-7e649ab5b1-1edd0301b7.zip/node_modules/repeat-element/",\ - "packageDependencies": [\ - ["repeat-element", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["repeat-string", [\ - ["npm:1.6.1", {\ - "packageLocation": "./.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-1b809fc6db.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-d2db0b69c5.zip/node_modules/repeating/",\ - "packageDependencies": [\ - ["repeating", "npm:2.0.1"],\ - ["is-finite", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["request", [\ - ["npm:2.88.2", {\ - "packageLocation": "./.yarn/cache/request-npm-2.88.2-f4a57c72c4-005b8b237b.zip/node_modules/request/",\ - "packageDependencies": [\ - ["request", "npm:2.88.2"],\ - ["aws-sign2", "npm:0.7.0"],\ - ["aws4", "npm:1.11.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.5"],\ - ["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.30"],\ - ["oauth-sign", "npm:0.9.0"],\ - ["performance-now", "npm:2.1.0"],\ - ["qs", "npm:6.5.2"],\ - ["safe-buffer", "npm:5.2.1"],\ - ["tough-cookie", "npm:2.5.0"],\ - ["tunnel-agent", "npm:0.6.0"],\ - ["uuid", "npm:3.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["request-promise-core", [\ - ["npm:1.1.4", {\ - "packageLocation": "./.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-79714e46b0.zip/node_modules/request-promise-core/",\ - "packageDependencies": [\ - ["request-promise-core", "npm:1.1.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4", {\ - "packageLocation": "./.yarn/__virtual__/request-promise-core-virtual-b91c886633/0/cache/request-promise-core-npm-1.1.4-cb9fff6c90-79714e46b0.zip/node_modules/request-promise-core/",\ - "packageDependencies": [\ - ["request-promise-core", "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4"],\ - ["@types/request", null],\ - ["lodash", "npm:4.17.21"],\ - ["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-6df0cf75cb.zip/node_modules/request-promise-native/",\ - "packageDependencies": [\ - ["request-promise-native", "npm:1.0.9"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9", {\ - "packageLocation": "./.yarn/__virtual__/request-promise-native-virtual-767bea4895/0/cache/request-promise-native-npm-1.0.9-6ae8e592e8-6df0cf75cb.zip/node_modules/request-promise-native/",\ - "packageDependencies": [\ - ["request-promise-native", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9"],\ - ["@types/request", null],\ - ["request", "npm:2.88.2"],\ - ["request-promise-core", "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#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-a72468e258.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-839a3a8901.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-8604a570c0.zip/node_modules/require-main-filename/",\ - "packageDependencies": [\ - ["require-main-filename", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve", [\ - ["patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d", {\ - "packageLocation": "./.yarn/cache/resolve-patch-63f1eb0464-197ca6b762.zip/node_modules/resolve/",\ - "packageDependencies": [\ - ["resolve", "patch:resolve@npm%3A1.20.0#optional!builtin::version=1.20.0&hash=c3c19d"],\ - ["is-core-module", "npm:2.4.0"],\ - ["path-parse", "npm:1.0.6"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["patch:resolve@npm%3A2.0.0-next.3#optional!builtin::version=2.0.0-next.3&hash=c3c19d", {\ - "packageLocation": "./.yarn/cache/resolve-patch-c1472719c0-e29030dd55.zip/node_modules/resolve/",\ - "packageDependencies": [\ - ["resolve", "patch:resolve@npm%3A2.0.0-next.3#optional!builtin::version=2.0.0-next.3&hash=c3c19d"],\ - ["is-core-module", "npm:2.4.0"],\ - ["path-parse", "npm:1.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-alpn", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.1.2-cb74069612-f66f105a88.zip/node_modules/resolve-alpn/",\ - "packageDependencies": [\ - ["resolve-alpn", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-cwd", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.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-c4189f1592.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-91eb76ce83.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-be18a5e4d7.zip/node_modules/resolve-from/",\ - "packageDependencies": [\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-global", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/resolve-global-npm-1.0.0-9097e8a466-c4e11d33e8.zip/node_modules/resolve-global/",\ - "packageDependencies": [\ - ["resolve-global", "npm:1.0.0"],\ - ["global-dirs", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-url", [\ - ["npm:0.2.1", {\ - "packageLocation": "./.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-c8bbf63857.zip/node_modules/resolve-url/",\ - "packageDependencies": [\ - ["resolve-url", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["responselike", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-2e9e70f1dc.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-6a4d32c37d.zip/node_modules/responselike/",\ - "packageDependencies": [\ - ["responselike", "npm:2.0.0"],\ - ["lowercase-keys", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["restore-cursor", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-f877dd8741.zip/node_modules/restore-cursor/",\ - "packageDependencies": [\ - ["restore-cursor", "npm:3.1.0"],\ - ["onetime", "npm:5.1.2"],\ - ["signal-exit", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ret", [\ - ["npm:0.1.15", {\ - "packageLocation": "./.yarn/cache/ret-npm-0.1.15-0d3c19de76-07c9e7619b.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-1f914879f9.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-14222c9e1d.zip/node_modules/reusify/",\ - "packageDependencies": [\ - ["reusify", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rimraf", [\ - ["npm:2.6.3", {\ - "packageLocation": "./.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-756419f2fa.zip/node_modules/rimraf/",\ - "packageDependencies": [\ - ["rimraf", "npm:2.6.3"],\ - ["glob", "npm:7.1.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.2", {\ - "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-063ffaccaa.zip/node_modules/rimraf/",\ - "packageDependencies": [\ - ["rimraf", "npm:3.0.2"],\ - ["glob", "npm:7.1.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rsvp", [\ - ["npm:4.8.5", {\ - "packageLocation": "./.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-3c81905a0c.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-c79551224d.zip/node_modules/run-async/",\ - "packageDependencies": [\ - ["run-async", "npm:2.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["run-parallel", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip/node_modules/run-parallel/",\ - "packageDependencies": [\ - ["run-parallel", "npm:1.2.0"],\ - ["queue-microtask", "npm:1.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rxjs", [\ - ["npm:6.6.7", {\ - "packageLocation": "./.yarn/cache/rxjs-npm-6.6.7-055046ea3c-c8263ebb20.zip/node_modules/rxjs/",\ - "packageDependencies": [\ - ["rxjs", "npm:6.6.7"],\ - ["tslib", "npm:1.14.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["safe-buffer", [\ - ["npm:5.1.2", {\ - "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-7eb5b48f2e.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-32872cd0ff.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-5405b5a3ef.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-7eaf7a0cf3.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-2bcdb8d563.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.6"],\ - ["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"\ - }]\ - ]],\ - ["saxes", [\ - ["npm:5.0.1", {\ - "packageLocation": "./.yarn/cache/saxes-npm-5.0.1-57abf031ae-148b5f98fd.zip/node_modules/saxes/",\ - "packageDependencies": [\ - ["saxes", "npm:5.0.1"],\ - ["xmlchars", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["scheduler", [\ - ["npm:0.24.0-canary-efb381bbf-20230505", {\ - "packageLocation": "./.yarn/cache/scheduler-npm-0.24.0-canary-efb381bbf-20230505-6f74d88bd1-862881c8d3.zip/node_modules/scheduler/",\ - "packageDependencies": [\ - ["scheduler", "npm:0.24.0-canary-efb381bbf-20230505"],\ - ["loose-envify", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["selfsigned", [\ - ["npm:2.4.1", {\ - "packageLocation": "./.yarn/cache/selfsigned-npm-2.4.1-1ca1b883c5-52536623f1.zip/node_modules/selfsigned/",\ - "packageDependencies": [\ - ["selfsigned", "npm:2.4.1"],\ - ["@types/node-forge", "npm:1.3.11"],\ - ["node-forge", "npm:1.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["semver", [\ - ["npm:5.7.1", {\ - "packageLocation": "./.yarn/cache/semver-npm-5.7.1-40bcea106b-fbc71cf007.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-8dd72e7c7c.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.3.1", {\ - "packageLocation": "./.yarn/cache/semver-npm-6.3.1-bcba31fdbe-1ef3a85bd0.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.0.0", {\ - "packageLocation": "./.yarn/cache/semver-npm-7.0.0-218e8c00ca-be264384c7.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-52f87756b6.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:7.3.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.3.5", {\ - "packageLocation": "./.yarn/cache/semver-npm-7.3.5-618cf5db6a-2285437859.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:7.3.5"],\ - ["lru-cache", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.6.3", {\ - "packageLocation": "./.yarn/cache/semver-npm-7.6.3-57e82c14d5-36b1fbe1a2.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["semver-diff", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-8bbe5a5d7a.zip/node_modules/semver-diff/",\ - "packageDependencies": [\ - ["semver-diff", "npm:3.1.1"],\ - ["semver", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["send", [\ - ["npm:0.19.0", {\ - "packageLocation": "./.yarn/cache/send-npm-0.19.0-4297594770-1f6064dea0.zip/node_modules/send/",\ - "packageDependencies": [\ - ["send", "npm:0.19.0"],\ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ - ["depd", "npm:2.0.0"],\ - ["destroy", "npm:1.2.0"],\ - ["encodeurl", "npm:1.0.2"],\ - ["escape-html", "npm:1.0.3"],\ - ["etag", "npm:1.8.1"],\ - ["fresh", "npm:0.5.2"],\ - ["http-errors", "npm:2.0.0"],\ - ["mime", "npm:1.6.0"],\ - ["ms", "npm:2.1.3"],\ - ["on-finished", "npm:2.4.1"],\ - ["range-parser", "npm:1.2.1"],\ - ["statuses", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["serialize-error", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/serialize-error-npm-2.1.0-51bc0e0932-28464a6f65.zip/node_modules/serialize-error/",\ - "packageDependencies": [\ - ["serialize-error", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["serve-static", [\ - ["npm:1.16.2", {\ - "packageLocation": "./.yarn/cache/serve-static-npm-1.16.2-5d8e560aec-7fa9d9c680.zip/node_modules/serve-static/",\ - "packageDependencies": [\ - ["serve-static", "npm:1.16.2"],\ - ["encodeurl", "npm:2.0.0"],\ - ["escape-html", "npm:1.0.3"],\ - ["parseurl", "npm:1.3.3"],\ - ["send", "npm:0.19.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["set-blocking", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-8980ebf7ae.zip/node_modules/set-blocking/",\ - "packageDependencies": [\ - ["set-blocking", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["set-value", [\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/set-value-npm-2.0.1-35da5f8180-4f1ccac2e9.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"\ - }]\ - ]],\ - ["setprototypeof", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip/node_modules/setprototypeof/",\ - "packageDependencies": [\ - ["setprototypeof", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shallow-clone", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e066bd540c.zip/node_modules/shallow-clone/",\ - "packageDependencies": [\ - ["shallow-clone", "npm:3.0.1"],\ - ["kind-of", "npm:6.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shebang-command", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.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-6b52fe8727.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-404c5a752c.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-1a2bcae50d.zip/node_modules/shebang-regex/",\ - "packageDependencies": [\ - ["shebang-regex", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shell-quote", [\ - ["npm:1.8.1", {\ - "packageLocation": "./.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-af19ab5a1e.zip/node_modules/shell-quote/",\ - "packageDependencies": [\ - ["shell-quote", "npm:1.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shelljs", [\ - ["npm:0.8.4", {\ - "packageLocation": "./.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-4ce7d31faa.zip/node_modules/shelljs/",\ - "packageDependencies": [\ - ["shelljs", "npm:0.8.4"],\ - ["glob", "npm:7.1.7"],\ - ["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-c122808ca5.zip/node_modules/shellwords/",\ - "packageDependencies": [\ - ["shellwords", "npm:0.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["side-channel", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-c4998d9fc5.zip/node_modules/side-channel/",\ - "packageDependencies": [\ - ["side-channel", "npm:1.0.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["get-intrinsic", "npm:1.1.1"],\ - ["object-inspect", "npm:1.10.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["signal-exit", [\ - ["npm:3.0.3", {\ - "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f0169d3f12.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.7", {\ - "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sisteransi", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip/node_modules/sisteransi/",\ - "packageDependencies": [\ - ["sisteransi", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["slash", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/slash-npm-2.0.0-69009eac54-512d435073.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-94a93fff61.zip/node_modules/slash/",\ - "packageDependencies": [\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["slice-ansi", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-4e82995aa5.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"\ - }],\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip/node_modules/slice-ansi/",\ - "packageDependencies": [\ - ["slice-ansi", "npm:4.0.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["astral-regex", "npm:2.0.0"],\ - ["is-fullwidth-code-point", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["smart-buffer", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/smart-buffer-npm-4.1.0-2a8829a5b4-eede9ea445.zip/node_modules/smart-buffer/",\ - "packageDependencies": [\ - ["smart-buffer", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["snapdragon", [\ - ["npm:0.8.2", {\ - "packageLocation": "./.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-cbe35b25dc.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-093c3584ef.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-b776b15bf6.zip/node_modules/snapdragon-util/",\ - "packageDependencies": [\ - ["snapdragon-util", "npm:3.0.1"],\ - ["kind-of", "npm:3.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["socks", [\ - ["npm:2.6.1", {\ - "packageLocation": "./.yarn/cache/socks-npm-2.6.1-09133d0d22-6ae166bd1a.zip/node_modules/socks/",\ - "packageDependencies": [\ - ["socks", "npm:2.6.1"],\ - ["ip", "npm:1.1.5"],\ - ["smart-buffer", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["socks-proxy-agent", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/socks-proxy-agent-npm-5.0.0-0416dc71b7-c9f13e0c46.zip/node_modules/socks-proxy-agent/",\ - "packageDependencies": [\ - ["socks-proxy-agent", "npm:5.0.0"],\ - ["agent-base", "npm:6.0.2"],\ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"],\ - ["socks", "npm:2.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["source-map", [\ - ["npm:0.5.7", {\ - "packageLocation": "./.yarn/cache/source-map-npm-0.5.7-7c3f035429-9b4ac749ec.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-59ef7462f1.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-89c388902a.zip/node_modules/source-map/",\ - "packageDependencies": [\ - ["source-map", "npm:0.7.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["source-map-resolve", [\ - ["npm:0.5.3", {\ - "packageLocation": "./.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-98e281cceb.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.1"],\ - ["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-5a30564f9d.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"\ - }],\ - ["npm:0.5.21", {\ - "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-8317e12d84.zip/node_modules/source-map-support/",\ - "packageDependencies": [\ - ["source-map-support", "npm:0.5.21"],\ - ["buffer-from", "npm:1.1.1"],\ - ["source-map", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["source-map-url", [\ - ["npm:0.4.1", {\ - "packageLocation": "./.yarn/cache/source-map-url-npm-0.4.1-747a1f6eba-7fec0460ca.zip/node_modules/source-map-url/",\ - "packageDependencies": [\ - ["source-map-url", "npm:0.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["spdx-correct", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-688e028c3c.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.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["spdx-exceptions", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.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-a1c6e104a2.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.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["spdx-license-ids", [\ - ["npm:3.0.7", {\ - "packageLocation": "./.yarn/cache/spdx-license-ids-npm-3.0.7-f2c686cec2-e6a3ea80d8.zip/node_modules/spdx-license-ids/",\ - "packageDependencies": [\ - ["spdx-license-ids", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["split", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/split-npm-1.0.1-88871d88a2-12f4554a57.zip/node_modules/split/",\ - "packageDependencies": [\ - ["split", "npm:1.0.1"],\ - ["through", "npm:2.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["split-on-first", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-16ff85b54d.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-f31f4709d2.zip/node_modules/split-string/",\ - "packageDependencies": [\ - ["split-string", "npm:3.1.0"],\ - ["extend-shallow", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["split2", [\ - ["npm:3.2.2", {\ - "packageLocation": "./.yarn/cache/split2-npm-3.2.2-4ccd21b4f7-a426e1e671.zip/node_modules/split2/",\ - "packageDependencies": [\ - ["split2", "npm:3.2.2"],\ - ["readable-stream", "npm:3.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sprintf-js", [\ - ["npm:1.0.3", {\ - "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-c34828732a.zip/node_modules/sprintf-js/",\ - "packageDependencies": [\ - ["sprintf-js", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sshpk", [\ - ["npm:1.16.1", {\ - "packageLocation": "./.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-b437fd3fd2.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:8.0.1", {\ - "packageLocation": "./.yarn/cache/ssri-npm-8.0.1-a369e72ce2-fde247b710.zip/node_modules/ssri/",\ - "packageDependencies": [\ - ["ssri", "npm:8.0.1"],\ - ["minipass", "npm:3.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["stack-utils", [\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.3-e255395afd-e51cf01614.zip/node_modules/stack-utils/",\ - "packageDependencies": [\ - ["stack-utils", "npm:2.0.3"],\ - ["escape-string-regexp", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.6", {\ - "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.6-2be1099696-cdc988acbc.zip/node_modules/stack-utils/",\ - "packageDependencies": [\ - ["stack-utils", "npm:2.0.6"],\ - ["escape-string-regexp", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["stackframe", [\ - ["npm:1.3.4", {\ - "packageLocation": "./.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-29ca71c1fd.zip/node_modules/stackframe/",\ - "packageDependencies": [\ - ["stackframe", "npm:1.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["stacktrace-parser", [\ - ["npm:0.1.10", {\ - "packageLocation": "./.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-f4fbddfc09.zip/node_modules/stacktrace-parser/",\ - "packageDependencies": [\ - ["stacktrace-parser", "npm:0.1.10"],\ - ["type-fest", "npm:0.7.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["static-extend", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/static-extend-npm-0.1.2-2720ee6882-8657485b83.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-c469b9519d.zip/node_modules/statuses/",\ - "packageDependencies": [\ - ["statuses", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip/node_modules/statuses/",\ - "packageDependencies": [\ - ["statuses", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["stealthy-require", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-a408a51f5b.zip/node_modules/stealthy-require/",\ - "packageDependencies": [\ - ["stealthy-require", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strict-uri-encode", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-eaac4cf978.zip/node_modules/strict-uri-encode/",\ - "packageDependencies": [\ - ["strict-uri-encode", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string-length", [\ - ["npm:4.0.2", {\ - "packageLocation": "./.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip/node_modules/string-length/",\ - "packageDependencies": [\ - ["string-length", "npm:4.0.2"],\ - ["char-regex", "npm:1.0.2"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string-width", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/string-width-npm-1.0.2-01031f9add-5c79439e95.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-d6173abe08.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-57f7ca73d2.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.2", {\ - "packageLocation": "./.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["string-width", "npm:4.2.2"],\ - ["emoji-regex", "npm:8.0.0"],\ - ["is-fullwidth-code-point", "npm:3.0.0"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.2.3", {\ - "packageLocation": "./.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["string-width", "npm:4.2.3"],\ - ["emoji-regex", "npm:8.0.0"],\ - ["is-fullwidth-code-point", "npm:3.0.0"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string.prototype.matchall", [\ - ["npm:4.0.4", {\ - "packageLocation": "./.yarn/cache/string.prototype.matchall-npm-4.0.4-6ac02f3358-ab3d2d0e0e.zip/node_modules/string.prototype.matchall/",\ - "packageDependencies": [\ - ["string.prototype.matchall", "npm:4.0.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"],\ - ["es-abstract", "npm:1.18.0"],\ - ["has-symbols", "npm:1.0.2"],\ - ["internal-slot", "npm:1.0.3"],\ - ["regexp.prototype.flags", "npm:1.3.1"],\ - ["side-channel", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string.prototype.trimend", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.4-a656b8fe24-5733b0f980.zip/node_modules/string.prototype.trimend/",\ - "packageDependencies": [\ - ["string.prototype.trimend", "npm:1.0.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string.prototype.trimstart", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.4-b31f5e7c85-18e0b7362c.zip/node_modules/string.prototype.trimstart/",\ - "packageDependencies": [\ - ["string.prototype.trimstart", "npm:1.0.4"],\ - ["call-bind", "npm:1.0.2"],\ - ["define-properties", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string_decoder", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-7c41c17ed4.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-54d23f4a6a.zip/node_modules/string_decoder/",\ - "packageDependencies": [\ - ["string_decoder", "npm:1.3.0"],\ - ["safe-buffer", "npm:5.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-ansi", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.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-d9186e6c0c.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-bdb5f76ade.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-fb33042c06.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["strip-ansi", "npm:6.0.0"],\ - ["ansi-regex", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.1", {\ - "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-ae3b5436d3.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["strip-ansi", "npm:6.0.1"],\ - ["ansi-regex", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-bom", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-08efb746bc.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-8d50ff27b7.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-9dbcfbaf50.zip/node_modules/strip-bom/",\ - "packageDependencies": [\ - ["strip-bom", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-eof", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-40bc8ddd7e.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-69412b5e25.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-81ad9a0b8a.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-18f045d57d.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-1074ccb632.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-492f73e272.zip/node_modules/strip-json-comments/",\ - "packageDependencies": [\ - ["strip-json-comments", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strnum", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-d3117975db.zip/node_modules/strnum/",\ - "packageDependencies": [\ - ["strnum", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sudo-prompt", [\ - ["npm:9.2.1", {\ - "packageLocation": "./.yarn/cache/sudo-prompt-npm-9.2.1-673cc9fe7b-0557d0eece.zip/node_modules/sudo-prompt/",\ - "packageDependencies": [\ - ["sudo-prompt", "npm:9.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["supports-color", [\ - ["npm:5.5.0", {\ - "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-183ac537bc-5f505c6fa3.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:5.5.0"],\ - ["has-flag", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.2.0", {\ - "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-c8bb7afd56.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:7.2.0"],\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.1.1", {\ - "packageLocation": "./.yarn/cache/supports-color-npm-8.1.1-289e937149-157b534df8.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:8.1.1"],\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["supports-hyperlinks", [\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-a63f2acba5.zip/node_modules/supports-hyperlinks/",\ - "packageDependencies": [\ - ["supports-hyperlinks", "npm:2.2.0"],\ - ["has-flag", "npm:4.0.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["symbol-tree", [\ - ["npm:3.2.4", {\ - "packageLocation": "./.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-c09a00aadf.zip/node_modules/symbol-tree/",\ - "packageDependencies": [\ - ["symbol-tree", "npm:3.2.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["table", [\ - ["npm:6.7.1", {\ - "packageLocation": "./.yarn/cache/table-npm-6.7.1-7d70e55c6d-654090e317.zip/node_modules/table/",\ - "packageDependencies": [\ - ["table", "npm:6.7.1"],\ - ["ajv", "npm:8.4.0"],\ - ["lodash.clonedeep", "npm:4.5.0"],\ - ["lodash.truncate", "npm:4.4.2"],\ - ["slice-ansi", "npm:4.0.0"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tar", [\ - ["npm:6.1.0", {\ - "packageLocation": "./.yarn/cache/tar-npm-6.1.0-21d6116ed9-874e92e99a.zip/node_modules/tar/",\ - "packageDependencies": [\ - ["tar", "npm:6.1.0"],\ - ["chownr", "npm:2.0.0"],\ - ["fs-minipass", "npm:2.1.0"],\ - ["minipass", "npm:3.1.3"],\ - ["minizlib", "npm:2.1.2"],\ - ["mkdirp", "npm:1.0.4"],\ - ["yallist", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["temp", [\ - ["npm:0.8.4", {\ - "packageLocation": "./.yarn/cache/temp-npm-0.8.4-d7c7d71d12-0a7f76b496.zip/node_modules/temp/",\ - "packageDependencies": [\ - ["temp", "npm:0.8.4"],\ - ["rimraf", "npm:2.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["temp-dir", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/temp-dir-npm-1.0.0-5828254ce3-cb2b58ddfb.zip/node_modules/temp-dir/",\ - "packageDependencies": [\ - ["temp-dir", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/temp-dir-npm-2.0.0-e8af180805-cc4f0404bf.zip/node_modules/temp-dir/",\ - "packageDependencies": [\ - ["temp-dir", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["temp-write", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/temp-write-npm-4.0.0-19edc9e6b7-4f94187662.zip/node_modules/temp-write/",\ - "packageDependencies": [\ - ["temp-write", "npm:4.0.0"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["is-stream", "npm:2.0.0"],\ - ["make-dir", "npm:3.1.0"],\ - ["temp-dir", "npm:1.0.0"],\ - ["uuid", "npm:3.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["term-size", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/unplugged/term-size-npm-2.2.1-77ce7141d0/node_modules/term-size/",\ - "packageDependencies": [\ - ["term-size", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["terminal-link", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/terminal-link-npm-2.1.1-de80341758-ce3d2cd3a4.zip/node_modules/terminal-link/",\ - "packageDependencies": [\ - ["terminal-link", "npm:2.1.1"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["supports-hyperlinks", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["terser", [\ - ["npm:5.33.0", {\ - "packageLocation": "./.yarn/cache/terser-npm-5.33.0-58f8b7f7c3-0142382547.zip/node_modules/terser/",\ - "packageDependencies": [\ - ["terser", "npm:5.33.0"],\ - ["@jridgewell/source-map", "npm:0.3.6"],\ - ["acorn", "npm:8.12.1"],\ - ["commander", "npm:2.20.3"],\ - ["source-map-support", "npm:0.5.21"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["test-exclude", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-8fccb2cb6c.zip/node_modules/test-exclude/",\ - "packageDependencies": [\ - ["test-exclude", "npm:6.0.0"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["glob", "npm:7.1.7"],\ - ["minimatch", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["text-extensions", [\ - ["npm:1.9.0", {\ - "packageLocation": "./.yarn/cache/text-extensions-npm-1.9.0-87655d768f-56a9962c1b.zip/node_modules/text-extensions/",\ - "packageDependencies": [\ - ["text-extensions", "npm:1.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["text-table", [\ - ["npm:0.2.0", {\ - "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-d92a778b59-4383b5baae.zip/node_modules/text-table/",\ - "packageDependencies": [\ - ["text-table", "npm:0.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["throat", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/throat-npm-5.0.0-288ce6540a-00f7197977.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-5da78346f7.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-cd71f7dcdc.zip/node_modules/through2/",\ - "packageDependencies": [\ - ["through2", "npm:2.0.5"],\ - ["readable-stream", "npm:2.3.7"],\ - ["xtend", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.2", {\ - "packageLocation": "./.yarn/cache/through2-npm-4.0.2-da7b2da443-72c246233d.zip/node_modules/through2/",\ - "packageDependencies": [\ - ["through2", "npm:4.0.2"],\ - ["readable-stream", "npm:3.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tmp", [\ - ["npm:0.0.33", {\ - "packageLocation": "./.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-09c0abfd16.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-72c9333504.zip/node_modules/tmpl/",\ - "packageDependencies": [\ - ["tmpl", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["to-fast-properties", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.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-9425effee5.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-a99e23d497.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-ab87c22f07.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-2eed5f8971.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-10dda13571.zip/node_modules/to-regex-range/",\ - "packageDependencies": [\ - ["to-regex-range", "npm:5.0.1"],\ - ["is-number", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["toidentifier", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip/node_modules/toidentifier/",\ - "packageDependencies": [\ - ["toidentifier", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tough-cookie", [\ - ["npm:2.5.0", {\ - "packageLocation": "./.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-024cb13a4d.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:4.0.0", {\ - "packageLocation": "./.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-1c9764cbe1.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:0.0.3", {\ - "packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-8f1f5aa6cb.zip/node_modules/tr46/",\ - "packageDependencies": [\ - ["tr46", "npm:0.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.2", {\ - "packageLocation": "./.yarn/cache/tr46-npm-2.0.2-9a9c502938-6f367639e4.zip/node_modules/tr46/",\ - "packageDependencies": [\ - ["tr46", "npm:2.0.2"],\ - ["punycode", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["trim-newlines", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-ed96eea318.zip/node_modules/trim-newlines/",\ - "packageDependencies": [\ - ["trim-newlines", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/trim-newlines-npm-3.0.0-ccf666d8fc-ad99b771e7.zip/node_modules/trim-newlines/",\ - "packageDependencies": [\ - ["trim-newlines", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["trim-off-newlines", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/trim-off-newlines-npm-1.0.1-1a87bef78d-ca644908ca.zip/node_modules/trim-off-newlines/",\ - "packageDependencies": [\ - ["trim-off-newlines", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ts-toolbelt", [\ - ["npm:6.15.5", {\ - "packageLocation": "./.yarn/cache/ts-toolbelt-npm-6.15.5-e42f89942f-1816b11f6a.zip/node_modules/ts-toolbelt/",\ - "packageDependencies": [\ - ["ts-toolbelt", "npm:6.15.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tslib", [\ - ["npm:1.14.1", {\ - "packageLocation": "./.yarn/cache/tslib-npm-1.14.1-102499115e-7dbf34e6f5.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:1.14.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/tslib-npm-2.2.0-e83a07daa5-d5fcf6cf37.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.7.0", {\ - "packageLocation": "./.yarn/cache/tslib-npm-2.7.0-21668f5c21-9a5b47ddac.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tsutils", [\ - ["npm:3.21.0", {\ - "packageLocation": "./.yarn/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip/node_modules/tsutils/",\ - "packageDependencies": [\ - ["tsutils", "npm:3.21.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0", {\ - "packageLocation": "./.yarn/__virtual__/tsutils-virtual-5ad95fbe75/0/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip/node_modules/tsutils/",\ - "packageDependencies": [\ - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"],\ - ["@types/typescript", null],\ - ["tslib", "npm:1.14.1"],\ - ["typescript", null]\ - ],\ - "packagePeers": [\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0", {\ - "packageLocation": "./.yarn/__virtual__/tsutils-virtual-847be56701/0/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip/node_modules/tsutils/",\ - "packageDependencies": [\ - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"],\ - ["@types/typescript", null],\ - ["tslib", "npm:1.14.1"],\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "packagePeers": [\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tunnel-agent", [\ - ["npm:0.6.0", {\ - "packageLocation": "./.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-7f0d9ed5c2.zip/node_modules/tunnel-agent/",\ - "packageDependencies": [\ - ["tunnel-agent", "npm:0.6.0"],\ - ["safe-buffer", "npm:5.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tweetnacl", [\ - ["npm:0.14.5", {\ - "packageLocation": "./.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-04ee27901c.zip/node_modules/tweetnacl/",\ - "packageDependencies": [\ - ["tweetnacl", "npm:0.14.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-check", [\ - ["npm:0.3.2", {\ - "packageLocation": "./.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-11dec0b50d.zip/node_modules/type-check/",\ - "packageDependencies": [\ - ["type-check", "npm:0.3.2"],\ - ["prelude-ls", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.4.0", {\ - "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-1468777647.zip/node_modules/type-check/",\ - "packageDependencies": [\ - ["type-check", "npm:0.4.0"],\ - ["prelude-ls", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-detect", [\ - ["npm:4.0.8", {\ - "packageLocation": "./.yarn/cache/type-detect-npm-4.0.8-8d8127b901-5179e3b8eb.zip/node_modules/type-detect/",\ - "packageDependencies": [\ - ["type-detect", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-fest", [\ - ["npm:0.18.1", {\ - "packageLocation": "./.yarn/cache/type-fest-npm-0.18.1-47b079775d-0884437705.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.18.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.20.2", {\ - "packageLocation": "./.yarn/cache/type-fest-npm-0.20.2-b36432617f-8907e16284.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.20.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.21.3", {\ - "packageLocation": "./.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-f4254070d9.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.6.0", {\ - "packageLocation": "./.yarn/cache/type-fest-npm-0.6.0-76b229965b-9ecbf4ba27.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-0699b6011b.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-fd4a91bfb7.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["typedarray", [\ - ["npm:0.0.6", {\ - "packageLocation": "./.yarn/cache/typedarray-npm-0.0.6-37638b2241-2cc1bcf7d8.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-7c850c3433.zip/node_modules/typedarray-to-buffer/",\ - "packageDependencies": [\ - ["typedarray-to-buffer", "npm:3.1.5"],\ - ["is-typedarray", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["typescript", [\ - ["patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98", {\ - "packageLocation": "./.yarn/cache/typescript-patch-1f53dbaf4a-1ea3cb3bd8.zip/node_modules/typescript/",\ - "packageDependencies": [\ - ["typescript", "patch:typescript@npm%3A4.2.4#optional!builtin::version=4.2.4&hash=334f98"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["uglify-js", [\ - ["npm:3.13.6", {\ - "packageLocation": "./.yarn/cache/uglify-js-npm-3.13.6-6adc32f008-7148ad9c7f.zip/node_modules/uglify-js/",\ - "packageDependencies": [\ - ["uglify-js", "npm:3.13.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unbox-primitive", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/unbox-primitive-npm-1.0.1-50b9fde246-16aacdfc55.zip/node_modules/unbox-primitive/",\ - "packageDependencies": [\ - ["unbox-primitive", "npm:1.0.1"],\ - ["function-bind", "npm:1.1.1"],\ - ["has-bigints", "npm:1.0.1"],\ - ["has-symbols", "npm:1.0.2"],\ - ["which-boxed-primitive", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unc-path-regex", [\ - ["npm:0.1.2", {\ - "packageLocation": "./.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-a05fa2006b.zip/node_modules/unc-path-regex/",\ - "packageDependencies": [\ - ["unc-path-regex", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["undici-types", [\ - ["npm:5.26.5", {\ - "packageLocation": "./.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-0097779d94.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:5.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unicode-canonical-property-names-ecmascript", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-cc1973b18d.zip/node_modules/unicode-canonical-property-names-ecmascript/",\ - "packageDependencies": [\ - ["unicode-canonical-property-names-ecmascript", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-2.0.1-80cef17f3b-3c3dabdb1d.zip/node_modules/unicode-canonical-property-names-ecmascript/",\ - "packageDependencies": [\ - ["unicode-canonical-property-names-ecmascript", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unicode-match-property-ecmascript", [\ - ["npm:1.0.4", {\ - "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-08e269fac7.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"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-2.0.0-97a00fd52c-1f34a7434a.zip/node_modules/unicode-match-property-ecmascript/",\ - "packageDependencies": [\ - ["unicode-match-property-ecmascript", "npm:2.0.0"],\ - ["unicode-canonical-property-names-ecmascript", "npm:2.0.1"],\ - ["unicode-property-aliases-ecmascript", "npm:2.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-a5b2c2d583.zip/node_modules/unicode-match-property-value-ecmascript/",\ - "packageDependencies": [\ - ["unicode-match-property-value-ecmascript", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.2.0", {\ - "packageLocation": "./.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-9fd53c657a.zip/node_modules/unicode-match-property-value-ecmascript/",\ - "packageDependencies": [\ - ["unicode-match-property-value-ecmascript", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unicode-property-aliases-ecmascript", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-1a96dc462d.zip/node_modules/unicode-property-aliases-ecmascript/",\ - "packageDependencies": [\ - ["unicode-property-aliases-ecmascript", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-2435244318.zip/node_modules/unicode-property-aliases-ecmascript/",\ - "packageDependencies": [\ - ["unicode-property-aliases-ecmascript", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["union-value", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-a3464097d3.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"\ - }]\ - ]],\ - ["unique-filename", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-9b6969d649.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-6cfaf91976.zip/node_modules/unique-slug/",\ - "packageDependencies": [\ - ["unique-slug", "npm:2.0.2"],\ - ["imurmurhash", "npm:0.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unique-string", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/unique-string-npm-2.0.0-3153c97e47-107cae65b0.zip/node_modules/unique-string/",\ - "packageDependencies": [\ - ["unique-string", "npm:2.0.0"],\ - ["crypto-random-string", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["universal-user-agent", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.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-40cdc60f6e.zip/node_modules/universalify/",\ - "packageDependencies": [\ - ["universalify", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip/node_modules/universalify/",\ - "packageDependencies": [\ - ["universalify", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unpipe", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip/node_modules/unpipe/",\ - "packageDependencies": [\ - ["unpipe", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unset-value", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/unset-value-npm-1.0.0-2af803b920-0ca6448706.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"\ - }]\ - ]],\ - ["upath", [\ - ["npm:1.2.0", {\ - "packageLocation": "./.yarn/cache/upath-npm-1.2.0-ca00ec3398-ac07351d9e.zip/node_modules/upath/",\ - "packageDependencies": [\ - ["upath", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["update-browserslist-db", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip/node_modules/update-browserslist-db/",\ - "packageDependencies": [\ - ["update-browserslist-db", "npm:1.1.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0", {\ - "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-e5d722ea57/0/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip/node_modules/update-browserslist-db/",\ - "packageDependencies": [\ - ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"],\ - ["@types/browserslist", null],\ - ["browserslist", "npm:4.23.3"],\ - ["escalade", "npm:3.2.0"],\ - ["picocolors", "npm:1.1.0"]\ - ],\ - "packagePeers": [\ - "@types/browserslist",\ - "browserslist"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["update-notifier", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/update-notifier-npm-5.0.0-4b1bd931c5-4b1ee14984.zip/node_modules/update-notifier/",\ - "packageDependencies": [\ - ["update-notifier", "npm:5.0.0"],\ - ["boxen", "npm:4.2.0"],\ - ["chalk", "npm:4.1.1"],\ - ["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:5.0.0"],\ - ["is-yarn-global", "npm:0.3.0"],\ - ["latest-version", "npm:5.1.0"],\ - ["pupa", "npm:2.1.1"],\ - ["semver", "npm:7.3.5"],\ - ["semver-diff", "npm:3.1.1"],\ - ["xdg-basedir", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["uri-js", [\ - ["npm:4.4.1", {\ - "packageLocation": "./.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-b271ca7e3d.zip/node_modules/uri-js/",\ - "packageDependencies": [\ - ["uri-js", "npm:4.4.1"],\ - ["punycode", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["urix", [\ - ["npm:0.1.0", {\ - "packageLocation": "./.yarn/cache/urix-npm-0.1.0-bd5e55a13a-ebf5df5491.zip/node_modules/urix/",\ - "packageDependencies": [\ - ["urix", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["url-join", [\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/url-join-npm-4.0.1-e1f4415722-b53b256a9a.zip/node_modules/url-join/",\ - "packageDependencies": [\ - ["url-join", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["url-parse-lax", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-1040e35775.zip/node_modules/url-parse-lax/",\ - "packageDependencies": [\ - ["url-parse-lax", "npm:3.0.0"],\ - ["prepend-http", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["use", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/use-npm-3.1.1-7ba643714c-08a130289f.zip/node_modules/use/",\ - "packageDependencies": [\ - ["use", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["util-deprecate", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip/node_modules/util-deprecate/",\ - "packageDependencies": [\ - ["util-deprecate", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["utils-merge", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-5d6949693d.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-4f2b86432b.zip/node_modules/uuid/",\ - "packageDependencies": [\ - ["uuid", "npm:3.4.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.3.1", {\ - "packageLocation": "./.yarn/cache/uuid-npm-8.3.1-8a5b02e900-be4bb826db.zip/node_modules/uuid/",\ - "packageDependencies": [\ - ["uuid", "npm:8.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.3.2", {\ - "packageLocation": "./.yarn/cache/uuid-npm-8.3.2-eca0baba53-9a5f7aa1d6.zip/node_modules/uuid/",\ - "packageDependencies": [\ - ["uuid", "npm:8.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["v8-compile-cache", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-7de7423db6.zip/node_modules/v8-compile-cache/",\ - "packageDependencies": [\ - ["v8-compile-cache", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["v8-to-istanbul", [\ - ["npm:7.1.2", {\ - "packageLocation": "./.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-6ebd68bd69.zip/node_modules/v8-to-istanbul/",\ - "packageDependencies": [\ - ["v8-to-istanbul", "npm:7.1.2"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.3"],\ - ["convert-source-map", "npm:1.7.0"],\ - ["source-map", "npm:0.7.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["validate-npm-package-license", [\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-86242519b2.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"\ - }]\ - ]],\ - ["validate-npm-package-name", [\ - ["npm:3.0.0", {\ - "packageLocation": "./.yarn/cache/validate-npm-package-name-npm-3.0.0-e44c263962-6f89bcc91b.zip/node_modules/validate-npm-package-name/",\ - "packageDependencies": [\ - ["validate-npm-package-name", "npm:3.0.0"],\ - ["builtins", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["vary", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/vary-npm-1.1.2-b49f70ae63-31389debef.zip/node_modules/vary/",\ - "packageDependencies": [\ - ["vary", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["verror", [\ - ["npm:1.10.0", {\ - "packageLocation": "./.yarn/cache/verror-npm-1.10.0-c3f839c579-da548149dd.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.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["vlq", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/vlq-npm-1.0.1-2ab4a14841-0f4270cb3c.zip/node_modules/vlq/",\ - "packageDependencies": [\ - ["vlq", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["w3c-hr-time", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-03851d90c2.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-400c18b75c.zip/node_modules/w3c-xmlserializer/",\ - "packageDependencies": [\ - ["w3c-xmlserializer", "npm:2.0.0"],\ - ["xml-name-validator", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["walker", [\ - ["npm:1.0.7", {\ - "packageLocation": "./.yarn/cache/walker-npm-1.0.7-a97443bd99-4038fcf92f.zip/node_modules/walker/",\ - "packageDependencies": [\ - ["walker", "npm:1.0.7"],\ - ["makeerror", "npm:1.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wcwidth", [\ - ["npm:1.0.1", {\ - "packageLocation": "./.yarn/cache/wcwidth-npm-1.0.1-05fa596453-182ebac8ca.zip/node_modules/wcwidth/",\ - "packageDependencies": [\ - ["wcwidth", "npm:1.0.1"],\ - ["defaults", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["webidl-conversions", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-b65b9f8d68.zip/node_modules/webidl-conversions/",\ - "packageDependencies": [\ - ["webidl-conversions", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-cea864dd9c.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-4454b73060.zip/node_modules/webidl-conversions/",\ - "packageDependencies": [\ - ["webidl-conversions", "npm:6.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["whatwg-encoding", [\ - ["npm:1.0.5", {\ - "packageLocation": "./.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-5be4efe111.zip/node_modules/whatwg-encoding/",\ - "packageDependencies": [\ - ["whatwg-encoding", "npm:1.0.5"],\ - ["iconv-lite", "npm:0.4.24"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["whatwg-fetch", [\ - ["npm:3.6.20", {\ - "packageLocation": "./.yarn/cache/whatwg-fetch-npm-3.6.20-a6f79b98c4-2b4ed92acd.zip/node_modules/whatwg-fetch/",\ - "packageDependencies": [\ - ["whatwg-fetch", "npm:3.6.20"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["whatwg-mimetype", [\ - ["npm:2.3.0", {\ - "packageLocation": "./.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-3582c1d74d.zip/node_modules/whatwg-mimetype/",\ - "packageDependencies": [\ - ["whatwg-mimetype", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["whatwg-url", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-f95adbc1e8.zip/node_modules/whatwg-url/",\ - "packageDependencies": [\ - ["whatwg-url", "npm:5.0.0"],\ - ["tr46", "npm:0.0.3"],\ - ["webidl-conversions", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.5.0", {\ - "packageLocation": "./.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-7216d75826.zip/node_modules/whatwg-url/",\ - "packageDependencies": [\ - ["whatwg-url", "npm:8.5.0"],\ - ["lodash", "npm:4.17.21"],\ - ["tr46", "npm:2.0.2"],\ - ["webidl-conversions", "npm:6.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["which", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-549dcf1752.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-4782f8a1d6.zip/node_modules/which/",\ - "packageDependencies": [\ - ["which", "npm:2.0.2"],\ - ["isexe", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["which-boxed-primitive", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-9c7ca78552.zip/node_modules/which-boxed-primitive/",\ - "packageDependencies": [\ - ["which-boxed-primitive", "npm:1.0.2"],\ - ["is-bigint", "npm:1.0.2"],\ - ["is-boolean-object", "npm:1.1.1"],\ - ["is-number-object", "npm:1.0.5"],\ - ["is-string", "npm:1.0.6"],\ - ["is-symbol", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["which-module", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/which-module-npm-2.0.0-daf3daa08d-e3e46c9c84.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-187642e0bb.zip/node_modules/wide-align/",\ - "packageDependencies": [\ - ["wide-align", "npm:1.1.3"],\ - ["string-width", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["widest-line", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/widest-line-npm-3.1.0-717bf2680b-03db6c9d0a.zip/node_modules/widest-line/",\ - "packageDependencies": [\ - ["widest-line", "npm:3.1.0"],\ - ["string-width", "npm:4.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["windows-release", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/windows-release-npm-4.0.0-0487118638-77c87d332d.zip/node_modules/windows-release/",\ - "packageDependencies": [\ - ["windows-release", "npm:4.0.0"],\ - ["execa", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["word-wrap", [\ - ["npm:1.2.3", {\ - "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-08a677e157.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-497d40beb2.zip/node_modules/wordwrap/",\ - "packageDependencies": [\ - ["wordwrap", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wrap-ansi", [\ - ["npm:6.2.0", {\ - "packageLocation": "./.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-0d64f2d438.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["wrap-ansi", "npm:6.2.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.0.0", {\ - "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-cebdaeca3a.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["wrap-ansi", "npm:7.0.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["string-width", "npm:4.2.2"],\ - ["strip-ansi", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wrappy", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/",\ - "packageDependencies": [\ - ["wrappy", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["write-file-atomic", [\ - ["npm:2.4.3", {\ - "packageLocation": "./.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-15ce863dce.zip/node_modules/write-file-atomic/",\ - "packageDependencies": [\ - ["write-file-atomic", "npm:2.4.3"],\ - ["graceful-fs", "npm:4.2.6"],\ - ["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-0955ab9430.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:6.2.3", {\ - "packageLocation": "./.yarn/cache/ws-npm-6.2.3-0647b230b5-19f8d16083.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "npm:6.2.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.4.5", {\ - "packageLocation": "./.yarn/cache/ws-npm-7.4.5-5c28d7e14e-e85ec540bf.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "npm:7.4.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:7.5.10", {\ - "packageLocation": "./.yarn/cache/ws-npm-7.5.10-878ccb886b-9c796b84ba.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "npm:7.5.10"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-2fa0f0d753/0/cache/ws-npm-7.5.10-878ccb886b-9c796b84ba.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"],\ - ["@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:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-4be6937734/0/cache/ws-npm-7.4.5-5c28d7e14e-e85ec540bf.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5"],\ - ["@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:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-aeec6fb9cb/0/cache/ws-npm-6.2.3-0647b230b5-19f8d16083.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"],\ - ["@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"\ - }]\ - ]],\ - ["xdg-basedir", [\ - ["npm:4.0.0", {\ - "packageLocation": "./.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-0073d5b59a.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-24f5d38c77.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-4ad5924974.zip/node_modules/xmlchars/",\ - "packageDependencies": [\ - ["xmlchars", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["xtend", [\ - ["npm:4.0.2", {\ - "packageLocation": "./.yarn/cache/xtend-npm-4.0.2-7f2375736e-ac5dfa738b.zip/node_modules/xtend/",\ - "packageDependencies": [\ - ["xtend", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["y18n", [\ - ["npm:4.0.3", {\ - "packageLocation": "./.yarn/cache/y18n-npm-4.0.3-ced95acdbc-392870b2a1.zip/node_modules/y18n/",\ - "packageDependencies": [\ - ["y18n", "npm:4.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.8", {\ - "packageLocation": "./.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-5f1b5f95e3.zip/node_modules/y18n/",\ - "packageDependencies": [\ - ["y18n", "npm:5.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yallist", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/yallist-npm-3.1.1-a568a556b4-9af0a4329c.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-4cb02b42b8.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-dc65f8d0dc.zip/node_modules/yaml/",\ - "packageDependencies": [\ - ["yaml", "npm:1.10.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.10.2", {\ - "packageLocation": "./.yarn/cache/yaml-npm-1.10.2-0e780aebdf-e088b37b4d.zip/node_modules/yaml/",\ - "packageDependencies": [\ - ["yaml", "npm:1.10.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.5.1", {\ - "packageLocation": "./.yarn/cache/yaml-npm-2.5.1-8b2871f510-0eecb679db.zip/node_modules/yaml/",\ - "packageDependencies": [\ - ["yaml", "npm:2.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yargs", [\ - ["npm:15.4.1", {\ - "packageLocation": "./.yarn/cache/yargs-npm-15.4.1-ca1c444de1-bbcc822229.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.2"],\ - ["which-module", "npm:2.0.0"],\ - ["y18n", "npm:4.0.3"],\ - ["yargs-parser", "npm:18.1.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:16.2.0", {\ - "packageLocation": "./.yarn/cache/yargs-npm-16.2.0-547873d425-807fa21211.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.2"],\ - ["y18n", "npm:5.0.8"],\ - ["yargs-parser", "npm:20.2.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:17.7.2", {\ - "packageLocation": "./.yarn/cache/yargs-npm-17.7.2-80b62638e1-abb3e37678.zip/node_modules/yargs/",\ - "packageDependencies": [\ - ["yargs", "npm:17.7.2"],\ - ["cliui", "npm:8.0.1"],\ - ["escalade", "npm:3.1.1"],\ - ["get-caller-file", "npm:2.0.5"],\ - ["require-directory", "npm:2.1.1"],\ - ["string-width", "npm:4.2.3"],\ - ["y18n", "npm:5.0.8"],\ - ["yargs-parser", "npm:21.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yargs-parser", [\ - ["npm:18.1.3", {\ - "packageLocation": "./.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-235bcbad5b.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.1", {\ - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.1-b1a18008ef-652ae539cf.zip/node_modules/yargs-parser/",\ - "packageDependencies": [\ - ["yargs-parser", "npm:20.2.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:20.2.7", {\ - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-402e468ca9.zip/node_modules/yargs-parser/",\ - "packageDependencies": [\ - ["yargs-parser", "npm:20.2.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:21.1.1", {\ - "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-9dc2c217ea.zip/node_modules/yargs-parser/",\ - "packageDependencies": [\ - ["yargs-parser", "npm:21.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yocto-queue", [\ - ["npm:0.1.0", {\ - "packageLocation": "./.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip/node_modules/yocto-queue/",\ - "packageDependencies": [\ - ["yocto-queue", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]]\ - ]\ -}'; - -function $$SETUP_STATE(hydrateRuntimeState, basePath) { - return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); -} - -const fs = require('fs'); -const path = require('path'); -const crypto = require('crypto'); -const os = require('os'); -const events = require('events'); -const nodeUtils = require('util'); -const stream = require('stream'); -const zlib = require('zlib'); -const require$$0 = require('module'); -const StringDecoder = require('string_decoder'); -const url = require('url'); -const buffer = require('buffer'); -const readline = require('readline'); -const assert = require('assert'); - -const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; - -function _interopNamespace(e) { - if (e && e.__esModule) return e; - const n = Object.create(null); - if (e) { - for (const k in e) { - if (k !== 'default') { - const d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - n.default = e; - return Object.freeze(n); -} - -const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); -const path__default = /*#__PURE__*/_interopDefaultLegacy(path); -const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); -const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); -const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); -const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); -const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); -const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); - -const S_IFMT = 61440; -const S_IFDIR = 16384; -const S_IFREG = 32768; -const S_IFLNK = 40960; -const SAFE_TIME = 456789e3; - -function makeError$1(code, message) { - return Object.assign(new Error(`${code}: ${message}`), { code }); -} -function EBUSY(message) { - return makeError$1(`EBUSY`, message); -} -function ENOSYS(message, reason) { - return makeError$1(`ENOSYS`, `${message}, ${reason}`); -} -function EINVAL(reason) { - return makeError$1(`EINVAL`, `invalid argument, ${reason}`); -} -function EBADF(reason) { - return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); -} -function ENOENT(reason) { - return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); -} -function ENOTDIR(reason) { - return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); -} -function EISDIR(reason) { - return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); -} -function EEXIST(reason) { - return makeError$1(`EEXIST`, `file already exists, ${reason}`); -} -function EROFS(reason) { - return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); -} -function ENOTEMPTY(reason) { - return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); -} -function EOPNOTSUPP(reason) { - return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); -} -function ERR_DIR_CLOSED() { - return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); -} - -const DEFAULT_MODE = S_IFREG | 420; -class StatEntry { - uid = 0; - gid = 0; - size = 0; - blksize = 0; - atimeMs = 0; - mtimeMs = 0; - ctimeMs = 0; - birthtimeMs = 0; - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = 0; - ino = 0; - mode = DEFAULT_MODE; - nlink = 1; - rdev = 0; - blocks = 1; - 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; - } -} -class BigIntStatsEntry { - uid = BigInt(0); - gid = BigInt(0); - size = BigInt(0); - blksize = BigInt(0); - atimeMs = BigInt(0); - mtimeMs = BigInt(0); - ctimeMs = BigInt(0); - birthtimeMs = BigInt(0); - atimeNs = BigInt(0); - mtimeNs = BigInt(0); - ctimeNs = BigInt(0); - birthtimeNs = BigInt(0); - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = BigInt(0); - ino = BigInt(0); - mode = BigInt(DEFAULT_MODE); - nlink = BigInt(1); - rdev = BigInt(0); - blocks = BigInt(1); - isBlockDevice() { - return false; - } - isCharacterDevice() { - return false; - } - isDirectory() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); - } - isFIFO() { - return false; - } - isFile() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); - } - isSocket() { - return false; - } - isSymbolicLink() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); - } -} -function makeDefaultStats() { - return new StatEntry(); -} -function clearStats(stats) { - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - stats[key] = 0; - } else if (typeof element === `bigint`) { - stats[key] = BigInt(0); - } else if (nodeUtils__namespace.types.isDate(element)) { - stats[key] = /* @__PURE__ */ new Date(0); - } - } - } - return stats; -} -function convertToBigIntStats(stats) { - const bigintStats = new BigIntStatsEntry(); - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - bigintStats[key] = BigInt(element); - } else if (nodeUtils__namespace.types.isDate(element)) { - bigintStats[key] = new Date(element); - } - } - } - bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); - bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); - bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); - bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); - return bigintStats; -} -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; - const aN = a; - const bN = b; - if (aN.atimeNs !== bN.atimeNs) - return false; - if (aN.mtimeNs !== bN.mtimeNs) - return false; - if (aN.ctimeNs !== bN.ctimeNs) - return false; - if (aN.birthtimeNs !== bN.birthtimeNs) - return false; - return true; -} - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const Filename = { - home: `~`, - nodeModules: `node_modules`, - manifest: `package.json`, - lockfile: `yarn.lock`, - virtual: `__virtual__`, - /** - * @deprecated - */ - pnpJs: `.pnp.js`, - pnpCjs: `.pnp.cjs`, - pnpData: `.pnp.data.json`, - pnpEsmLoader: `.pnp.loader.mjs`, - rc: `.yarnrc.yml`, - env: `.env` -}; -const npath = Object.create(path__default.default); -const ppath = Object.create(path__default.default.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path__default.default.posix.resolve(...segments); - } else { - return path__default.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.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\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} -async function copyFolder(prelayout, postlayout, 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; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class CustomDir { - constructor(path, nextDirent, opts = {}) { - this.path = path; - this.nextDirent = nextDirent; - this.opts = opts; - } - closed = false; - throwIfClosed() { - if (this.closed) { - throw ERR_DIR_CLOSED(); - } - } - async *[Symbol.asyncIterator]() { - try { - let dirent; - while ((dirent = await this.read()) !== null) { - yield dirent; - } - } finally { - await this.close(); - } - } - read(cb) { - const dirent = this.readSync(); - if (typeof cb !== `undefined`) - return cb(null, dirent); - return Promise.resolve(dirent); - } - readSync() { - this.throwIfClosed(); - return this.nextDirent(); - } - close(cb) { - this.closeSync(); - if (typeof cb !== `undefined`) - return cb(null); - return Promise.resolve(); - } - closeSync() { - this.throwIfClosed(); - this.opts.onClose?.(); - this.closed = true; - } -} -function opendir(fakeFs, path, entries, opts) { - const nextDirent = () => { - const filename = entries.shift(); - if (typeof filename === `undefined`) - return null; - const entryPath = fakeFs.pathUtils.join(path, filename); - return Object.assign(fakeFs.statSync(entryPath), { - name: filename, - path: void 0 - }); - }; - return new CustomDir(path, nextDirent, opts); -} - -function assertStatus(current, expected) { - if (current !== expected) { - throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); - } -} -class CustomStatWatcher extends events.EventEmitter { - fakeFs; - path; - bigint; - status = "ready" /* Ready */; - changeListeners = /* @__PURE__ */ new Map(); - lastStats; - startTimeout = null; - static create(fakeFs, path, opts) { - const statWatcher = new CustomStatWatcher(fakeFs, path, opts); - statWatcher.start(); - return statWatcher; - } - constructor(fakeFs, path, { bigint = false } = {}) { - super(); - this.fakeFs = fakeFs; - this.path = path; - this.bigint = bigint; - this.lastStats = this.stat(); - } - start() { - assertStatus(this.status, "ready" /* Ready */); - this.status = "running" /* Running */; - this.startTimeout = setTimeout(() => { - this.startTimeout = null; - if (!this.fakeFs.existsSync(this.path)) { - this.emit("change" /* Change */, this.lastStats, this.lastStats); - } - }, 3); - } - stop() { - assertStatus(this.status, "running" /* Running */); - this.status = "stopped" /* Stopped */; - if (this.startTimeout !== null) { - clearTimeout(this.startTimeout); - this.startTimeout = null; - } - this.emit("stop" /* Stop */); - } - stat() { - try { - return this.fakeFs.statSync(this.path, { bigint: this.bigint }); - } catch (error) { - const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); - return clearStats(statInstance); - } - } - /** - * 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("change" /* Change */, currentStats, previousStats); - }, opts.interval); - return opts.persistent ? interval : interval.unref(); - } - /** - * Registers a listener and assigns it an interval. - */ - registerChangeListener(listener, opts) { - this.addListener("change" /* Change */, listener); - this.changeListeners.set(listener, this.makeInterval(opts)); - } - /** - * Unregisters the listener and clears the assigned interval. - */ - unregisterChangeListener(listener) { - this.removeListener("change" /* 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; - } -} - -const statWatchersByFakeFS = /* @__PURE__ */ 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 = /* @__PURE__ */ 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); - } -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = crypto.createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - 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) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } 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 void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - 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; - } - } - createdDirectory ??= subPath; - 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); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - 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; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - 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); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - 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`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - 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 = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch (error) { - return Date.now() - startTime < 500; - } - try { - 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 (error2) { - } - } - if (Date.now() - startTime < 60 * 1e3) { - 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; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch (error) { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return os.EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -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); - } - } - 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); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - 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); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - 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); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, 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); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs__default.default) { - super(); - this.realFs = realFs; - } - 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) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - 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, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - 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 fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - 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)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - 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)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - 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 lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(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) => { - 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 rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(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) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - 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, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } 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); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, 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); - } - }; - } -} - -const MOUNT_MASK = 4278190080; -class MountFS extends BasePortableFakeFS { - baseFs; - mountInstances; - fdMap = /* @__PURE__ */ new Map(); - nextFd = 3; - factoryPromise; - factorySync; - filter; - getMountPoint; - magic; - maxAge; - maxOpenFiles; - typeCheck; - isMount = /* @__PURE__ */ new Set(); - notMount = /* @__PURE__ */ new Set(); - realPaths = /* @__PURE__ */ new Map(); - constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { - if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) - throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); - super(); - this.baseFs = baseFs; - this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; - this.factoryPromise = factoryPromise; - this.factorySync = factorySync; - this.filter = filter; - this.getMountPoint = getMountPoint; - this.magic = magicByte << 24; - this.maxAge = maxAge; - this.maxOpenFiles = maxOpenFiles; - this.typeCheck = typeCheck; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - saveAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - } - } - } - discardAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.discardAndClose?.(); - this.mountInstances.delete(path); - } - } - } - resolve(p) { - return this.baseFs.resolve(p); - } - remapFd(mountFs, fd) { - const remappedFd = this.nextFd++ | this.magic; - this.fdMap.set(remappedFd, [mountFs, fd]); - return remappedFd; - } - async openPromise(p, flags, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.openPromise(p, flags, mode); - }, async (mountFs, { subPath }) => { - return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); - }); - } - openSync(p, flags, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.openSync(p, flags, mode); - }, (mountFs, { subPath }) => { - return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); - }); - } - async opendirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.opendirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.opendirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - opendirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.opendirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.opendirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readPromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const [mountFs, realFd] = entry; - return await mountFs.readPromise(realFd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.readSync(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`readSync`); - const [mountFs, realFd] = entry; - return mountFs.readSync(realFd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`write`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return await mountFs.writePromise(realFd, buffer, offset); - } else { - return await mountFs.writePromise(realFd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`writeSync`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return mountFs.writeSync(realFd, buffer, offset); - } else { - return mountFs.writeSync(realFd, buffer, offset, length, position); - } - } - async closePromise(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.closePromise(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`close`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return await mountFs.closePromise(realFd); - } - closeSync(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.closeSync(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`closeSync`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return mountFs.closeSync(realFd); - } - createReadStream(p, opts) { - if (p === null) - return this.baseFs.createReadStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createReadStream(p, opts); - }, (mountFs, { archivePath, subPath }) => { - const stream = mountFs.createReadStream(subPath, opts); - stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); - return stream; - }); - } - createWriteStream(p, opts) { - if (p === null) - return this.baseFs.createWriteStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createWriteStream(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.createWriteStream(subPath, opts); - }); - } - async realpathPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.realpathPromise(p); - }, async (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = await this.baseFs.realpathPromise(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); - }); - } - realpathSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.realpathSync(p); - }, (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = this.baseFs.realpathSync(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); - }); - } - async existsPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.existsPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.existsPromise(subPath); - }); - } - existsSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.existsSync(p); - }, (mountFs, { subPath }) => { - return mountFs.existsSync(subPath); - }); - } - async accessPromise(p, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.accessPromise(p, mode); - }, async (mountFs, { subPath }) => { - return await mountFs.accessPromise(subPath, mode); - }); - } - accessSync(p, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.accessSync(p, mode); - }, (mountFs, { subPath }) => { - return mountFs.accessSync(subPath, mode); - }); - } - async statPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.statPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.statPromise(subPath, opts); - }); - } - statSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.statSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.statSync(subPath, opts); - }); - } - async fstatPromise(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatPromise(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstat`); - const [mountFs, realFd] = entry; - return mountFs.fstatPromise(realFd, opts); - } - fstatSync(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatSync(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const [mountFs, realFd] = entry; - return mountFs.fstatSync(realFd, opts); - } - async lstatPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lstatPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.lstatPromise(subPath, opts); - }); - } - lstatSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.lstatSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.lstatSync(subPath, opts); - }); - } - async fchmodPromise(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodPromise(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmod`); - const [mountFs, realFd] = entry; - return mountFs.fchmodPromise(realFd, mask); - } - fchmodSync(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodSync(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmodSync`); - const [mountFs, realFd] = entry; - return mountFs.fchmodSync(realFd, mask); - } - async chmodPromise(p, mask) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chmodPromise(p, mask); - }, async (mountFs, { subPath }) => { - return await mountFs.chmodPromise(subPath, mask); - }); - } - chmodSync(p, mask) { - return this.makeCallSync(p, () => { - return this.baseFs.chmodSync(p, mask); - }, (mountFs, { subPath }) => { - return mountFs.chmodSync(subPath, mask); - }); - } - async fchownPromise(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownPromise(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchown`); - const [zipFs, realFd] = entry; - return zipFs.fchownPromise(realFd, uid, gid); - } - fchownSync(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownSync(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchownSync`); - const [zipFs, realFd] = entry; - return zipFs.fchownSync(realFd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chownPromise(p, uid, gid); - }, async (mountFs, { subPath }) => { - return await mountFs.chownPromise(subPath, uid, gid); - }); - } - chownSync(p, uid, gid) { - return this.makeCallSync(p, () => { - return this.baseFs.chownSync(p, uid, gid); - }, (mountFs, { subPath }) => { - return mountFs.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 (mountFsO, { subPath: subPathO }) => { - return await this.makeCallPromise(newP, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, async (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return await mountFsO.renamePromise(subPathO, subPathN); - } - }); - }); - } - renameSync(oldP, newP) { - return this.makeCallSync(oldP, () => { - return this.makeCallSync(newP, () => { - return this.baseFs.renameSync(oldP, newP); - }, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }); - }, (mountFsO, { subPath: subPathO }) => { - return this.makeCallSync(newP, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return mountFsO.renameSync(subPathO, subPathN); - } - }); - }); - } - async copyFilePromise(sourceP, destP, flags = 0) { - const fallback = async (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = await sourceFs.readFilePromise(sourceP2); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - await destFs.writeFilePromise(destP2, content); - }; - return await this.makeCallPromise(sourceP, async () => { - return await this.makeCallPromise(destP, async () => { - return await this.baseFs.copyFilePromise(sourceP, destP, flags); - }, async (mountFsD, { subPath: subPathD }) => { - return await fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, async (mountFsS, { subPath: subPathS }) => { - return await this.makeCallPromise(destP, async () => { - return await fallback(mountFsS, subPathS, this.baseFs, destP); - }, async (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return await fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return await mountFsS.copyFilePromise(subPathS, subPathD, flags); - } - }); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - const fallback = (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = sourceFs.readFileSync(sourceP2); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - destFs.writeFileSync(destP2, content); - }; - return this.makeCallSync(sourceP, () => { - return this.makeCallSync(destP, () => { - return this.baseFs.copyFileSync(sourceP, destP, flags); - }, (mountFsD, { subPath: subPathD }) => { - return fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, (mountFsS, { subPath: subPathS }) => { - return this.makeCallSync(destP, () => { - return fallback(mountFsS, subPathS, this.baseFs, destP); - }, (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return mountFsS.copyFileSync(subPathS, subPathD, flags); - } - }); - }); - } - async appendFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.appendFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.appendFilePromise(subPath, content, opts); - }); - } - appendFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.appendFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.appendFileSync(subPath, content, opts); - }); - } - async writeFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.writeFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.writeFilePromise(subPath, content, opts); - }); - } - writeFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.writeFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.writeFileSync(subPath, content, opts); - }); - } - async unlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.unlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.unlinkPromise(subPath); - }); - } - unlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.unlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.unlinkSync(subPath); - }); - } - async utimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.utimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.utimesPromise(subPath, atime, mtime); - }); - } - utimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.utimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.utimesSync(subPath, atime, mtime); - }); - } - async lutimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lutimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.lutimesPromise(subPath, atime, mtime); - }); - } - lutimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.lutimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.lutimesSync(subPath, atime, mtime); - }); - } - async mkdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.mkdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.mkdirPromise(subPath, opts); - }); - } - mkdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.mkdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.mkdirSync(subPath, opts); - }); - } - async rmdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmdirPromise(subPath, opts); - }); - } - rmdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmdirSync(subPath, opts); - }); - } - async rmPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmPromise(subPath, opts); - }); - } - rmSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmSync(subPath, opts); - }); - } - async linkPromise(existingP, newP) { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.linkPromise(existingP, newP); - }, async (mountFs, { subPath }) => { - return await mountFs.linkPromise(existingP, subPath); - }); - } - linkSync(existingP, newP) { - return this.makeCallSync(newP, () => { - return this.baseFs.linkSync(existingP, newP); - }, (mountFs, { subPath }) => { - return mountFs.linkSync(existingP, subPath); - }); - } - async symlinkPromise(target, p, type) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.symlinkPromise(target, p, type); - }, async (mountFs, { subPath }) => { - return await mountFs.symlinkPromise(target, subPath); - }); - } - symlinkSync(target, p, type) { - return this.makeCallSync(p, () => { - return this.baseFs.symlinkSync(target, p, type); - }, (mountFs, { subPath }) => { - return mountFs.symlinkSync(target, subPath); - }); - } - async readFilePromise(p, encoding) { - return this.makeCallPromise(p, async () => { - return await this.baseFs.readFilePromise(p, encoding); - }, async (mountFs, { subPath }) => { - return await mountFs.readFilePromise(subPath, encoding); - }); - } - readFileSync(p, encoding) { - return this.makeCallSync(p, () => { - return this.baseFs.readFileSync(p, encoding); - }, (mountFs, { subPath }) => { - return mountFs.readFileSync(subPath, encoding); - }); - } - async readdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.readdirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - readdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.readdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.readdirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.readlinkPromise(subPath); - }); - } - readlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.readlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.readlinkSync(subPath); - }); - } - async truncatePromise(p, len) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.truncatePromise(p, len); - }, async (mountFs, { subPath }) => { - return await mountFs.truncatePromise(subPath, len); - }); - } - truncateSync(p, len) { - return this.makeCallSync(p, () => { - return this.baseFs.truncateSync(p, len); - }, (mountFs, { subPath }) => { - return mountFs.truncateSync(subPath, len); - }); - } - async ftruncatePromise(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncatePromise(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncate`); - const [mountFs, realFd] = entry; - return mountFs.ftruncatePromise(realFd, len); - } - ftruncateSync(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncateSync(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncateSync`); - const [mountFs, realFd] = entry; - return mountFs.ftruncateSync(realFd, len); - } - watch(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watch( - p, - // @ts-expect-error - a, - b - ); - }, (mountFs, { subPath }) => { - return mountFs.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 mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return await discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return await discard(); - return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); - } - makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { - if (typeof p !== `string`) - return discard(); - const normalizedP = this.resolve(p); - const mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return discard(); - return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); - } - findMount(p) { - if (this.filter && !this.filter.test(p)) - return null; - let filePath = ``; - while (true) { - const pathPartWithArchive = p.substring(filePath.length); - const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); - if (!mountPoint) - return null; - filePath = this.pathUtils.join(filePath, mountPoint); - if (!this.isMount.has(filePath)) { - if (this.notMount.has(filePath)) - continue; - try { - if (this.typeCheck !== null && (this.baseFs.lstatSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { - this.notMount.add(filePath); - continue; - } - } catch { - return null; - } - this.isMount.add(filePath); - } - return { - archivePath: filePath, - subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) - }; - } - } - limitOpenFilesTimeout = null; - limitOpenFiles(max) { - if (this.mountInstances === null) - return; - const now = Date.now(); - let nextExpiresAt = now + this.maxAge; - let closeCount = max === null ? 0 : this.mountInstances.size - max; - for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { - if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { - continue; - } else if (now >= expiresAt) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - continue; - } else if (max === null || closeCount <= 0) { - nextExpiresAt = expiresAt; - break; - } - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - } - if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { - this.limitOpenFilesTimeout = setTimeout(() => { - this.limitOpenFilesTimeout = null; - this.limitOpenFiles(null); - }, nextExpiresAt - now).unref(); - } - } - async getMountPromise(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - const createFsInstance = await this.factoryPromise(this.baseFs, p); - cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: createFsInstance(), - expiresAt: 0, - refCount: 0 - }; - } - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - cachedMountFs.refCount += 1; - try { - return await accept(cachedMountFs.childFs); - } finally { - cachedMountFs.refCount -= 1; - } - } else { - const mountFs = (await this.factoryPromise(this.baseFs, p))(); - try { - return await accept(mountFs); - } finally { - mountFs.saveAndClose?.(); - } - } - } - getMountSync(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: this.factorySync(this.baseFs, p), - expiresAt: 0, - refCount: 0 - }; - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - return accept(cachedMountFs.childFs); - } else { - const childFs = this.factorySync(this.baseFs, p); - try { - return accept(childFs); - } finally { - childFs.saveAndClose?.(); - } - } - } -} - -class PosixFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return npath.fromPortablePath(path); - } - mapToBase(path) { - return npath.toPortablePath(path); - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - 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`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - 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)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - 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) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; - -class NodePathFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return path; - } - mapToBase(path) { - if (typeof path === `string`) - return path; - if (path instanceof URL) - return url.fileURLToPath(path); - if (Buffer.isBuffer(path)) { - const str = path.toString(); - if (!isUtf8(path, str)) - throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); - return str; - } - throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); - } -} -function isUtf8(buf, str) { - if (typeof buffer__default.default.isUtf8 !== `undefined`) - return buffer__default.default.isUtf8(buf); - return Buffer.byteLength(str) === buf.byteLength; -} - -const kBaseFs = Symbol(`kBaseFs`); -const kFd = Symbol(`kFd`); -const kClosePromise = Symbol(`kClosePromise`); -const kCloseResolve = Symbol(`kCloseResolve`); -const kCloseReject = Symbol(`kCloseReject`); -const kRefs = Symbol(`kRefs`); -const kRef = Symbol(`kRef`); -const kUnref = Symbol(`kUnref`); -class FileHandle { - [kBaseFs]; - [kFd]; - [kRefs] = 1; - [kClosePromise] = void 0; - [kCloseResolve] = void 0; - [kCloseReject] = void 0; - constructor(fd, baseFs) { - this[kBaseFs] = baseFs; - this[kFd] = fd; - } - get fd() { - return this[kFd]; - } - async appendFile(data, options) { - try { - this[kRef](this.appendFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); - } finally { - this[kUnref](); - } - } - async chown(uid, gid) { - try { - this[kRef](this.chown); - return await this[kBaseFs].fchownPromise(this.fd, uid, gid); - } finally { - this[kUnref](); - } - } - async chmod(mode) { - try { - this[kRef](this.chmod); - return await this[kBaseFs].fchmodPromise(this.fd, mode); - } finally { - this[kUnref](); - } - } - createReadStream(options) { - return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); - } - createWriteStream(options) { - return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); - } - // FIXME: Missing FakeFS version - datasync() { - throw new Error(`Method not implemented.`); - } - // FIXME: Missing FakeFS version - sync() { - throw new Error(`Method not implemented.`); - } - async read(bufferOrOptions, offset, length, position) { - try { - this[kRef](this.read); - let buffer; - if (!Buffer.isBuffer(bufferOrOptions)) { - bufferOrOptions ??= {}; - buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); - offset = bufferOrOptions.offset || 0; - length = bufferOrOptions.length ?? buffer.byteLength; - position = bufferOrOptions.position ?? null; - } else { - buffer = bufferOrOptions; - } - offset ??= 0; - length ??= 0; - if (length === 0) { - return { - bytesRead: length, - buffer - }; - } - const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); - return { - bytesRead, - buffer - }; - } finally { - this[kUnref](); - } - } - async readFile(options) { - try { - this[kRef](this.readFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].readFilePromise(this.fd, encoding); - } finally { - this[kUnref](); - } - } - readLines(options) { - return readline.createInterface({ - input: this.createReadStream(options), - crlfDelay: Infinity - }); - } - async stat(opts) { - try { - this[kRef](this.stat); - return await this[kBaseFs].fstatPromise(this.fd, opts); - } finally { - this[kUnref](); - } - } - async truncate(len) { - try { - this[kRef](this.truncate); - return await this[kBaseFs].ftruncatePromise(this.fd, len); - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - utimes(atime, mtime) { - throw new Error(`Method not implemented.`); - } - async writeFile(data, options) { - try { - this[kRef](this.writeFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - await this[kBaseFs].writeFilePromise(this.fd, data, encoding); - } finally { - this[kUnref](); - } - } - async write(...args) { - try { - this[kRef](this.write); - if (ArrayBuffer.isView(args[0])) { - const [buffer, offset, length, position] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); - return { bytesWritten, buffer }; - } else { - const [data, position, encoding] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); - return { bytesWritten, buffer: data }; - } - } finally { - this[kUnref](); - } - } - // TODO: Use writev from FakeFS when that is implemented - async writev(buffers, position) { - try { - this[kRef](this.writev); - let bytesWritten = 0; - if (typeof position !== `undefined`) { - for (const buffer of buffers) { - const writeResult = await this.write(buffer, void 0, void 0, position); - bytesWritten += writeResult.bytesWritten; - position += writeResult.bytesWritten; - } - } else { - for (const buffer of buffers) { - const writeResult = await this.write(buffer); - bytesWritten += writeResult.bytesWritten; - } - } - return { - buffers, - bytesWritten - }; - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - readv(buffers, position) { - throw new Error(`Method not implemented.`); - } - close() { - if (this[kFd] === -1) return Promise.resolve(); - if (this[kClosePromise]) return this[kClosePromise]; - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { - this[kClosePromise] = void 0; - }); - } else { - this[kClosePromise] = new Promise((resolve, reject) => { - this[kCloseResolve] = resolve; - this[kCloseReject] = reject; - }).finally(() => { - this[kClosePromise] = void 0; - this[kCloseReject] = void 0; - this[kCloseResolve] = void 0; - }); - } - return this[kClosePromise]; - } - [kRef](caller) { - if (this[kFd] === -1) { - const err = new Error(`file closed`); - err.code = `EBADF`; - err.syscall = caller.name; - throw err; - } - this[kRefs]++; - } - [kUnref]() { - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); - } - } -} - -const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessSync`, - `appendFileSync`, - `createReadStream`, - `createWriteStream`, - `chmodSync`, - `fchmodSync`, - `chownSync`, - `fchownSync`, - `closeSync`, - `copyFileSync`, - `linkSync`, - `lstatSync`, - `fstatSync`, - `lutimesSync`, - `mkdirSync`, - `openSync`, - `opendirSync`, - `readlinkSync`, - `readFileSync`, - `readdirSync`, - `readlinkSync`, - `realpathSync`, - `renameSync`, - `rmdirSync`, - `rmSync`, - `statSync`, - `symlinkSync`, - `truncateSync`, - `ftruncateSync`, - `unlinkSync`, - `unwatchFile`, - `utimesSync`, - `watch`, - `watchFile`, - `writeFileSync`, - `writeSync` -]); -const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessPromise`, - `appendFilePromise`, - `fchmodPromise`, - `chmodPromise`, - `fchownPromise`, - `chownPromise`, - `closePromise`, - `copyFilePromise`, - `linkPromise`, - `fstatPromise`, - `lstatPromise`, - `lutimesPromise`, - `mkdirPromise`, - `openPromise`, - `opendirPromise`, - `readdirPromise`, - `realpathPromise`, - `readFilePromise`, - `readdirPromise`, - `readlinkPromise`, - `renamePromise`, - `rmdirPromise`, - `rmPromise`, - `statPromise`, - `symlinkPromise`, - `truncatePromise`, - `ftruncatePromise`, - `unlinkPromise`, - `utimesPromise`, - `writeFilePromise`, - `writeSync` -]); -function patchFs(patchedFs, fakeFs) { - fakeFs = new NodePathFS(fakeFs); - const setupFn = (target, name, replacement) => { - const orig = target[name]; - target[name] = replacement; - if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { - replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; - } - }; - { - 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`, (...args) => { - let [fd, buffer, offset, length, position, callback] = args; - if (args.length <= 3) { - let options = {}; - if (args.length < 3) { - callback = args[1]; - } else { - options = args[1]; - callback = args[2]; - } - ({ - buffer = Buffer.alloc(16384), - offset = 0, - length = buffer.byteLength, - position - } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) { - process.nextTick(() => { - callback(null, 0, buffer); - }); - return; - } - if (position == null) - position = -1; - process.nextTick(() => { - fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { - callback(null, bytesRead, buffer); - }, (error) => { - callback(error, 0, buffer); - }); - }); - }); - 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; - } - { - setupFn(patchedFs, `existsSync`, (p) => { - try { - return fakeFs.existsSync(p); - } catch (error) { - return false; - } - }); - setupFn(patchedFs, `readSync`, (...args) => { - let [fd, buffer, offset, length, position] = args; - if (args.length <= 3) { - const options = args[2] || {}; - ({ offset = 0, length = buffer.byteLength, position } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) - return 0; - if (position == null) - position = -1; - return fakeFs.readSync(fd, buffer, offset, length, position); - }); - 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; - } - { - const patchedFsPromises = patchedFs.promises; - 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; - if (fnName === `open`) - continue; - setupFn(patchedFsPromises, origName, (pathLike, ...args) => { - if (pathLike instanceof FileHandle) { - return pathLike[origName].apply(pathLike, args); - } else { - return fakeImpl.call(fakeFs, pathLike, ...args); - } - }); - } - setupFn(patchedFsPromises, `open`, async (...args) => { - const fd = await fakeFs.openPromise(...args); - return new FileHandle(fd, fakeFs); - }); - } - { - patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.readPromise(fd, buffer, ...args); - return { bytesRead: await res, buffer }; - }; - patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.writePromise(fd, buffer, ...args); - return { bytesWritten: await res, buffer }; - }; - } -} - -let cachedInstance; -let registeredFactory = () => { - throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); -}; -function setFactory(factory) { - registeredFactory = factory; -} -function getInstance() { - if (typeof cachedInstance === `undefined`) - cachedInstance = registeredFactory(); - return cachedInstance; -} - -var libzipSync = {exports: {}}; - -(function (module, exports) { -var frozenFs = Object.assign({}, fs__default.default); -var createModule = function() { - var _scriptDir = void 0; - if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; - return function(createModule2) { - createModule2 = createModule2 || {}; - var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = {}; - var key; - for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } - } - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readBinary; - var nodeFS; - var nodePath; - { - { - 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 = path__default.default; - filename = nodePath["normalize"](filename); - return nodeFS["readFileSync"](filename, binary ? null : "utf8"); - }; - readBinary = function readBinary2(filename) { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - if (process["argv"].length > 1) { - process["argv"][1].replace(/\\/g, "/"); - } - process["argv"].slice(2); - Module["inspect"] = function() { - return "[Emscripten Module object]"; - }; - } - 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"]) ; - if (Module["thisProgram"]) ; - if (Module["quit"]) ; - var wasmBinary; - if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; - Module["noExitRuntime"] || true; - 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 LE_HEAP_LOAD_I16((ptr >> 1) * 2); - case "i32": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "i64": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "float": - return LE_HEAP_LOAD_F32((ptr >> 2) * 4); - case "double": - return LE_HEAP_LOAD_F64((ptr >> 3) * 8); - default: - abort("invalid type for getValue: " + type); - } - return null; - } - var wasmMemory; - var ABORT = false; - 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 ret2 = 0; - if (str !== null && str !== void 0 && str !== 0) { - var len = (str.length << 2) + 1; - ret2 = stackAlloc(len); - stringToUTF8(str, ret2, len); - } - return ret2; - }, - array: function(arr) { - var ret2 = stackAlloc(arr.length); - writeArrayToMemory(arr, ret2); - return ret2; - } - }; - function convertReturnValue(ret2) { - if (returnType === "string") return UTF8ToString(ret2); - if (returnType === "boolean") return Boolean(ret2); - return ret2; - } - 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); - }; - } - var UTF8Decoder = new TextDecoder("utf8"); - function UTF8ToString(ptr, maxBytesToRead) { - if (!ptr) return ""; - var maxPtr = ptr + maxBytesToRead; - for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; - return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); - } - 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, buffer2) { - HEAP8.set(array, buffer2); - } - function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - x % multiple; - } - return x; - } - var buffer, HEAP8, HEAPU8; - var HEAP_DATA_VIEW; - function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); - Module["HEAP8"] = HEAP8 = new Int8Array(buf); - Module["HEAP16"] = new Int16Array(buf); - Module["HEAP32"] = new Int32Array(buf); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); - Module["HEAPU16"] = new Uint16Array(buf); - Module["HEAPU32"] = new Uint32Array(buf); - Module["HEAPF32"] = new Float32Array(buf); - Module["HEAPF64"] = new Float64Array(buf); - } - Module["INITIAL_MEMORY"] || 16777216; - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - 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() { - callRuntimeCallbacks(__ATINIT__); - } - 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 addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - 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; - what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABPcGVyYXRpb24gbm90IHN1cHBvcnRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAEVudHJ5IGhhcyBiZWVuIGRlbGV0ZWQAQ29udGFpbmluZyB6aXAgYXJjaGl2ZSB3YXMgY2xvc2VkAENsb3NpbmcgemlwIGFyY2hpdmUgZmFpbGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAFVua25vd24gZXJyb3IgJWQAQUUAKG51bGwpADogAFBLBgcAUEsGBgBQSwUGAFBLAwQAUEsBAgAAAAA/BQAAwAcAAJMIAAB4CAAAbwUAAJEFAAB6BQAAsgUAAFYIAAAbBwAA1gQAAAsHAADqBgAAnAUAAMgGAACyCAAAHggAACgHAABHBAAAoAYAAGAFAAAuBAAAPgcAAD8IAAD+BwAAjgYAAMkIAADeCAAA5gcAALIGAABVBQAAqAcAACAAQcgTCxEBAAAAAQAAAAEAAAABAAAAAQBB7BMLCQEAAAABAAAAAgBBmBQLAQEAQbgUCwEBAEHSFAukLDomOyZlJmYmYyZgJiIg2CXLJdklQiZAJmomayY8JrolxCWVITwgtgCnAKwlqCGRIZMhkiGQIR8ilCGyJbwlIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AAIjxwD8AOkA4gDkAOAA5QDnAOoA6wDoAO8A7gDsAMQAxQDJAOYAxgD0APYA8gD7APkA/wDWANwAogCjAKUApyCSAeEA7QDzAPoA8QDRAKoAugC/ABAjrAC9ALwAoQCrALsAkSWSJZMlAiUkJWElYiVWJVUlYyVRJVclXSVcJVslECUUJTQlLCUcJQAlPCVeJV8lWiVUJWklZiVgJVAlbCVnJWglZCVlJVklWCVSJVMlayVqJRglDCWIJYQljCWQJYAlsQPfAJMDwAOjA8MDtQDEA6YDmAOpA7QDHiLGA7UDKSJhIrEAZSJkIiAjISP3AEgisAAZIrcAGiJ/ILIAoCWgAAAAAACWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAARjtnZYx2zsrKTamvWevtTh/QiivVnSOEk6ZE4bLW25307bz4PqAVV3ibcjLrPTbTrQZRtmdL+BkhcJ98JavG4GOQoYWp3Qgq7+ZvT3xAK646e0zL8DblZLYNggGXfR190UZ6GBsL07ddMLTSzpbwM4itl1ZC4D75BNtZnAtQ/BpNa5t/hyYy0MEdVbVSuxFUFIB2Md7N356Y9rj7uYYnh/+9QOI18OlNc8uOKOBtysmmVq2sbBsEAyogY2Yu+zr6aMBdn6KN9DDktpNVdxDXtDErsNH7Zhl+vV1+G5wt4WfaFoYCEFsvrVZgSMjFxgwpg/1rTEmwwuMPi6WGFqD4NVCbn1Ca1jb/3O1Rmk9LFXsJcHIewz3bsYUGvNSkdiOo4k1EzSgA7WJuO4oH/Z3O5rumqYNx6wAsN9BnSTMLPtV1MFmwv33wH/lGl3pq4NObLNu0/uaWHVGgrXo0gd3lSMfmgi0NqyuCS5BM59g2CAaeDW9jVEDGzBJ7oakd8AQvW8tjSpGGyuXXva2ARBvpYQIgjgTIbSerjlZAzq8m37LpHbjXI1AReGVrdh32zTL8sPZVmXq7/DY8gJtTOFvCz35gpaq0LQwF8hZrYGGwL4Eni0jk7cbhS6v9hi6KjRlSzLZ+Nwb715hAwLD902b0HJVdk3lfEDrWGStdsyxA8Wtqe5YOoDY/oeYNWMR1qxwlM5B7QPnd0u+/5rWKnpYq9titTZMS4OQ8VNuDWcd9x7iBRqDdSwsJcg0wbhcJ6zeLT9BQ7oWd+UHDpp4kUADaxRY7vaDcdhQPmk1zars97Bb9BotzN0si3HFwRbni1gFYpO1mPW6gz5Iom6j3JxANcWErahSrZsO77V2k3n774D84wIda8o0u9bS2SZCVxtbs0/2xiRmwGCZfi39DzC07oooWXMdAW/VoBmCSDQK7y5FEgKz0js0FW8j2Yj5bUCbfHWtButcm6BWRHY9wsG0QDPZWd2k8G97GeiC5o+mG/UKvvZonZfAziCPLVO064AlefNtuO7aWx5TwraDxYwvkECUwg3XvfSraqUZNv4g20sPODbWmBEAcCUJ7e2zR3T+Nl+ZY6F2r8UcbkJYiH0vPvllwqNuTPQF01QZmEUagIvAAm0WVytbsOozti1+tnRQj66ZzRiHr2uln0L2M9Hb5bbJNngh4ADenPjtQwjGw9UR3i5IhvcY7jvv9XOtoWxgKLmB/b+Qt1sCiFrGlg2Yu2cVdSbwPEOATSSuHdtqNw5ectqTyVvsNXRDAajgUGzOkUiBUwZht/W7eVpoLTfDe6gvLuY/BhhAgh713RabN6Dng9o9cKrsm82yAQZb/JgV3uR1iEnNQy701a6zYAAAAAFiA4tfxBrR0qYZWo+INaOm6jYo+EwvcnUuLPkqFHaEJ3Z1D3nQbFX0sm/eqZxDJ4D+QKzeWFn2UzpafQwo7QhNSu6DE+z32Z6O9FLDoNir6sLbILRkwno5BsHxZjybjGtemAc1+IFduJqC1uW0ri/M1q2kknC0/h8St3VAUdoQmTPZm8eVwMFK98NKF9nvsz677DhgHfVi7X/26bJFrJS/J68f4YG2RWzjtc4xzZk3GK+avEYJg+bLa4BtlHk3GNUbNJOLvS3JBt8uQlvxArtykwEwLDUYaqFXG+H+bUGc8w9CF62pW00gy1jGfeV0P1SHd7QKIW7uh0NtZdijsCE1wbOqa2eq8OYFqXu7K4WCkkmGCczvn1NBjZzYHrfGpRPVxS5Nc9x0wBHf/50/8wa0XfCN6vvp12eZ6lw4i10peeleoidPR/iqLURz9wNoit5hawGAx3JbDaVx0FKfK61f/SgmAVsxfIw5MvfRFx4O+HUdhabTBN8rsQdUdPJqMa2QabrzNnDgflRzayN6X5IKGFwZVL5FQ9ncRsiG5hy1i4QfPtUiBmRYQAXvBW4pFiwMKp1yqjPH/8gwTKDahznhuISyvx6d6DJ8nmNvUrKaRjCxERiWqEuV9KvAys7xvces8jaZCutsFGjo50lGxB5gJMeVPoLez7Pg3UTtQ2BGaCFjzTaHepe75Xkc5stV5c+pVm6RD080HG1Mv0NXFsJONRVJEJMME53xD5jA3yNh6b0g6rcbObA6eTo7ZWuNTiQJjsV6r5ef982UFKrjuO2Dgbtm3SeiPFBFobcPf/vKAh34QVy74RvR2eKQjPfOaaWVzeL7M9S4dlHXMykSulbwcLndrtaghyO0owx+mo/1V/iMfglelSSEPJav2wbM0tZkz1mIwtYDBaDViFiO+XFx7Pr6L0rjoKIo4Cv9OldevFhU1eL+TY9vnE4EMrJi/RvQYXZFdngsyBR7p5cuIdqaTCJRxOo7C0mIOIAUphR5PcQX8mNiDqjuAA0jseDQZ1yC0+wCJMq2j0bJPdJo5cT7CuZPpaz/FSjO/J539KbjepalaCQwvDKpUr+59HyTQN0ekMuDuImRDtqKGlHIPW8Qqj7kTgwnvsNuJDWeQAjMtyILR+mEEh1k5hGWO9xL6za+SGBoGFE65XpSsbhUfkiRNn3Dz5BkmULyZxIdsQp3xNMJ/Jp1EKYXFxMtSjk/1GNbPF89/SUFsJ8mju+lfPPix394vGFmIjEDZalsLUlQRU9K2xvpU4GWi1AKyZnnf4j75PTWXf2uWz/+JQYR0twvc9FXcdXIDfy3y4ajjZH7ru+ScPBJiyp9K4ihIAWkWAlnp9NXwb6J2qO9AoQAAAADhtlLvg2vUBWLdhuoG16gL52H65IW8fA5kCi7hDK5RF+0YA/iPxYUSbnPX/Qp5+Rzrz6vziRItGWikf/YYXKMu+erxwZs3dyt6gSXEHosLJf89Wcqd4N8gfFaNzxTy8jn1RKDWl5kmPHYvdNMSJVoy85MI3ZFOjjdw+NzYMLhGXdEOFLKz05JYUmXAtzZv7lbX2by5tQQ6U1SyaLw8FhdK3aBFpb99w09ey5GgOsG/Qdt37a65qmtEWBw5qyjk5XPJUrecq48xdko5Y5kuM014z4Ufl61YmX1M7suSJEq0ZMX85ounIWBhRpcyjiKdHG/DK06AofbIakBAmoVgcI26gcbfVeMbWb8CrQtQZqclsYcRd17lzPG0BHqjW2ze3K2NaI5C77UIqA4DWkdqCXSmi78mSelioKMI1PJMeCwulJmafHv7R/qRGvGofn77hp+fTdRw/ZBSmhwmAHV0gn+DlTQtbPfpq4YWX/lpclXXiJPjhWfxPgONEIhRYlDIy+exfpkI06Mf4jIVTQ1WH2Pst6kxA9V0t+k0wuUGXGaa8L3QyB/fDU71PrscGlqxMvu7B2AU2drm/jhstBFIlGjJqSI6Jsv/vMwqSe4jTkPAwq/1ki3NKBTHLJ5GKEQ6Od6ljGsxx1Ht2ybnvzRC7ZHVo1vDOsGGRdAgMBc/geZrrmBQOUECjb+r4zvtRIcxw6Vmh5FKBFoXoOXsRU+NSDq5bP5oVg4j7rzvlbxTi5+SsmopwF0I9Ea36UIUWJm6yIB4DJpvGtEchftnTmqfbWCLftsyZBwGtI79sOZhlRSZl3Siy3gWf02S98kffZPDMZxydWNzEKjlmfEet3axXi3zUOh/HDI1+fbTg6sZt4mF+FY/1xc04lH91VQDEr3wfORcRi4LPpuo4d8t+g67J9TvWpGGADhMAOrZ+lIFqQKO3Ui03DIqaVrYy98IN6/VJtZOY3Q5LL7y080IoDylrN/KRBqNJSbHC8/HcVkgo3t3wULNJS4gEKPEwabxK+GW5hQAILT7Yv0yEYNLYP7nQU4fBvcc8GQqmhqFnMj17Ti3AwyO5exuU2MGj+Ux6evvHwgKWU3naITLDYkymeL5ykU6GHwX1XqhkT+bF8PQ/x3tMR6rv958djk0ncBr2/VkFC0U0kbCdg/AKJe5ksfzs7wmEgXuyXDYaCORbjrM0S6gSTCY8qZSRXRMs/Mmo9f5CEI2T1qtVJLcR7UkjqjdgPFePDajsV7rJVu/XXe021dZVTrhC7pYPI1QuYrfv8lyA2coxFGIShnXYquvhY3PpatsLhP5g0zOf2mteC2GxdxScCRqAJ9Gt4Z1pwHUmsML+nsivaiUQGAufqHWfJEAAAAAQ8umh8eQPNSEW5pTzycIc4zsrvQItzSnS3ySIJ5PEObdhLZhWd8sMhoUirVRaBiVEqO+Epb4JEHVM4LGfZlRFz5S95C6CW3D+cLLRLK+WWTxdf/jdS5lsDblwzfj1kHxoB3ndiRGfSVnjduiLPFJgm867wXrYXVWqKrT0foyoy65+QWpPaKf+n5pOX01Fatddt4N2vKFl4mxTjEOZH2zyCe2FU+j7Y8c4CYpm6tau7vokR08bMqHby8BIeiHq/I5xGBUvkA7zu0D8GhqSIz6SgtHXM2PHMaezNdgGRnk4t9aL0RY3nTeC52/eIzWw+qslQhMKxFT1nhSmHD/9GVGXbeu4Noz9XqJcD7cDjtCTi54ieip/NJy+r8Z1H1qKla7KeHwPK26am/ucczopQ1eyObG+E9inWIcIVbEm4n8F0rKN7HNTmwrng2njRlG2x85BRC5voFLI+3CgIVqF7MHrFR4oSvQIzt4k+id/9iUD9+bX6lYHwQzC1zPlYwOV+VzTZxD9MnH2aeKDH8gwXDtAIK7S4cG4NHURSt3U5AY9ZXT01MSV4jJQRRDb8ZfP/3mHPRbYZivwTLbZGe1c860ZDAFEuO0Xoiw95UuN7zpvBf/IhqQe3mAwziyJkTtgaSCrkoCBSoRmFZp2j7RIqas8WFtCnblNpAlpv02oujLjLqrACo9L1uwbmyQFukn7ITJZCciTuB8uB2jtx6adoScXDVPOtuxFKCI8t8GD7mjlC/6aDKofjOo+z34DnyVUt2t1pl7KlLC4XkRCUf+WnXV3hm+c1md5ekK3i5PjQsdzUtI1mvMzI3xn49GVxjEOsU4h/FjvwOq+exAYV9rEvkvlFEyiRPVaRNAlqK1x93eJ+eeFYFgGk4bM1mFvbSMtj9yz32Z9UsmA6YI7aUhQ5E3AQBakYaEAQvVx8qtUm9gfoMsq9gEqPBCV+s75NCgR3bw44zQd2fXSiQkHOyj8S9uZbLkyOI2v1KxdXT0Nj4IZhZ9w8CR+ZhawrpT/EUcrsrnX2VsYNs+9jOY9VC004nClJBCZBMUGf5AV9JYx4Lh2gHBKnyGRXHm1Qa6QFJNxtJyDg109YpW7qbJnUghYTeb8CL8PXemp6ck5WwBo64Qk4Pt2zUEaYCvVypLCdD/eIsWvLMtkTjot8J7IxFFMF+DZXOUJeL3z7+xtAQZNuacacmlV89OIQxVHWLH85opu2G6anDHPe4rXW6t4PvpeNN5LzsY36i/Q0X7/IjjfLf0cVz0P9fbcGRNiDOv6w+bBTje2M6eWVyVBAofXqKNVCIwrRfpliqTsgx50Hmq/gVKKDhGgY6/wtoU7IERsmvKbSBLiaaGzA39HJ9ONroYFAQAAJ0HAAAsCQAAhgUAAEgFAACnBQAAAAQAADIFAAC8BQAALAkAQYDBAAv3CQwACACMAAgATAAIAMwACAAsAAgArAAIAGwACADsAAgAHAAIAJwACABcAAgA3AAIADwACAC8AAgAfAAIAPwACAACAAgAggAIAEIACADCAAgAIgAIAKIACABiAAgA4gAIABIACACSAAgAUgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - var binary = tryParseAsDataURI(file); - if (binary) { - return binary; - } - if (readBinary) { - return readBinary(file); - } 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 (err2) { - abort(err2); - } - } - function instantiateSync(file, info) { - var instance; - var module2; - var binary; - try { - binary = getBinary(file); - module2 = new WebAssembly.Module(binary); - instance = new WebAssembly.Instance(module2, info); - } catch (e) { - var str = e.toString(); - err("failed to compile wasm module: " + str); - if (str.includes("imported Memory") || str.includes("memory import")) { - 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; - } - return [instance, module2]; - } - function createWasm() { - var info = { a: asmLibraryArg }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["g"]; - updateGlobalBufferAndViews(wasmMemory.buffer); - wasmTable = Module["asm"]["W"]; - addOnInit(Module["asm"]["h"]); - removeRunDependency(); - } - addRunDependency(); - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - return false; - } - } - var result = instantiateSync(wasmBinaryFile, info); - receiveInstance(result[0]); - return Module["asm"]; - } - function LE_HEAP_LOAD_F32(byteOffset) { - return HEAP_DATA_VIEW.getFloat32(byteOffset, true); - } - function LE_HEAP_LOAD_F64(byteOffset) { - return HEAP_DATA_VIEW.getFloat64(byteOffset, true); - } - function LE_HEAP_LOAD_I16(byteOffset) { - return HEAP_DATA_VIEW.getInt16(byteOffset, true); - } - function LE_HEAP_LOAD_I32(byteOffset) { - return HEAP_DATA_VIEW.getInt32(byteOffset, true); - } - function LE_HEAP_STORE_I32(byteOffset, value) { - HEAP_DATA_VIEW.setInt32(byteOffset, value, true); - } - 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 === void 0) { - wasmTable.get(func)(); - } else { - wasmTable.get(func)(callback.arg); - } - } else { - func(callback.arg === void 0 ? null : callback.arg); - } - } - } - function _gmtime_r(time, tmPtr) { - var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); - LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); - LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); - LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); - LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); - LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); - LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); - LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); - LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); - return tmPtr; - } - function ___gmtime_r(a0, a1) { - return _gmtime_r(a0, a1); - } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } - 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) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - var maxHeapSize = 2147483648; - if (requestedSize > maxHeapSize) { - return false; - } - 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(requestedSize, overGrownHeapSize), 65536) - ); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - function _setTempRet0(val) { - } - function _time(ptr) { - var ret = Date.now() / 1e3 | 0; - if (ptr) { - LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); - } - return ret; - } - function _tzset() { - if (_tzset.called) return; - _tzset.called = true; - var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - var winterOffset = winter.getTimezoneOffset(); - var summerOffset = summer.getTimezoneOffset(); - var stdTimezoneOffset = Math.max(winterOffset, summerOffset); - LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); - LE_HEAP_STORE_I32( - (__get_daylight() >> 2) * 4, - Number(winterOffset != summerOffset) - ); - 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 (summerOffset < winterOffset) { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); - } else { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); - } - } - function _timegm(tmPtr) { - _tzset(); - var time = Date.UTC( - LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, - LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), - 0 - ); - var date = new Date(time); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - return date.getTime() / 1e3 | 0; - } - function intArrayFromBase64(s) { - { - var buf; - try { - buf = Buffer.from(s, "base64"); - } catch (_) { - buf = new Buffer(s, "base64"); - } - return new Uint8Array( - buf["buffer"], - buf["byteOffset"], - buf["byteLength"] - ); - } - } - function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); - } - var asmLibraryArg = { - e: ___gmtime_r, - c: _emscripten_memcpy_big, - d: _emscripten_resize_heap, - a: _setTempRet0, - b: _time, - f: _timegm - }; - var asm = createWasm(); - Module["___wasm_call_ctors"] = asm["h"]; - Module["_zip_ext_count_symlinks"] = asm["i"]; - Module["_zip_file_get_external_attributes"] = asm["j"]; - Module["_zipstruct_statS"] = asm["k"]; - Module["_zipstruct_stat_size"] = asm["l"]; - Module["_zipstruct_stat_mtime"] = asm["m"]; - Module["_zipstruct_stat_crc"] = asm["n"]; - Module["_zipstruct_errorS"] = asm["o"]; - Module["_zipstruct_error_code_zip"] = asm["p"]; - Module["_zipstruct_stat_comp_size"] = asm["q"]; - Module["_zipstruct_stat_comp_method"] = asm["r"]; - Module["_zip_close"] = asm["s"]; - Module["_zip_delete"] = asm["t"]; - Module["_zip_dir_add"] = asm["u"]; - Module["_zip_discard"] = asm["v"]; - Module["_zip_error_init_with_code"] = asm["w"]; - Module["_zip_get_error"] = asm["x"]; - Module["_zip_file_get_error"] = asm["y"]; - Module["_zip_error_strerror"] = asm["z"]; - Module["_zip_fclose"] = asm["A"]; - Module["_zip_file_add"] = asm["B"]; - Module["_free"] = asm["C"]; - var _malloc = Module["_malloc"] = asm["D"]; - Module["_zip_source_error"] = asm["E"]; - Module["_zip_source_seek"] = asm["F"]; - Module["_zip_file_set_external_attributes"] = asm["G"]; - Module["_zip_file_set_mtime"] = asm["H"]; - Module["_zip_fopen_index"] = asm["I"]; - Module["_zip_fread"] = asm["J"]; - Module["_zip_get_name"] = asm["K"]; - Module["_zip_get_num_entries"] = asm["L"]; - Module["_zip_source_read"] = asm["M"]; - Module["_zip_name_locate"] = asm["N"]; - Module["_zip_open_from_source"] = asm["O"]; - Module["_zip_set_file_compression"] = asm["P"]; - Module["_zip_source_buffer"] = asm["Q"]; - Module["_zip_source_buffer_create"] = asm["R"]; - Module["_zip_source_close"] = asm["S"]; - Module["_zip_source_free"] = asm["T"]; - Module["_zip_source_keep"] = asm["U"]; - Module["_zip_source_open"] = asm["V"]; - Module["_zip_source_tell"] = asm["X"]; - Module["_zip_stat_index"] = asm["Y"]; - var __get_tzname = Module["__get_tzname"] = asm["Z"]; - var __get_daylight = Module["__get_daylight"] = asm["_"]; - var __get_timezone = Module["__get_timezone"] = asm["$"]; - var stackSave = Module["stackSave"] = asm["aa"]; - var stackRestore = Module["stackRestore"] = asm["ba"]; - var stackAlloc = Module["stackAlloc"] = asm["ca"]; - Module["cwrap"] = cwrap; - Module["getValue"] = getValue; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; - }; - function run(args) { - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) return; - initRuntime(); - readyPromiseResolve(Module); - 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()(); - } - } - run(); - return createModule2; - }; -}(); -module.exports = createModule; -}(libzipSync)); - -const createModule = libzipSync.exports; - -const number64 = [ - `number`, - // low - `number` - // high -]; -var Errors = /* @__PURE__ */ ((Errors2) => { - Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; - Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; - Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; - Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; - Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; - Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; - Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; - Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; - Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; - Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; - Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; - Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; - Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; - Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; - Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; - Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; - Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; - Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; - Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; - Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; - Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; - Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; - Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; - Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; - Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; - Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; - Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; - Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; - Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; - Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; - Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; - Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; - return Errors2; -})(Errors || {}); -const makeInterface = (emZip) => ({ - // Those are getters because they can change after memory growth - get HEAPU8() { - return emZip.HEAPU8; - }, - errors: Errors, - SEEK_SET: 0, - SEEK_CUR: 1, - SEEK_END: 2, - ZIP_CHECKCONS: 4, - ZIP_EXCL: 2, - ZIP_RDONLY: 16, - ZIP_FL_OVERWRITE: 8192, - ZIP_FL_COMPRESSED: 4, - ZIP_OPSYS_DOS: 0, - ZIP_OPSYS_AMIGA: 1, - ZIP_OPSYS_OPENVMS: 2, - ZIP_OPSYS_UNIX: 3, - ZIP_OPSYS_VM_CMS: 4, - ZIP_OPSYS_ATARI_ST: 5, - ZIP_OPSYS_OS_2: 6, - ZIP_OPSYS_MACINTOSH: 7, - ZIP_OPSYS_Z_SYSTEM: 8, - ZIP_OPSYS_CPM: 9, - ZIP_OPSYS_WINDOWS_NTFS: 10, - ZIP_OPSYS_MVS: 11, - ZIP_OPSYS_VSE: 12, - ZIP_OPSYS_ACORN_RISC: 13, - ZIP_OPSYS_VFAT: 14, - ZIP_OPSYS_ALTERNATE_MVS: 15, - ZIP_OPSYS_BEOS: 16, - ZIP_OPSYS_TANDEM: 17, - ZIP_OPSYS_OS_400: 18, - ZIP_OPSYS_OS_X: 19, - ZIP_CM_DEFAULT: -1, - ZIP_CM_STORE: 0, - ZIP_CM_DEFLATE: 8, - uint08S: emZip._malloc(1), - uint32S: emZip._malloc(4), - malloc: emZip._malloc, - free: emZip._free, - getValue: emZip.getValue, - openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), - close: emZip.cwrap(`zip_close`, `number`, [`number`]), - discard: emZip.cwrap(`zip_discard`, null, [`number`]), - getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), - getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), - getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), - delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), - statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), - fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), - fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), - fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), - dir: { - add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) - }, - file: { - add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), - getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), - getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), - setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) - }, - ext: { - countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) - }, - error: { - initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), - strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) - }, - name: { - locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) - }, - source: { - fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), - fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), - free: emZip.cwrap(`zip_source_free`, null, [`number`]), - keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), - open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), - close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), - seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), - tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), - read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), - error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) - }, - struct: { - statS: emZip.cwrap(`zipstruct_statS`, `number`, []), - statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), - statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), - statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), - statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), - statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), - errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), - errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) - } -}); - -function getArchivePart(path, extension) { - let idx = path.indexOf(extension); - if (idx <= 0) - return null; - let nextCharIdx = idx; - while (idx >= 0) { - nextCharIdx = idx + extension.length; - if (path[nextCharIdx] === ppath.sep) - break; - if (path[idx - 1] === ppath.sep) - return null; - idx = path.indexOf(extension, nextCharIdx); - } - if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) - return null; - return path.slice(0, nextCharIdx); -} -class ZipOpenFS extends MountFS { - static async openPromise(fn, opts) { - const zipOpenFs = new ZipOpenFS(opts); - try { - return await fn(zipOpenFs); - } finally { - zipOpenFs.saveAndClose(); - } - } - constructor(opts = {}) { - const fileExtensions = opts.fileExtensions; - const readOnlyArchives = opts.readOnlyArchives; - const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { - for (const extension of fileExtensions) { - const result = getArchivePart(path, extension); - if (result) { - return result; - } - } - return null; - }; - const factorySync = (baseFs, p) => { - return new ZipFS(p, { - baseFs, - readOnly: readOnlyArchives, - stats: baseFs.statSync(p) - }); - }; - const factoryPromise = async (baseFs, p) => { - const zipOptions = { - baseFs, - readOnly: readOnlyArchives, - stats: await baseFs.statPromise(p) - }; - return () => { - return new ZipFS(p, zipOptions); - }; - }; - super({ - ...opts, - factorySync, - factoryPromise, - getMountPoint - }); - } -} - -const DEFAULT_COMPRESSION_LEVEL = `mixed`; -function toUnixTimestamp(time) { - if (typeof time === `string` && String(+time) === time) - return +time; - if (typeof time === `number` && Number.isFinite(time)) { - if (time < 0) { - return Date.now() / 1e3; - } else { - return time; - } - } - if (nodeUtils.types.isDate(time)) - return time.getTime() / 1e3; - throw new Error(`Invalid time`); -} -function makeEmptyArchive() { - return Buffer.from([ - 80, - 75, - 5, - 6, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]); -} -class LibzipError extends Error { - code; - constructor(message, code) { - super(message); - this.name = `Libzip Error`; - this.code = code; - } -} -class ZipFS extends BasePortableFakeFS { - libzip; - baseFs; - path; - stats; - zip; - lzSource; - level; - listings = /* @__PURE__ */ new Map(); - entries = /* @__PURE__ */ new Map(); - /** - * A cache of indices mapped to file sources. - * Populated by `setFileSource` calls. - * Required for supporting read after write. - */ - fileSources = /* @__PURE__ */ new Map(); - symlinkCount; - fds = /* @__PURE__ */ new Map(); - nextFd = 0; - ready = false; - readOnly = false; - constructor(source, opts = {}) { - super(); - const pathOptions = opts; - this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; - source ??= makeEmptyArchive(); - if (typeof source === `string`) { - const { baseFs = new NodeFS() } = pathOptions; - this.baseFs = baseFs; - this.path = source; - } else { - this.path = null; - this.baseFs = null; - } - 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(); - } - } - this.libzip = getInstance(); - const errPtr = this.libzip.malloc(4); - try { - let flags = 0; - if (opts.readOnly) { - flags |= this.libzip.ZIP_RDONLY; - this.readOnly = true; - } - if (typeof source === `string`) - source = pathOptions.create ? makeEmptyArchive() : this.baseFs.readFileSync(source); - 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; - } - 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); - } - this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); - const entryCount = this.libzip.getNumEntries(this.zip, 0); - 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 (raw.endsWith(`/`)) { - this.registerListing(p); - } - } - this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); - if (this.symlinkCount === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.ready = true; - } - 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]); - if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) - throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); - return libzipError; - } - getExtractHint(hints) { - for (const fileName of this.entries.keys()) { - const ext = this.pathUtils.extname(fileName); - if (hints.relevantExtensions.has(ext)) { - return true; - } - } - return false; - } - getAllFiles() { - return Array.from(this.entries.keys()); - } - getRealPath() { - if (!this.path) - throw new Error(`ZipFS don't have real paths when loaded from a buffer`); - return this.path; - } - prepareClose() { - if (!this.ready) - throw EBUSY(`archive closed, close`); - unwatchAllFiles(this); - } - getBufferAndClose() { - this.prepareClose(); - if (this.entries.size === 0) { - this.discardAndClose(); - return makeEmptyArchive(); - } - try { - this.libzip.source.keep(this.lzSource); - if (this.libzip.close(this.zip) === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - if (this.libzip.source.open(this.lzSource) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const size = this.libzip.source.tell(this.lzSource); - if (size === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - 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`); - let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); - if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) - result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); - return result; - } finally { - this.libzip.free(buffer); - } - } finally { - this.libzip.source.close(this.lzSource); - this.libzip.source.free(this.lzSource); - this.ready = false; - } - } - discardAndClose() { - this.prepareClose(); - this.libzip.discard(this.zip); - this.ready = false; - } - saveAndClose() { - if (!this.path || !this.baseFs) - throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); - if (this.readOnly) { - this.discardAndClose(); - return; - } - const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; - this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); - 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 = buffer.byteLength, position = -1) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const realPosition = position === -1 || position === null ? entry.cursor : 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$1 = Object.assign( - new stream.PassThrough({ - emitClose: true, - autoDestroy: true, - destroy: (error, callback) => { - clearImmediate(immediate); - this.closeSync(fd); - callback(error); - } - }), - { - close() { - stream$1.destroy(); - }, - bytesRead: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - const immediate = setImmediate(async () => { - try { - const data = await this.readFilePromise(p, encoding); - stream$1.bytesRead = data.length; - stream$1.end(data); - } catch (error) { - stream$1.destroy(error); - } - }); - return stream$1; - } - 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$1 = Object.assign( - new stream.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); - } - } - }), - { - close() { - stream$1.destroy(); - }, - bytesWritten: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - stream$1.on(`data`, (chunk) => { - const chunkBuffer = Buffer.from(chunk); - stream$1.bytesWritten += chunkBuffer.length; - chunks.push(chunkBuffer); - }); - return stream$1; - } - 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 resolvedP2 = ppath.resolve(PortablePath.root, p); - return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); - } - let resolvedP; - try { - resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); - } catch (error) { - return false; - } - if (resolvedP === void 0) - return false; - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } - async accessPromise(p, mode) { - return this.accessSync(p, mode); - } - accessSync(p, mode = fs.constants.F_OK) { - const resolvedP = this.resolveFilename(`access '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`access '${p}'`); - if (this.readOnly && mode & fs.constants.W_OK) { - throw EROFS(`access '${p}'`); - } - } - async statPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.statSync(p, { bigint: true }); - return this.statSync(p); - } - statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`stat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`stat '${p}'`, resolvedP, opts); - } - async fstatPromise(fd, opts) { - return this.fstatSync(fd, opts); - } - fstatSync(fd, opts) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const { p } = entry; - 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(`fstat '${p}'`, resolvedP, opts); - } - async lstatPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.lstatSync(p, { bigint: true }); - return this.lstatSync(p); - } - lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`lstat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`lstat '${p}'`); - return this.statImpl(`lstat '${p}'`, resolvedP, opts); - } - statImpl(reason, p, opts = {}) { - const entry = this.entries.get(p); - 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) * 1e3; - 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) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; - const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; - const mode = type | this.getUnixMode(entry, defaultMode) & 511; - const crc = this.libzip.struct.statCrc(stat); - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - 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 = fs.constants.S_IFDIR | 493; - const crc = 0; - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - 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) { - const existingListing = this.listings.get(p); - if (existingListing) - return existingListing; - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - const newListing = /* @__PURE__ */ new Set(); - this.listings.set(p, newListing); - return newListing; - } - 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?.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--; - } - } - 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)); - } - } - resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = 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 !== void 0) { - if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { - const target = this.getFileSource(fileIndex).toString(); - return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); - } else { - return resolvedP; - } - } - while (true) { - const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); - if (parentP === void 0) - return parentP; - const isDir = this.listings.has(parentP); - const doesExist = this.entries.has(parentP); - if (!isDir && !doesExist) { - if (throwIfNoEntry === false) - return void 0; - 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), 0); - if (index === -1) - break; - if (this.isSymbolicLink(index)) { - const target = this.getFileSource(index).toString(); - resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); - } else { - break; - } - } - 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`); - 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, 1, error); - if (source === 0) { - this.libzip.free(error); - throw this.makeLibzipError(error); - } - return source; - } - allocateSource(content) { - const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); - if (source === 0) { - this.libzip.free(buffer); - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - return source; - } - setFileSource(p, content) { - const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); - const target = ppath.relative(PortablePath.root, p); - const lzSource = this.allocateSource(content); - 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`) { - const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : 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)); - } - } - 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 & fs.constants.S_IFMT) === fs.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 rc2 = this.libzip.fread(file, buffer, size, 0); - if (rc2 === -1) - throw this.makeLibzipError(this.libzip.file.getError(file)); - else if (rc2 < size) - throw new Error(`Incomplete read`); - else if (rc2 > 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) => { - zlib__default.default.inflateRaw(data, (error, result) => { - if (error) { - reject(error); - } else { - this.fileSources.set(index, result); - resolve(result); - } - }); - }); - } else { - const decompressedData = zlib__default.default.inflateRawSync(data); - this.fileSources.set(index, decompressedData); - return decompressedData; - } - } finally { - this.libzip.fclose(file); - } - } finally { - this.libzip.free(buffer); - } - } - async fchmodPromise(fd, mask) { - return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); - } - fchmodSync(fd, mask) { - return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); - } - async chmodPromise(p, mask) { - return this.chmodSync(p, mask); - } - chmodSync(p, mask) { - if (this.readOnly) - throw EROFS(`chmod '${p}'`); - mask &= 493; - 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, fs.constants.S_IFREG | 0); - const newMod = oldMod & ~511 | mask; - const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - async fchownPromise(fd, uid, gid) { - return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); - } - fchownSync(fd, uid, gid) { - return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); - } - 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 & 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 & (fs.constants.COPYFILE_EXCL | 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); - } - fdToPath(fd, reason) { - const path = this.fds.get(fd)?.p; - if (typeof path === `undefined`) - throw EBADF(reason); - return path; - } - async writeFilePromise(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && 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 (mode !== null) { - await this.chmodPromise(resolvedP, mode); - } - } - writeFileSync(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && 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); - if (mode !== null) { - this.chmodSync(resolvedP, mode); - } - } - prepareWriteFile(p, opts) { - if (typeof p === `number`) - p = this.fdToPath(p, `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, mode = null; - if (typeof opts === `string`) { - encoding = opts; - } else if (typeof opts === `object`) { - ({ - encoding = null, - mode = null - } = opts); - } - const index = this.entries.get(resolvedP); - return { - encoding, - mode, - 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 === void 0) - 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 = 493, recursive = false } = {}) { - if (recursive) - return this.mkdirpSync(p, { chmod: mode }); - 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); - return void 0; - } - 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; - } - 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); - } - async rmPromise(p, opts) { - return this.rmSync(p, opts); - } - rmSync(p, { recursive = false } = {}) { - if (this.readOnly) - throw EROFS(`rm '${p}'`); - if (recursive) { - this.removeSync(p); - return; - } - const resolvedP = this.resolveFilename(`rm '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`rm '${p}'`); - if (directoryListing.size > 0) - throw ENOTEMPTY(`rm '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`rm '${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) { - 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, (fs.constants.S_IFLNK | 511) << 16); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.symlinkCount += 1; - } - async readFilePromise(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = await this.readFileBuffer(p, { asyncDecompress: true }); - return encoding ? data.toString(encoding) : data; - } - readFileSync(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = this.readFileBuffer(p); - return encoding ? data.toString(encoding) : data; - } - readFileBuffer(p, opts = { asyncDecompress: false }) { - if (typeof p === `number`) - p = this.fdToPath(p, `read`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`open '${p}'`); - 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 === void 0) - throw new Error(`Unreachable`); - return this.getFileSource(entry, opts); - } - async readdirPromise(p, opts) { - return this.readdirSync(p, opts); - } - readdirSync(p, opts) { - 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}'`); - if (opts?.recursive) { - if (opts?.withFileTypes) { - const entries = Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: PortablePath.dot - }); - }); - for (const entry of entries) { - if (!entry.isDirectory()) - continue; - const subPath = ppath.join(entry.path, entry.name); - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - for (const child of subListing) { - entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { - name: child, - path: subPath - })); - } - } - return entries; - } else { - const entries = [...directoryListing]; - for (const subPath of entries) { - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - if (typeof subListing === `undefined`) - continue; - for (const child of subListing) { - entries.push(ppath.join(subPath, child)); - } - } - return entries; - } - } else if (opts?.withFileTypes) { - return Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: void 0 - }); - }); - } else { - return [...directoryListing]; - } - } - 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}'`); - 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 === void 0) - 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, 0); - 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, 0); - source.copy(truncated); - return this.writeFileSync(p, truncated); - } - async ftruncatePromise(fd, len) { - return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); - } - ftruncateSync(fd, len) { - return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); - } - watch(p, a, b) { - let persistent; - switch (typeof a) { - case `function`: - case `string`: - case `undefined`: - { - persistent = true; - } - break; - default: - { - ({ persistent = true } = a); - } - break; - } - if (!persistent) - return { on: () => { - }, close: () => { - } }; - const interval = setInterval(() => { - }, 24 * 60 * 60 * 1e3); - return { on: () => { - }, close: () => { - clearInterval(interval); - } }; - } - watchFile(p, a, b) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return watchFile(this, resolvedP, a, b); - } - unwatchFile(p, cb) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return unwatchFile(this, resolvedP, cb); - } -} - -setFactory(() => { - const emZip = createModule(); - return makeInterface(emZip); -}); - -var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { - ErrorCode2["API_ERROR"] = `API_ERROR`; - ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; - ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; - ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; - ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; - ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; - ErrorCode2["INTERNAL"] = `INTERNAL`; - ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; - ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; - return ErrorCode2; -})(ErrorCode || {}); -const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ - "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, - "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, - "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, - "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, - "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ -]); -function makeError(pnpCode, message, data = {}, code) { - 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 - } - }); -} -function getIssuerModule(parent) { - let issuer = parent; - while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) - issuer = issuer.parent; - return issuer || null; -} -function getPathForDisplay(p) { - return npath.normalize(npath.fromPortablePath(p)); -} - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs__default.default.existsSync(jsonPath)) - return null; - return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); -} -function ERR_REQUIRE_ESM(filename, parentPath = null) { - const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); - const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. -Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; - const err = new Error(msg); - err.code = `ERR_REQUIRE_ESM`; - return err; -} -function reportRequiredFilesToWatchMode(files) { - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); - if (WATCH_MODE_MESSAGE_USES_ARRAYS) { - process.send({ "watch:require": files }); - } else { - for (const filename of files) { - process.send({ "watch:require": filename }); - } - } - } -} - -function applyPatch(pnpapi, opts) { - let enableNativeHooks = true; - process.versions.pnp = String(pnpapi.VERSIONS.std); - const moduleExports = require$$0__default.default; - moduleExports.findPnpApi = (lookupSource) => { - const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; - const apiPath = opts.manager.findApiPathFor(lookupPath); - if (apiPath === null) - return null; - const apiEntry = opts.manager.getApiEntry(apiPath, true); - return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; - }; - function getRequireStack(parent) { - const requireStack = []; - for (let cursor = parent; cursor; cursor = cursor.parent) - requireStack.push(cursor.filename || cursor.id); - return requireStack; - } - const originalModuleLoad = require$$0.Module._load; - require$$0.Module._load = function(request, parent, isMain) { - if (request === `pnpapi`) { - const parentApiPath = opts.manager.getApiPathFromParent(parent); - if (parentApiPath) { - return opts.manager.getApiEntry(parentApiPath, true).instance; - } - } - return originalModuleLoad.call(require$$0.Module, request, parent, isMain); - }; - function getIssuerSpecsFromPaths(paths) { - return paths.map((path) => ({ - apiPath: opts.manager.findApiPathFor(path), - path, - module: null - })); - } - function getIssuerSpecsFromModule(module) { - if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { - return [{ - apiPath: opts.manager.findApiPathFor(module.paths[0]), - path: module.paths[0], - module - }]; - } - const issuer = getIssuerModule(module); - if (issuer !== null) { - const path = npath.dirname(issuer.filename); - const apiPath = opts.manager.getApiPathFromParent(issuer); - return [{ apiPath, path, module }]; - } else { - const path = process.cwd(); - const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); - return [{ apiPath, path, module }]; - } - } - function makeFakeParent(path) { - const fakeParent = new require$$0.Module(``); - const fakeFilePath = npath.join(path, `[file]`); - fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); - return fakeParent; - } - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const originalModuleResolveFilename = require$$0.Module._resolveFilename; - require$$0.Module._resolveFilename = function(request, parent, isMain, options) { - if (require$$0.isBuiltin(request)) - return request; - if (!enableNativeHooks) - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); - if (options && options.plugnplay === false) { - const { plugnplay, ...forwardedOptions } = options; - try { - enableNativeHooks = false; - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); - } finally { - enableNativeHooks = true; - } - } - if (options) { - const optionNames = new Set(Object.keys(options)); - optionNames.delete(`paths`); - optionNames.delete(`plugnplay`); - if (optionNames.size > 0) { - throw 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?.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 = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : 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(require$$0.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 += ` -Require stack: -- ${requireStack.join(` -- `)}`; - if (typeof firstError.pnpCode === `string`) - Error.captureStackTrace(firstError); - throw firstError; - }; - const originalFindPath = require$$0.Module._findPath; - require$$0.Module._findPath = function(request, paths, isMain) { - if (request === `pnpapi`) - return false; - if (!enableNativeHooks) - return originalFindPath.call(require$$0.Module, request, paths, isMain); - const isAbsolute = npath.isAbsolute(request); - if (isAbsolute) - paths = [``]; - else if (!paths || paths.length === 0) - return false; - for (const path of paths) { - let resolution; - try { - const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); - if (pnpApiPath !== null) { - const api = opts.manager.getApiEntry(pnpApiPath, true).instance; - resolution = api.resolveRequest(request, path) || false; - } else { - resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); - } - } catch (error) { - continue; - } - if (resolution) { - return resolution; - } - } - return false; - }; - const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; - require$$0.Module._extensions[`.js`] = function(module, filename) { - if (filename.endsWith(`.js`)) { - const pkg = readPackageScope(filename); - if (pkg && pkg.data?.type === `module`) { - const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); - Error.captureStackTrace(err); - throw err; - } - } - originalExtensionJSFunction.call(this, module, filename); - }; - const originalDlopen = process.dlopen; - process.dlopen = function(...args) { - const [module, filename, ...rest] = args; - return originalDlopen.call( - this, - module, - npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), - ...rest - ); - }; - const originalEmit = process.emit; - process.emit = function(name, data, ...args) { - if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) - return false; - return originalEmit.apply(process, arguments); - }; - patchFs(fs__default.default, new PosixFS(opts.fakeFs)); -} - -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 packageLocatorsByLocations = /* @__PURE__ */ new Map(); - const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { - return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { - if (packageName === null !== (packageReference === null)) - throw new Error(`Assertion failed: The name and reference should be null, or neither should`); - const discardFromLookup = packageInformationData.discardFromLookup ?? false; - const packageLocator = { name: packageName, reference: packageReference }; - const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); - if (!entry) { - packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); - } else { - entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; - if (!discardFromLookup) { - entry.locator = packageLocator; - } - } - let resolvedPackageLocation = null; - return [packageReference, { - packageDependencies: new Map(packageInformationData.packageDependencies), - packagePeers: new Set(packageInformationData.packagePeers), - linkType: packageInformationData.linkType, - discardFromLookup, - // we only need this for packages that are used by the currently running script - // this is a lazy getter because `ppath.join` has some overhead - get packageLocation() { - return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); - } - }]; - }))]; - })); - 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, - packageLocatorsByLocations, - packageRegistry - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert__default.default(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); -const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( - "ERR_PACKAGE_PATH_NOT_EXPORTED", - (pkgPath, subpath, base = void 0) => { - if (subpath === ".") - return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - url.fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = url.fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), - url.fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && url.fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && url.fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { - if (typeof exports === "string" || ArrayIsArray(exports)) return true; - if (typeof exports !== "object" || exports === null) return false; - const keys = ObjectGetOwnPropertyNames(exports); - let isConditionalSugar = false; - let i = 0; - for (let j = 0; j < keys.length; j++) { - const key = keys[j]; - const curIsConditionalSugar = key === "" || key[0] !== "."; - if (i++ === 0) { - isConditionalSugar = curIsConditionalSugar; - } else if (isConditionalSugar !== curIsConditionalSugar) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` - ); - } - } - return isConditionalSugar; -} -function throwExportsNotFound(subpath, packageJSONUrl, base) { - throw new ERR_PACKAGE_PATH_NOT_EXPORTED( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - base && url.fileURLToPath(base) - ); -} -const emittedPackageWarnings = /* @__PURE__ */ new Set(); -function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { - const pjsonPath = url.fileURLToPath(pjsonUrl); - if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; - emittedPackageWarnings.add(pjsonPath + "|" + match); - process.emitWarning( - `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, - "DeprecationWarning", - "DEP0155" - ); -} -function packageExportsResolve({ - packageJSONUrl, - packageSubpath, - exports, - base, - conditions -}) { - if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) - exports = { ".": exports }; - if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { - const target = exports[packageSubpath]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - "", - packageSubpath, - base, - false, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(exports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - packageSubpath, - StringPrototypeSlice(key, 0, patternIndex) - )) { - if (StringPrototypeEndsWith(packageSubpath, "/")) - emitTrailingSlashPatternDeprecation( - packageSubpath, - packageJSONUrl, - base - ); - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - packageSubpath, - patternIndex, - packageSubpath.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = exports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - throwExportsNotFound(packageSubpath, packageJSONUrl, base); -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -const flagSymbol = Symbol('arg flag'); - -class ArgError extends Error { - constructor(msg, code) { - super(msg); - this.name = 'ArgError'; - this.code = code; - - Object.setPrototypeOf(this, ArgError.prototype); - } -} - -function arg( - opts, - { - argv = process.argv.slice(2), - permissive = false, - stopAtPositional = false - } = {} -) { - if (!opts) { - throw new ArgError( - 'argument specification object is required', - 'ARG_CONFIG_NO_SPEC' - ); - } - - const result = { _: [] }; - - const aliases = {}; - const handlers = {}; - - for (const key of Object.keys(opts)) { - if (!key) { - throw new ArgError( - 'argument key cannot be an empty string', - 'ARG_CONFIG_EMPTY_KEY' - ); - } - - if (key[0] !== '-') { - throw new ArgError( - `argument key must start with '-' but found: '${key}'`, - 'ARG_CONFIG_NONOPT_KEY' - ); - } - - if (key.length === 1) { - throw new ArgError( - `argument key must have a name; singular '-' keys are not allowed: ${key}`, - 'ARG_CONFIG_NONAME_KEY' - ); - } - - if (typeof opts[key] === 'string') { - aliases[key] = opts[key]; - continue; - } - - let type = opts[key]; - let isFlag = false; - - if ( - Array.isArray(type) && - type.length === 1 && - typeof type[0] === 'function' - ) { - const [fn] = type; - type = (value, name, prev = []) => { - prev.push(fn(value, name, prev[prev.length - 1])); - return prev; - }; - isFlag = fn === Boolean || fn[flagSymbol] === true; - } else if (typeof type === 'function') { - isFlag = type === Boolean || type[flagSymbol] === true; - } else { - throw new ArgError( - `type missing or not a function or valid array type: ${key}`, - 'ARG_CONFIG_VAD_TYPE' - ); - } - - if (key[1] !== '-' && key.length > 2) { - throw new ArgError( - `short argument keys (with a single hyphen) must have only one character: ${key}`, - 'ARG_CONFIG_SHORTOPT_TOOLONG' - ); - } - - handlers[key] = [type, isFlag]; - } - - for (let i = 0, len = argv.length; i < len; i++) { - const wholeArg = argv[i]; - - if (stopAtPositional && result._.length > 0) { - result._ = result._.concat(argv.slice(i)); - break; - } - - if (wholeArg === '--') { - result._ = result._.concat(argv.slice(i + 1)); - break; - } - - if (wholeArg.length > 1 && wholeArg[0] === '-') { - /* eslint-disable operator-linebreak */ - const separatedArguments = - wholeArg[1] === '-' || wholeArg.length === 2 - ? [wholeArg] - : wholeArg - .slice(1) - .split('') - .map((a) => `-${a}`); - /* eslint-enable operator-linebreak */ - - for (let j = 0; j < separatedArguments.length; j++) { - const arg = separatedArguments[j]; - const [originalArgName, argStr] = - arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; - - let argName = originalArgName; - while (argName in aliases) { - argName = aliases[argName]; - } - - if (!(argName in handlers)) { - if (permissive) { - result._.push(arg); - continue; - } else { - throw new ArgError( - `unknown or unexpected option: ${originalArgName}`, - 'ARG_UNKNOWN_OPTION' - ); - } - } - - const [type, isFlag] = handlers[argName]; - - if (!isFlag && j + 1 < separatedArguments.length) { - throw new ArgError( - `option requires argument (but was followed by another short argument): ${originalArgName}`, - 'ARG_MISSING_REQUIRED_SHORTARG' - ); - } - - if (isFlag) { - result[argName] = type(true, argName, result[argName]); - } else if (argStr === undefined) { - if ( - argv.length < i + 2 || - (argv[i + 1].length > 1 && - argv[i + 1][0] === '-' && - !( - argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && - (type === Number || - // eslint-disable-next-line no-undef - (typeof BigInt !== 'undefined' && type === BigInt)) - )) - ) { - const extended = - originalArgName === argName ? '' : ` (alias for ${argName})`; - throw new ArgError( - `option requires argument: ${originalArgName}${extended}`, - 'ARG_MISSING_REQUIRED_LONGARG' - ); - } - - result[argName] = type(argv[i + 1], argName, result[argName]); - ++i; - } else { - result[argName] = type(argStr, argName, result[argName]); - } - } - } else { - result._.push(wholeArg); - } - } - - return result; -} - -arg.flag = (fn) => { - fn[flagSymbol] = true; - return fn; -}; - -// Utility types -arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); - -// Expose error class -arg.ArgError = ArgError; - -var arg_1 = arg; - -/** - @license - The MIT License (MIT) - - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ -function getOptionValue(opt) { - parseOptions(); - return options[opt]; -} -let options; -function parseOptions() { - if (!options) { - options = { - "--conditions": [], - ...parseArgv(getNodeOptionsEnvArgv()), - ...parseArgv(process.execArgv) - }; - } -} -function parseArgv(argv) { - return arg_1( - { - "--conditions": [String], - "-C": "--conditions" - }, - { - argv, - permissive: true - } - ); -} -function getNodeOptionsEnvArgv() { - const errors = []; - const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); - if (errors.length !== 0) ; - return envArgv; -} -function ParseNodeOptionsEnvVar(node_options, errors) { - const env_argv = []; - let is_in_string = false; - let will_start_new_arg = true; - for (let index = 0; index < node_options.length; ++index) { - let c = node_options[index]; - if (c === "\\" && is_in_string) { - if (index + 1 === node_options.length) { - errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); - return env_argv; - } else { - c = node_options[++index]; - } - } else if (c === " " && !is_in_string) { - will_start_new_arg = true; - continue; - } else if (c === '"') { - is_in_string = !is_in_string; - continue; - } - if (will_start_new_arg) { - env_argv.push(c); - will_start_new_arg = false; - } else { - env_argv[env_argv.length - 1] += c; - } - } - if (is_in_string) { - errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); - } - return env_argv; -} - -function makeApi(runtimeState, opts) { - const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; - const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; - const isDirRegExp = /\/$/; - const isRelativeRegexp = /^\.{0,2}\//; - const topLevelLocator = { name: null, reference: null }; - const fallbackLocators = []; - const emittedWarnings = /* @__PURE__ */ new Set(); - if (runtimeState.enableTopLevelFallback === true) - fallbackLocators.push(topLevelLocator); - if (opts.compatibilityMode !== false) { - 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 }); - } - } - } - } - } - const { - ignorePattern, - packageRegistry, - packageLocatorsByLocations - } = runtimeState; - function makeLogEntry(name, args) { - return { - fn: name, - args, - error: null, - result: null - }; - } - function trace(entry) { - const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; - const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; - const error = entry.error; - if (error) - console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); - else - console.error(c(`33;1`, `\u203C Resolution`)); - if (entry.args.length > 0) - console.error(); - for (const arg of entry.args) - console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); - if (entry.result) { - console.error(); - console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); - } - const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; - if (stack.length > 0) { - console.error(); - for (const line of stack) { - console.error(` ${c(`38;5;244`, line)}`); - } - } - console.error(); - } - 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 { - trace(logEntry); - } - }; - } else if (debugLevel >= 1) { - return (...args) => { - try { - return fn(...args); - } catch (error) { - const logEntry = makeLogEntry(name, args); - logEntry.error = error; - trace(logEntry); - throw error; - } - }; - } - } - return fn; - } - function getPackageInformationSafe(packageLocator) { - const packageInformation = getPackageInformation(packageLocator); - if (!packageInformation) { - throw 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; - } - 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; - } - const defaultExportsConditions = /* @__PURE__ */ new Set([ - `node`, - `require`, - ...getOptionValue(`--conditions`) - ]); - function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { - const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { - resolveIgnored: true, - includeDiscardFromLookup: true - }); - if (locator === null) { - throw makeError( - ErrorCode.INTERNAL, - `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` - ); - } - const { packageLocation } = getPackageInformationSafe(locator); - const manifestPath = ppath.join(packageLocation, Filename.manifest); - if (!opts.fakeFs.existsSync(manifestPath)) - return null; - const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); - if (pkgJson.exports == null) - return null; - let subpath = ppath.contains(packageLocation, unqualifiedPath); - if (subpath === null) { - throw makeError( - ErrorCode.INTERNAL, - `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` - ); - } - if (subpath !== `.` && !isRelativeRegexp.test(subpath)) - subpath = `./${subpath}`; - try { - const resolvedExport = packageExportsResolve({ - packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), - packageSubpath: subpath, - exports: pkgJson.exports, - base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, - conditions - }); - return npath.toPortablePath(url.fileURLToPath(resolvedExport)); - } catch (error) { - throw makeError( - ErrorCode.EXPORTS_RESOLUTION_FAILED, - error.message, - { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, - error.code - ); - } - } - function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { - let stat; - try { - candidates.push(unqualifiedPath); - stat = opts.fakeFs.statSync(unqualifiedPath); - } catch (error) { - } - if (stat && !stat.isDirectory()) - return opts.fakeFs.realpathSync(unqualifiedPath); - if (stat && stat.isDirectory()) { - let pkgJson; - try { - pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); - } catch (error) { - } - let nextUnqualifiedPath; - if (pkgJson && pkgJson.main) - nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); - if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { - const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); - if (resolution !== null) { - return resolution; - } - } - } - 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; - } - } - 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; - } - } - } - return null; - } - function makeFakeModule(path) { - const fakeModule = new require$$0.Module(path, null); - fakeModule.filename = path; - fakeModule.paths = require$$0.Module._nodeModulePaths(path); - return fakeModule; - } - function callNativeResolution(request, issuer) { - if (issuer.endsWith(`/`)) - issuer = ppath.join(issuer, `internal.js`); - return require$$0.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; - } - } - const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; - const topLevel = topLevelLocator; - function getPackageInformation({ name, reference }) { - const packageInformationStore = packageRegistry.get(name); - if (!packageInformationStore) - return null; - const packageInformation = packageInformationStore.get(reference); - if (!packageInformation) - return null; - return packageInformation; - } - 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; - if (dependentName === name && dependentReference === reference) - continue; - dependents.push({ - name: dependentName, - reference: dependentReference - }); - } - } - return dependents; - } - function findBrokenPeerDependencies(dependency, initialPackage) { - const brokenPackages = /* @__PURE__ */ new Map(); - const alreadyVisited = /* @__PURE__ */ 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 = /* @__PURE__ */ 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; - } - function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { - if (isPathIgnored(location) && !resolveIgnored) - return null; - let relativeLocation = ppath.relative(runtimeState.basePath, location); - if (!relativeLocation.match(isStrictRegExp)) - relativeLocation = `./${relativeLocation}`; - if (!relativeLocation.endsWith(`/`)) - relativeLocation = `${relativeLocation}/`; - do { - const entry = packageLocatorsByLocations.get(relativeLocation); - if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { - relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); - continue; - } - return entry.locator; - } while (relativeLocation !== ``); - return null; - } - function tryReadFile(filePath) { - try { - return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } - } - function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { - if (request.startsWith(`#`)) - throw new Error(`resolveToUnqualified can not handle private import mappings`); - if (request === `pnpapi`) - return npath.toPortablePath(opts.pnpapiResolution); - if (considerBuiltins && require$$0.isBuiltin(request)) - return null; - const requestForDisplay = getPathForDisplay(request); - const issuerForDisplay = issuer && getPathForDisplay(issuer); - if (issuer && isPathIgnored(issuer)) { - if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw 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) - -Require request: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - } - let unqualifiedPath; - const dependencyNameMatch = request.match(pathRegExp); - if (!dependencyNameMatch) { - if (ppath.isAbsolute(request)) { - unqualifiedPath = ppath.normalize(request); - } else { - if (!issuer) { - throw 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 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)); - } - } - } else { - if (!issuer) { - throw 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 (!issuerLocator) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw 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). - -Require path: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - const issuerInformation = getPackageInformationSafe(issuerLocator); - let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); - let fallbackReference = null; - if (dependencyReference == null) { - if (issuerLocator.name !== null) { - 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; - } - } - } - } - } - } - let error = null; - if (dependencyReference === null) { - if (isDependencyTreeRoot(issuerLocator)) { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); - if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } else { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) - -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } - } - } else if (dependencyReference === void 0) { - if (!considerBuiltins && require$$0.isBuiltin(request)) { - if (isDependencyTreeRoot(issuerLocator)) { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } - ); - } - } else { - if (isDependencyTreeRoot(issuerLocator)) { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = 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. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { 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) && debugLevel !== 0) { - emittedWarnings.add(message); - process.emitWarning(error); - } - } - const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; - const dependencyInformation = getPackageInformationSafe(dependencyLocator); - if (!dependencyInformation.packageLocation) { - throw 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. - -Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } - ); - } - const dependencyLocation = dependencyInformation.packageLocation; - if (subPath) { - unqualifiedPath = ppath.join(dependencyLocation, subPath); - } else { - unqualifiedPath = dependencyLocation; - } - } - return ppath.normalize(unqualifiedPath); - } - function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { - if (isStrictRegExp.test(request)) - return unqualifiedPath; - const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); - if (unqualifiedExportPath) { - return ppath.normalize(unqualifiedExportPath); - } else { - return unqualifiedPath; - } - } - function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { - const candidates = []; - const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); - if (qualifiedPath) { - return ppath.normalize(qualifiedPath); - } else { - reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); - const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); - const containingPackage = findPackageLocator(unqualifiedPath); - if (containingPackage) { - const { packageLocation } = getPackageInformationSafe(containingPackage); - let exists = true; - try { - opts.fakeFs.accessSync(packageLocation); - } catch (err) { - if (err?.code === `ENOENT`) { - exists = false; - } else { - const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); - throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); - } - } - if (!exists) { - const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `${errorMessage} - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${unqualifiedPathForDisplay} -${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} -`).join(``)}`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - function resolvePrivateRequest(request, issuer, opts2) { - if (!issuer) - throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); - const resolved = packageImportsResolve({ - name: request, - base: url.pathToFileURL(npath.fromPortablePath(issuer)), - conditions: opts2.conditions ?? defaultExportsConditions, - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolveRequest(resolved, issuer, opts2); - } - } - function resolveRequest(request, issuer, opts2 = {}) { - try { - if (request.startsWith(`#`)) - return resolvePrivateRequest(request, issuer, opts2); - const { considerBuiltins, extensions, conditions } = opts2; - const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); - if (request === `pnpapi`) - return unqualifiedPath; - if (unqualifiedPath === null) - return null; - const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; - const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; - return resolveUnqualified(remappedPath, { extensions }); - } catch (error) { - if (Object.hasOwn(error, `pnpCode`)) - Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); - throw error; - } - } - 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, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); - if (resolution === null) - return null; - return npath.fromPortablePath(resolution); - }), - resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { - return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); - }), - resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); - 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; - } - }) - }; -} - -function makeManager(pnpapi, opts) { - const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); - const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); - const apiMetadata = /* @__PURE__ */ new Map([ - [initialApiPath, { - instance: pnpapi, - stats: initialApiStats, - lastRefreshCheck: Date.now() - }] - ]); - function loadApiInstance(pnpApiPath) { - const nativePath = npath.fromPortablePath(pnpApiPath); - const module = new require$$0.Module(nativePath, null); - 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) { - process.emitWarning(`[Warning] The runtime detected new information 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 = { - instance: loadApiInstance(pnpApiPath), - stats: opts.fakeFs.statSync(pnpApiPath), - lastRefreshCheck: Date.now() - }); - } - return apiEntry; - } - const findApiPathCache = /* @__PURE__ */ new Map(); - function addToCacheAndReturn(start, end, target) { - if (target !== null) { - target = VirtualFS.resolveVirtual(target); - target = opts.fakeFs.realpathSync(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) { - let bestCandidate = null; - for (const [apiPath, apiEntry] of apiMetadata) { - const locator = apiEntry.instance.findPackageLocator(modulePath); - if (!locator) - continue; - if (apiMetadata.size === 1) - return apiPath; - const packageInformation = apiEntry.instance.getPackageInformation(locator); - if (!packageInformation) - throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); - if (!bestCandidate) - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; - if (packageInformation.packageLocation === bestCandidate.packageLocation) { - bestCandidate.apiPaths.push(apiPath); - } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; - } - } - if (bestCandidate) { - if (bestCandidate.apiPaths.length === 1) - return bestCandidate.apiPaths[0]; - const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` -`); - throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. -This is usually caused by using the global cache (enableGlobalCache: true) - -Controlled by: -${controlSegment} -`); - } - const start = ppath.resolve(npath.toPortablePath(modulePath)); - let curr; - let next = start; - do { - curr = next; - const cached = findApiPathCache.get(curr); - if (cached !== void 0) - return addToCacheAndReturn(start, curr, cached); - const cjsCandidate = ppath.join(curr, Filename.pnpCjs); - if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, cjsCandidate); - const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); - if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, legacyCjsCandidate); - next = ppath.dirname(curr); - } while (curr !== PortablePath.root); - return addToCacheAndReturn(start, curr, null); - } - const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); - function getApiPathFromParent(parent) { - if (parent == null) - return initialApiPath; - let apiPath = moduleToApiPathCache.get(parent); - if (typeof apiPath !== `undefined`) - return apiPath; - apiPath = parent.filename ? findApiPathFor(parent.filename) : null; - moduleToApiPathCache.set(parent, apiPath); - return apiPath; - } - return { - getApiPathFromParent, - findApiPathFor, - getApiEntry - }; -} - -const localFs = { ...fs__default.default }; -const nodeFs = new NodeFS(localFs); -const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); -const defaultPnpapiResolution = __filename; -const defaultFsLayer = new VirtualFS({ - baseFs: new ZipOpenFS({ - baseFs: nodeFs, - maxOpenFiles: 80, - readOnlyArchives: true - }) -}); -class DynamicFS extends ProxiedFS { - baseFs = defaultFsLayer; - constructor() { - super(ppath); - } - mapToBase(p) { - return p; - } - mapFromBase(p) { - return p; - } -} -const dynamicFsLayer = new DynamicFS(); -let manager; -const defaultApi = Object.assign(makeApi(defaultRuntimeState, { - fakeFs: dynamicFsLayer, - 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 = void 0, - fakeFs = dynamicFsLayer, - 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 - }); - dynamicFsLayer.baseFs = new NodeFS(fs__default.default); - } -}); -manager = makeManager(defaultApi, { - fakeFs: dynamicFsLayer -}); -if (module.parent && module.parent.id === `internal/preload`) { - defaultApi.setup(); - if (module.filename) { - delete require$$0__default.default._cache[module.filename]; - } -} -if (process.mainModule === module) { - const reportError = (code, message, data) => { - process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} -`); - }; - const reportSuccess = (resolution) => { - process.stdout.write(`${JSON.stringify([null, resolution])} -`); - }; - 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]} -`); - process.exitCode = 64; - } else { - processResolution(process.argv[2], process.argv[3]); - } - } else { - let buffer = ``; - const decoder = new StringDecoder__default.default.StringDecoder(); - process.stdin.on(`data`, (chunk) => { - buffer += decoder.write(chunk); - do { - const index = buffer.indexOf(` -`); - if (index === -1) - break; - const line = buffer.slice(0, index); - buffer = buffer.slice(index + 1); - processRequest(line); - } while (true); - }); - } -} - -module.exports = defaultApi; diff --git a/.pnp.js b/.pnp.js deleted file mode 100755 index 2c3fd066..00000000 --- a/.pnp.js +++ /dev/null @@ -1,34387 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ - -try { - 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.`); -} - -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": "core", - "reference": "workspace:." - }, - { - "name": "@native-html/css-processor", - "reference": "workspace:packages/css-processor" - }, - { - "name": "performance-testing", - "reference": "workspace:packages/performance-testing" - }, - { - "name": "release-config", - "reference": "workspace:packages/release-config" - }, - { - "name": "@native-html/transient-render-engine", - "reference": "workspace:packages/transient-render-engine" - } - ], - "enableTopLevelFallback": true, - "ignorePatternData": "(^(?:\\.yarn\\/sdks(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)|$))$)", - "fallbackExclusionList": [ - ["@native-html/css-processor", ["virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor", "workspace:packages/css-processor"]], - ["@native-html/transient-render-engine", ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine", "workspace:packages/transient-render-engine"]], - ["core", ["workspace:."]], - ["performance-testing", ["workspace:packages/performance-testing"]], - ["release-config", ["workspace:packages/release-config"]] - ], - "fallbackPool": [ - [ - "@ampproject/remapping", - "npm:2.3.0" - ], - [ - "@babel/cli", - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16" - ], - [ - "@babel/code-frame", - "npm:7.12.13" - ], - [ - "@babel/compat-data", - "npm:7.14.0" - ], - [ - "@babel/core", - "npm:7.14.2" - ], - [ - "@babel/generator", - "npm:7.25.6" - ], - [ - "@babel/helper-annotate-as-pure", - "npm:7.12.13" - ], - [ - "@babel/helper-builder-binary-assignment-operator-visitor", - "npm:7.12.13" - ], - [ - "@babel/helper-compilation-targets", - "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16" - ], - [ - "@babel/helper-create-class-features-plugin", - "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2" - ], - [ - "@babel/helper-create-regexp-features-plugin", - "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17" - ], - [ - "@babel/helper-define-polyfill-provider", - "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0" - ], - [ - "@babel/helper-environment-visitor", - "npm:7.24.7" - ], - [ - "@babel/helper-explode-assignable-expression", - "npm:7.13.0" - ], - [ - "@babel/helper-function-name", - "npm:7.14.2" - ], - [ - "@babel/helper-get-function-arity", - "npm:7.12.13" - ], - [ - "@babel/helper-hoist-variables", - "npm:7.13.16" - ], - [ - "@babel/helper-member-expression-to-functions", - "npm:7.13.12" - ], - [ - "@babel/helper-module-imports", - "npm:7.13.12" - ], - [ - "@babel/helper-module-transforms", - "npm:7.14.2" - ], - [ - "@babel/helper-optimise-call-expression", - "npm:7.12.13" - ], - [ - "@babel/helper-plugin-utils", - "npm:7.13.0" - ], - [ - "@babel/helper-remap-async-to-generator", - "npm:7.13.0" - ], - [ - "@babel/helper-replace-supers", - "npm:7.13.12" - ], - [ - "@babel/helper-simple-access", - "npm:7.13.12" - ], - [ - "@babel/helper-skip-transparent-expression-wrappers", - "npm:7.12.1" - ], - [ - "@babel/helper-split-export-declaration", - "npm:7.12.13" - ], - [ - "@babel/helper-string-parser", - "npm:7.24.8" - ], - [ - "@babel/helper-validator-identifier", - "npm:7.14.0" - ], - [ - "@babel/helper-validator-option", - "npm:7.12.17" - ], - [ - "@babel/helper-wrap-function", - "npm:7.13.0" - ], - [ - "@babel/helpers", - "npm:7.14.0" - ], - [ - "@babel/highlight", - "npm:7.14.0" - ], - [ - "@babel/parser", - "npm:7.25.6" - ], - [ - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12" - ], - [ - "@babel/plugin-proposal-async-generator-functions", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-class-properties", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-proposal-class-static-block", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11" - ], - [ - "@babel/plugin-proposal-dynamic-import", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-export-default-from", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13" - ], - [ - "@babel/plugin-proposal-export-namespace-from", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-json-strings", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-logical-assignment-operators", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-nullish-coalescing-operator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-numeric-separator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-object-rest-spread", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-optional-catch-binding", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-optional-chaining", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-proposal-private-methods", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-proposal-private-property-in-object", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0" - ], - [ - "@babel/plugin-proposal-unicode-property-regex", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-async-generators", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4" - ], - [ - "@babel/plugin-syntax-bigint", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-class-properties", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-class-static-block", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-dynamic-import", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-export-default-from", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-export-namespace-from", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-flow", - "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7" - ], - [ - "@babel/plugin-syntax-import-meta", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4" - ], - [ - "@babel/plugin-syntax-json-strings", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-jsx", - "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-logical-assignment-operators", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4" - ], - [ - "@babel/plugin-syntax-nullish-coalescing-operator", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-numeric-separator", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4" - ], - [ - "@babel/plugin-syntax-object-rest-spread", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-optional-catch-binding", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-optional-chaining", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3" - ], - [ - "@babel/plugin-syntax-private-property-in-object", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0" - ], - [ - "@babel/plugin-syntax-top-level-await", - "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13" - ], - [ - "@babel/plugin-syntax-typescript", - "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13" - ], - [ - "@babel/plugin-transform-arrow-functions", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-async-to-generator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-block-scoped-functions", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-block-scoping", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-transform-classes", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-transform-computed-properties", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-destructuring", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17" - ], - [ - "@babel/plugin-transform-dotall-regex", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-duplicate-keys", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-exponentiation-operator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-flow-strip-types", - "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0" - ], - [ - "@babel/plugin-transform-for-of", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-function-name", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-literals", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-member-expression-literals", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-modules-amd", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-transform-modules-commonjs", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0" - ], - [ - "@babel/plugin-transform-modules-systemjs", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8" - ], - [ - "@babel/plugin-transform-modules-umd", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0" - ], - [ - "@babel/plugin-transform-named-capturing-groups-regex", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-new-target", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-object-assign", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13" - ], - [ - "@babel/plugin-transform-object-super", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-parameters", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2" - ], - [ - "@babel/plugin-transform-property-literals", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-react-display-name", - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2" - ], - [ - "@babel/plugin-transform-react-jsx", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12" - ], - [ - "@babel/plugin-transform-react-jsx-development", - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17" - ], - [ - "@babel/plugin-transform-react-jsx-self", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13" - ], - [ - "@babel/plugin-transform-react-jsx-source", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2" - ], - [ - "@babel/plugin-transform-react-pure-annotations", - "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1" - ], - [ - "@babel/plugin-transform-regenerator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15" - ], - [ - "@babel/plugin-transform-reserved-words", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-runtime", - "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2" - ], - [ - "@babel/plugin-transform-shorthand-properties", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-spread", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-sticky-regex", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-template-literals", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0" - ], - [ - "@babel/plugin-transform-typeof-symbol", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-typescript", - "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0" - ], - [ - "@babel/plugin-transform-unicode-escapes", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/plugin-transform-unicode-regex", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13" - ], - [ - "@babel/preset-env", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2" - ], - [ - "@babel/preset-flow", - "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13" - ], - [ - "@babel/preset-modules", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4" - ], - [ - "@babel/preset-react", - "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13" - ], - [ - "@babel/preset-typescript", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0" - ], - [ - "@babel/regjsgen", - "npm:0.8.0" - ], - [ - "@babel/runtime", - "npm:7.14.0" - ], - [ - "@babel/template", - "npm:7.12.13" - ], - [ - "@babel/traverse", - "npm:7.25.6" - ], - [ - "@babel/types", - "npm:7.14.2" - ], - [ - "@bcoe/v8-coverage", - "npm:0.2.3" - ], - [ - "@cnakazawa/watch", - "npm:1.0.4" - ], - [ - "@commitlint/cli", - "npm:12.1.4" - ], - [ - "@commitlint/config-conventional", - "npm:12.1.4" - ], - [ - "@commitlint/ensure", - "npm:12.1.4" - ], - [ - "@commitlint/execute-rule", - "npm:12.1.4" - ], - [ - "@commitlint/format", - "npm:12.1.4" - ], - [ - "@commitlint/is-ignored", - "npm:12.1.4" - ], - [ - "@commitlint/lint", - "npm:12.1.4" - ], - [ - "@commitlint/load", - "npm:12.1.4" - ], - [ - "@commitlint/message", - "npm:12.1.4" - ], - [ - "@commitlint/parse", - "npm:12.1.4" - ], - [ - "@commitlint/read", - "npm:12.1.4" - ], - [ - "@commitlint/resolve-extends", - "npm:12.1.4" - ], - [ - "@commitlint/rules", - "npm:12.1.4" - ], - [ - "@commitlint/to-lines", - "npm:12.1.4" - ], - [ - "@commitlint/top-level", - "npm:12.1.4" - ], - [ - "@commitlint/types", - "npm:12.1.4" - ], - [ - "@eslint/eslintrc", - "npm:0.4.1" - ], - [ - "@hapi/hoek", - "npm:9.3.0" - ], - [ - "@hapi/topo", - "npm:5.1.0" - ], - [ - "@iarna/toml", - "npm:2.2.5" - ], - [ - "@isaacs/ttlcache", - "npm:1.4.1" - ], - [ - "@istanbuljs/load-nyc-config", - "npm:1.1.0" - ], - [ - "@istanbuljs/schema", - "npm:0.1.3" - ], - [ - "@jest/console", - "npm:26.6.2" - ], - [ - "@jest/core", - "npm:26.6.3" - ], - [ - "@jest/create-cache-key-function", - "npm:29.7.0" - ], - [ - "@jest/environment", - "npm:26.6.2" - ], - [ - "@jest/fake-timers", - "npm:26.6.2" - ], - [ - "@jest/globals", - "npm:26.6.2" - ], - [ - "@jest/reporters", - "npm:26.6.2" - ], - [ - "@jest/schemas", - "npm:29.6.3" - ], - [ - "@jest/source-map", - "npm:26.6.2" - ], - [ - "@jest/test-result", - "npm:26.6.2" - ], - [ - "@jest/test-sequencer", - "npm:26.6.3" - ], - [ - "@jest/transform", - "npm:26.6.2" - ], - [ - "@jest/types", - "npm:26.6.2" - ], - [ - "@jridgewell/gen-mapping", - "npm:0.3.5" - ], - [ - "@jridgewell/resolve-uri", - "npm:3.1.2" - ], - [ - "@jridgewell/set-array", - "npm:1.2.1" - ], - [ - "@jridgewell/source-map", - "npm:0.3.6" - ], - [ - "@jridgewell/sourcemap-codec", - "npm:1.5.0" - ], - [ - "@jridgewell/trace-mapping", - "npm:0.3.25" - ], - [ - "@mdn/browser-compat-data", - "npm:2.0.7" - ], - [ - "@native-html/css-processor", - "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor" - ], - [ - "@native-html/transient-render-engine", - "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine" - ], - [ - "@nicolo-ribaudo/chokidar-2", - "npm:2.1.8-no-fsevents" - ], - [ - "@nodelib/fs.scandir", - "npm:2.1.4" - ], - [ - "@nodelib/fs.stat", - "npm:2.0.4" - ], - [ - "@nodelib/fs.walk", - "npm:1.2.6" - ], - [ - "@npmcli/move-file", - "npm:1.1.2" - ], - [ - "@octokit/auth-token", - "npm:2.4.5" - ], - [ - "@octokit/core", - "npm:3.4.0" - ], - [ - "@octokit/endpoint", - "npm:6.0.11" - ], - [ - "@octokit/graphql", - "npm:4.6.1" - ], - [ - "@octokit/openapi-types", - "npm:7.0.0" - ], - [ - "@octokit/plugin-paginate-rest", - "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3" - ], - [ - "@octokit/plugin-request-log", - "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3" - ], - [ - "@octokit/plugin-rest-endpoint-methods", - "npm:4.2.0" - ], - [ - "@octokit/request", - "npm:5.4.15" - ], - [ - "@octokit/request-error", - "npm:2.0.5" - ], - [ - "@octokit/rest", - "npm:18.0.6" - ], - [ - "@octokit/types", - "npm:6.14.2" - ], - [ - "@react-native-community/bob", - "npm:0.17.1" - ], - [ - "@react-native-community/cli", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-clean", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-config", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-debugger-ui", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-doctor", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-hermes", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-platform-android", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-platform-apple", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-platform-ios", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-server-api", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-tools", - "npm:13.6.9" - ], - [ - "@react-native-community/cli-types", - "npm:13.6.9" - ], - [ - "@react-native-community/eslint-config", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0" - ], - [ - "@react-native-community/eslint-plugin", - "npm:1.1.0" - ], - [ - "@react-native/assets-registry", - "npm:0.74.87" - ], - [ - "@react-native/babel-plugin-codegen", - "npm:0.74.87" - ], - [ - "@react-native/codegen", - "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87" - ], - [ - "@react-native/community-cli-plugin", - "npm:0.74.87" - ], - [ - "@react-native/debugger-frontend", - "npm:0.74.87" - ], - [ - "@react-native/dev-middleware", - "npm:0.74.87" - ], - [ - "@react-native/gradle-plugin", - "npm:0.74.87" - ], - [ - "@react-native/js-polyfills", - "npm:0.74.87" - ], - [ - "@react-native/metro-babel-transformer", - "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87" - ], - [ - "@react-native/normalize-colors", - "npm:0.74.87" - ], - [ - "@release-it/conventional-changelog", - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A." - ], - [ - "@rnx-kit/chromium-edge-launcher", - "npm:1.0.0" - ], - [ - "@sideway/address", - "npm:4.1.5" - ], - [ - "@sideway/formula", - "npm:3.0.1" - ], - [ - "@sideway/pinpoint", - "npm:2.0.0" - ], - [ - "@sinclair/typebox", - "npm:0.27.8" - ], - [ - "@sindresorhus/is", - "npm:0.14.0" - ], - [ - "@sinonjs/commons", - "npm:1.8.3" - ], - [ - "@sinonjs/fake-timers", - "npm:6.0.1" - ], - [ - "@szmarczak/http-timer", - "npm:1.1.2" - ], - [ - "@tootallnate/once", - "npm:1.1.2" - ], - [ - "@tsconfig/react-native", - "npm:1.0.3" - ], - [ - "@types/babel__core", - "npm:7.1.14" - ], - [ - "@types/babel__generator", - "npm:7.6.2" - ], - [ - "@types/babel__template", - "npm:7.4.0" - ], - [ - "@types/babel__traverse", - "npm:7.11.1" - ], - [ - "@types/cacheable-request", - "npm:6.0.1" - ], - [ - "@types/eslint-visitor-keys", - "npm:1.0.0" - ], - [ - "@types/graceful-fs", - "npm:4.1.5" - ], - [ - "@types/http-cache-semantics", - "npm:4.0.0" - ], - [ - "@types/istanbul-lib-coverage", - "npm:2.0.3" - ], - [ - "@types/istanbul-lib-report", - "npm:3.0.0" - ], - [ - "@types/istanbul-reports", - "npm:3.0.0" - ], - [ - "@types/jest", - "npm:26.0.23" - ], - [ - "@types/json-schema", - "npm:7.0.7" - ], - [ - "@types/keyv", - "npm:3.1.1" - ], - [ - "@types/minimist", - "npm:1.2.1" - ], - [ - "@types/node", - "npm:15.3.0" - ], - [ - "@types/node-forge", - "npm:1.3.11" - ], - [ - "@types/normalize-package-data", - "npm:2.4.0" - ], - [ - "@types/parse-json", - "npm:4.0.0" - ], - [ - "@types/prettier", - "npm:2.2.3" - ], - [ - "@types/prop-types", - "npm:15.7.3" - ], - [ - "@types/ramda", - "npm:0.27.44" - ], - [ - "@types/react", - "npm:17.0.5" - ], - [ - "@types/react-native", - "npm:0.64.5" - ], - [ - "@types/responselike", - "npm:1.0.0" - ], - [ - "@types/scheduler", - "npm:0.16.1" - ], - [ - "@types/stack-utils", - "npm:2.0.0" - ], - [ - "@types/yargs", - "npm:15.0.13" - ], - [ - "@types/yargs-parser", - "npm:20.2.0" - ], - [ - "@typescript-eslint/eslint-plugin", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0" - ], - [ - "@typescript-eslint/experimental-utils", - "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1" - ], - [ - "@typescript-eslint/parser", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0" - ], - [ - "@typescript-eslint/scope-manager", - "npm:4.23.0" - ], - [ - "@typescript-eslint/types", - "npm:4.23.0" - ], - [ - "@typescript-eslint/typescript-estree", - "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1" - ], - [ - "@typescript-eslint/visitor-keys", - "npm:4.23.0" - ], - [ - "JSONStream", - "npm:1.3.5" - ], - [ - "abab", - "npm:2.0.5" - ], - [ - "abbrev", - "npm:1.1.1" - ], - [ - "abort-controller", - "npm:3.0.0" - ], - [ - "accepts", - "npm:1.3.8" - ], - [ - "acorn", - "npm:7.4.1" - ], - [ - "acorn-globals", - "npm:6.0.0" - ], - [ - "acorn-jsx", - "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1" - ], - [ - "acorn-walk", - "npm:7.2.0" - ], - [ - "add-stream", - "npm:1.0.0" - ], - [ - "agent-base", - "npm:6.0.2" - ], - [ - "agentkeepalive", - "npm:4.1.4" - ], - [ - "aggregate-error", - "npm:3.1.0" - ], - [ - "ajv", - "npm:6.12.6" - ], - [ - "anser", - "npm:1.4.10" - ], - [ - "ansi-align", - "npm:3.0.0" - ], - [ - "ansi-colors", - "npm:4.1.1" - ], - [ - "ansi-escapes", - "npm:4.3.2" - ], - [ - "ansi-fragments", - "npm:0.2.1" - ], - [ - "ansi-regex", - "npm:5.0.0" - ], - [ - "ansi-styles", - "npm:4.3.0" - ], - [ - "anymatch", - "npm:3.1.2" - ], - [ - "appdirsjs", - "npm:1.2.7" - ], - [ - "aproba", - "npm:1.2.0" - ], - [ - "are-we-there-yet", - "npm:1.1.5" - ], - [ - "argparse", - "npm:1.0.10" - ], - [ - "arr-diff", - "npm:4.0.0" - ], - [ - "arr-flatten", - "npm:1.1.0" - ], - [ - "arr-union", - "npm:3.1.0" - ], - [ - "array-find-index", - "npm:1.0.2" - ], - [ - "array-ify", - "npm:1.0.0" - ], - [ - "array-includes", - "npm:3.1.3" - ], - [ - "array-union", - "npm:2.1.0" - ], - [ - "array-unique", - "npm:0.3.2" - ], - [ - "array.prototype.flatmap", - "npm:1.2.4" - ], - [ - "arrify", - "npm:1.0.1" - ], - [ - "asap", - "npm:2.0.6" - ], - [ - "asn1", - "npm:0.2.4" - ], - [ - "assert-plus", - "npm:1.0.0" - ], - [ - "assign-symbols", - "npm:1.0.0" - ], - [ - "ast-metadata-inferer", - "npm:0.4.0" - ], - [ - "ast-types", - "npm:0.15.2" - ], - [ - "astral-regex", - "npm:2.0.0" - ], - [ - "async", - "npm:0.9.2" - ], - [ - "async-each", - "npm:1.0.3" - ], - [ - "async-limiter", - "npm:1.0.1" - ], - [ - "async-retry", - "npm:1.3.1" - ], - [ - "asynckit", - "npm:0.4.0" - ], - [ - "at-least-node", - "npm:1.0.0" - ], - [ - "atob", - "npm:2.1.2" - ], - [ - "aws-sign2", - "npm:0.7.0" - ], - [ - "aws4", - "npm:1.11.0" - ], - [ - "babel-eslint", - "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0" - ], - [ - "babel-jest", - "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3" - ], - [ - "babel-plugin-dynamic-import-node", - "npm:2.3.3" - ], - [ - "babel-plugin-istanbul", - "npm:6.0.0" - ], - [ - "babel-plugin-jest-hoist", - "npm:26.6.2" - ], - [ - "babel-plugin-polyfill-corejs2", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0" - ], - [ - "babel-plugin-polyfill-corejs3", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0" - ], - [ - "babel-plugin-polyfill-regenerator", - "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0" - ], - [ - "babel-plugin-transform-flow-enums", - "npm:0.0.2" - ], - [ - "babel-preset-current-node-syntax", - "virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1" - ], - [ - "babel-preset-jest", - "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2" - ], - [ - "balanced-match", - "npm:1.0.2" - ], - [ - "base", - "npm:0.11.2" - ], - [ - "base64-js", - "npm:1.5.1" - ], - [ - "bcrypt-pbkdf", - "npm:1.0.2" - ], - [ - "before-after-hook", - "npm:2.2.1" - ], - [ - "benchmark", - "npm:2.1.4" - ], - [ - "binary-extensions", - "npm:1.13.1" - ], - [ - "bl", - "npm:4.1.0" - ], - [ - "boxen", - "npm:4.2.0" - ], - [ - "brace-expansion", - "npm:1.1.11" - ], - [ - "braces", - "npm:3.0.2" - ], - [ - "browser-process-hrtime", - "npm:1.0.0" - ], - [ - "browserslist", - "npm:4.23.3" - ], - [ - "bser", - "npm:2.1.1" - ], - [ - "buffer", - "npm:5.7.1" - ], - [ - "buffer-from", - "npm:1.1.1" - ], - [ - "builtins", - "npm:1.0.3" - ], - [ - "bytes", - "npm:3.0.0" - ], - [ - "cacache", - "npm:15.0.6" - ], - [ - "cache-base", - "npm:1.0.1" - ], - [ - "cacheable-lookup", - "npm:5.0.4" - ], - [ - "cacheable-request", - "npm:6.1.0" - ], - [ - "call-bind", - "npm:1.0.2" - ], - [ - "caller-callsite", - "npm:2.0.0" - ], - [ - "caller-path", - "npm:2.0.0" - ], - [ - "callsites", - "npm:3.1.0" - ], - [ - "camelcase", - "npm:5.3.1" - ], - [ - "camelcase-keys", - "npm:6.2.2" - ], - [ - "camelize", - "npm:1.0.0" - ], - [ - "caniuse-lite", - "npm:1.0.30001228" - ], - [ - "capture-exit", - "npm:2.0.0" - ], - [ - "caseless", - "npm:0.12.0" - ], - [ - "chalk", - "npm:4.1.1" - ], - [ - "char-regex", - "npm:1.0.2" - ], - [ - "chardet", - "npm:0.7.0" - ], - [ - "chokidar", - "npm:3.5.1" - ], - [ - "chownr", - "npm:2.0.0" - ], - [ - "chrome-launcher", - "npm:0.15.2" - ], - [ - "ci-info", - "npm:2.0.0" - ], - [ - "cjs-module-lexer", - "npm:0.6.0" - ], - [ - "class-utils", - "npm:0.3.6" - ], - [ - "clean-stack", - "npm:2.2.0" - ], - [ - "cli-boxes", - "npm:2.2.1" - ], - [ - "cli-cursor", - "npm:3.1.0" - ], - [ - "cli-spinners", - "npm:2.6.0" - ], - [ - "cli-width", - "npm:3.0.0" - ], - [ - "cliui", - "npm:7.0.4" - ], - [ - "clone", - "npm:1.0.4" - ], - [ - "clone-deep", - "npm:4.0.1" - ], - [ - "clone-response", - "npm:1.0.2" - ], - [ - "co", - "npm:4.6.0" - ], - [ - "code-point-at", - "npm:1.1.0" - ], - [ - "collect-v8-coverage", - "npm:1.0.1" - ], - [ - "collection-visit", - "npm:1.0.0" - ], - [ - "color-convert", - "npm:1.9.3" - ], - [ - "color-name", - "npm:1.1.3" - ], - [ - "colorette", - "npm:1.2.2" - ], - [ - "combined-stream", - "npm:1.0.8" - ], - [ - "command-exists", - "npm:1.2.9" - ], - [ - "commander", - "npm:4.1.1" - ], - [ - "commitlint", - "npm:12.1.4" - ], - [ - "commondir", - "npm:1.0.1" - ], - [ - "compare-func", - "npm:2.0.0" - ], - [ - "component-emitter", - "npm:1.3.0" - ], - [ - "compressible", - "npm:2.0.18" - ], - [ - "compression", - "npm:1.7.4" - ], - [ - "concat-map", - "npm:0.0.1" - ], - [ - "concat-stream", - "npm:2.0.0" - ], - [ - "configstore", - "npm:5.0.1" - ], - [ - "connect", - "npm:3.7.0" - ], - [ - "console-control-strings", - "npm:1.1.0" - ], - [ - "conventional-changelog", - "npm:3.1.24" - ], - [ - "conventional-changelog-angular", - "npm:5.0.12" - ], - [ - "conventional-changelog-atom", - "npm:2.0.8" - ], - [ - "conventional-changelog-codemirror", - "npm:2.0.8" - ], - [ - "conventional-changelog-conventionalcommits", - "npm:4.6.0" - ], - [ - "conventional-changelog-core", - "npm:4.2.2" - ], - [ - "conventional-changelog-ember", - "npm:2.0.9" - ], - [ - "conventional-changelog-eslint", - "npm:3.0.9" - ], - [ - "conventional-changelog-express", - "npm:2.0.6" - ], - [ - "conventional-changelog-jquery", - "npm:3.0.11" - ], - [ - "conventional-changelog-jshint", - "npm:2.0.9" - ], - [ - "conventional-changelog-preset-loader", - "npm:2.3.4" - ], - [ - "conventional-changelog-writer", - "npm:4.1.0" - ], - [ - "conventional-commits-filter", - "npm:2.0.7" - ], - [ - "conventional-commits-parser", - "npm:3.2.1" - ], - [ - "conventional-recommended-bump", - "npm:6.1.0" - ], - [ - "convert-source-map", - "npm:1.7.0" - ], - [ - "copy-descriptor", - "npm:0.1.1" - ], - [ - "core-js", - "npm:3.12.1" - ], - [ - "core-js-compat", - "npm:3.12.1" - ], - [ - "core-util-is", - "npm:1.0.2" - ], - [ - "cosmiconfig", - "npm:7.0.0" - ], - [ - "cross-spawn", - "npm:7.0.3" - ], - [ - "crypto-random-string", - "npm:2.0.0" - ], - [ - "css-color-keywords", - "npm:1.0.0" - ], - [ - "css-to-react-native", - "npm:3.0.0" - ], - [ - "cssom", - "npm:0.4.4" - ], - [ - "cssstyle", - "npm:2.3.0" - ], - [ - "csstype", - "npm:3.0.9" - ], - [ - "currently-unhandled", - "npm:0.4.1" - ], - [ - "dargs", - "npm:7.0.0" - ], - [ - "dashdash", - "npm:1.14.1" - ], - [ - "data-urls", - "npm:2.0.0" - ], - [ - "dateformat", - "npm:3.0.3" - ], - [ - "dayjs", - "npm:1.11.13" - ], - [ - "debug", - "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2" - ], - [ - "decamelize", - "npm:1.2.0" - ], - [ - "decamelize-keys", - "npm:1.1.0" - ], - [ - "decimal.js", - "npm:10.2.1" - ], - [ - "decode-uri-component", - "npm:0.2.0" - ], - [ - "decompress-response", - "npm:3.3.0" - ], - [ - "dedent", - "npm:0.7.0" - ], - [ - "deep-extend", - "npm:0.6.0" - ], - [ - "deep-is", - "npm:0.1.3" - ], - [ - "deepmerge", - "npm:4.3.1" - ], - [ - "defaults", - "npm:1.0.3" - ], - [ - "defer-to-connect", - "npm:1.1.3" - ], - [ - "define-properties", - "npm:1.1.3" - ], - [ - "define-property", - "npm:0.2.5" - ], - [ - "del", - "npm:6.0.0" - ], - [ - "delayed-stream", - "npm:1.0.0" - ], - [ - "delegates", - "npm:1.0.0" - ], - [ - "denodeify", - "npm:1.2.1" - ], - [ - "depd", - "npm:2.0.0" - ], - [ - "deprecated-obj", - "npm:2.0.0" - ], - [ - "deprecation", - "npm:2.3.1" - ], - [ - "destroy", - "npm:1.2.0" - ], - [ - "detect-newline", - "npm:3.1.0" - ], - [ - "diff-sequences", - "npm:26.6.2" - ], - [ - "dir-glob", - "npm:3.0.1" - ], - [ - "doctrine", - "npm:2.1.0" - ], - [ - "dom-serializer", - "npm:1.3.2" - ], - [ - "domelementtype", - "npm:2.2.0" - ], - [ - "domexception", - "npm:2.0.1" - ], - [ - "domhandler", - "npm:4.2.0" - ], - [ - "domutils", - "npm:2.8.0" - ], - [ - "dot-case", - "npm:3.0.4" - ], - [ - "dot-prop", - "npm:5.3.0" - ], - [ - "duplexer3", - "npm:0.1.4" - ], - [ - "ecc-jsbn", - "npm:0.1.2" - ], - [ - "ee-first", - "npm:1.1.1" - ], - [ - "ejs", - "npm:3.1.6" - ], - [ - "electron-to-chromium", - "npm:1.3.728" - ], - [ - "emittery", - "npm:0.7.2" - ], - [ - "emoji-regex", - "npm:8.0.0" - ], - [ - "encodeurl", - "npm:1.0.2" - ], - [ - "encoding", - "npm:0.1.13" - ], - [ - "end-of-stream", - "npm:1.4.4" - ], - [ - "enquirer", - "npm:2.3.6" - ], - [ - "entities", - "npm:2.2.0" - ], - [ - "env-paths", - "npm:2.2.1" - ], - [ - "envinfo", - "npm:7.14.0" - ], - [ - "err-code", - "npm:2.0.3" - ], - [ - "error-ex", - "npm:1.3.2" - ], - [ - "error-stack-parser", - "npm:2.1.4" - ], - [ - "errorhandler", - "npm:1.5.1" - ], - [ - "es-abstract", - "npm:1.18.0" - ], - [ - "es-to-primitive", - "npm:1.2.1" - ], - [ - "escalade", - "npm:3.1.1" - ], - [ - "escape-goat", - "npm:2.1.1" - ], - [ - "escape-html", - "npm:1.0.3" - ], - [ - "escape-string-regexp", - "npm:1.0.5" - ], - [ - "escodegen", - "npm:2.0.0" - ], - [ - "eslint", - "npm:7.26.0" - ], - [ - "eslint-config-prettier", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0" - ], - [ - "eslint-plugin-compat", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0" - ], - [ - "eslint-plugin-eslint-comments", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0" - ], - [ - "eslint-plugin-flowtype", - "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3" - ], - [ - "eslint-plugin-jest", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6" - ], - [ - "eslint-plugin-prettier", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0" - ], - [ - "eslint-plugin-react", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2" - ], - [ - "eslint-plugin-react-hooks", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0" - ], - [ - "eslint-plugin-react-native", - "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0" - ], - [ - "eslint-plugin-react-native-globals", - "npm:0.1.2" - ], - [ - "eslint-scope", - "npm:5.1.1" - ], - [ - "eslint-utils", - "npm:2.1.0" - ], - [ - "eslint-visitor-keys", - "npm:1.3.0" - ], - [ - "espree", - "npm:7.3.1" - ], - [ - "esprima", - "npm:4.0.1" - ], - [ - "esquery", - "npm:1.4.0" - ], - [ - "esrecurse", - "npm:4.3.0" - ], - [ - "estraverse", - "npm:5.2.0" - ], - [ - "esutils", - "npm:2.0.3" - ], - [ - "etag", - "npm:1.8.1" - ], - [ - "event-target-shim", - "npm:5.0.1" - ], - [ - "exec-sh", - "npm:0.3.6" - ], - [ - "execa", - "npm:5.1.1" - ], - [ - "exit", - "npm:0.1.2" - ], - [ - "expand-brackets", - "npm:2.1.4" - ], - [ - "expect", - "npm:26.6.2" - ], - [ - "exponential-backoff", - "npm:3.1.1" - ], - [ - "extend", - "npm:3.0.2" - ], - [ - "extend-shallow", - "npm:2.0.1" - ], - [ - "external-editor", - "npm:3.1.0" - ], - [ - "extglob", - "npm:2.0.4" - ], - [ - "extsprintf", - "npm:1.3.0" - ], - [ - "fast-deep-equal", - "npm:3.1.3" - ], - [ - "fast-diff", - "npm:1.2.0" - ], - [ - "fast-glob", - "npm:3.3.2" - ], - [ - "fast-json-stable-stringify", - "npm:2.1.0" - ], - [ - "fast-levenshtein", - "npm:2.0.6" - ], - [ - "fast-xml-parser", - "npm:4.5.0" - ], - [ - "fastq", - "npm:1.11.0" - ], - [ - "fb-watchman", - "npm:2.0.1" - ], - [ - "figures", - "npm:3.2.0" - ], - [ - "file-entry-cache", - "npm:6.0.1" - ], - [ - "filelist", - "npm:1.0.2" - ], - [ - "fill-range", - "npm:7.0.1" - ], - [ - "filter-obj", - "npm:1.1.0" - ], - [ - "finalhandler", - "npm:1.1.2" - ], - [ - "find-cache-dir", - "npm:2.1.0" - ], - [ - "find-up", - "npm:4.1.0" - ], - [ - "flat", - "npm:5.0.2" - ], - [ - "flat-cache", - "npm:3.0.4" - ], - [ - "flatted", - "npm:3.1.1" - ], - [ - "flow-enums-runtime", - "npm:0.0.6" - ], - [ - "flow-parser", - "npm:0.246.0" - ], - [ - "for-in", - "npm:1.0.2" - ], - [ - "forever-agent", - "npm:0.6.1" - ], - [ - "form-data", - "npm:2.3.3" - ], - [ - "fragment-cache", - "npm:0.2.1" - ], - [ - "fresh", - "npm:0.5.2" - ], - [ - "fs-extra", - "npm:9.1.0" - ], - [ - "fs-minipass", - "npm:2.1.0" - ], - [ - "fs-readdir-recursive", - "npm:1.1.0" - ], - [ - "fs.realpath", - "npm:1.0.0" - ], - [ - "fsevents", - "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea" - ], - [ - "function-bind", - "npm:1.1.1" - ], - [ - "functional-red-black-tree", - "npm:1.0.1" - ], - [ - "gauge", - "npm:2.7.4" - ], - [ - "gensync", - "npm:1.0.0-beta.2" - ], - [ - "get-caller-file", - "npm:2.0.5" - ], - [ - "get-intrinsic", - "npm:1.1.1" - ], - [ - "get-package-type", - "npm:0.1.0" - ], - [ - "get-pkg-repo", - "npm:1.4.0" - ], - [ - "get-stdin", - "npm:6.0.0" - ], - [ - "get-stream", - "npm:5.2.0" - ], - [ - "get-value", - "npm:2.0.6" - ], - [ - "getpass", - "npm:0.1.7" - ], - [ - "gh-got", - "npm:8.1.0" - ], - [ - "git-raw-commits", - "npm:2.0.10" - ], - [ - "git-remote-origin-url", - "npm:2.0.0" - ], - [ - "git-semver-tags", - "npm:4.1.1" - ], - [ - "git-up", - "npm:4.0.2" - ], - [ - "git-url-parse", - "npm:11.3.0" - ], - [ - "gitconfiglocal", - "npm:1.0.0" - ], - [ - "github-username", - "npm:5.0.1" - ], - [ - "glob", - "npm:7.1.7" - ], - [ - "glob-parent", - "npm:5.1.2" - ], - [ - "global-dirs", - "npm:0.1.1" - ], - [ - "globals", - "npm:11.12.0" - ], - [ - "globby", - "npm:11.0.3" - ], - [ - "got", - "npm:9.6.0" - ], - [ - "graceful-fs", - "npm:4.2.6" - ], - [ - "growly", - "npm:1.3.0" - ], - [ - "handlebars", - "npm:4.7.7" - ], - [ - "har-schema", - "npm:2.0.0" - ], - [ - "har-validator", - "npm:5.1.5" - ], - [ - "hard-rejection", - "npm:2.1.0" - ], - [ - "has", - "npm:1.0.3" - ], - [ - "has-bigints", - "npm:1.0.1" - ], - [ - "has-flag", - "npm:4.0.0" - ], - [ - "has-symbols", - "npm:1.0.2" - ], - [ - "has-unicode", - "npm:2.0.1" - ], - [ - "has-value", - "npm:1.0.0" - ], - [ - "has-values", - "npm:1.0.0" - ], - [ - "has-yarn", - "npm:2.1.0" - ], - [ - "hermes-estree", - "npm:0.19.1" - ], - [ - "hermes-parser", - "npm:0.19.1" - ], - [ - "hermes-profile-transformer", - "npm:0.0.6" - ], - [ - "hosted-git-info", - "npm:2.8.9" - ], - [ - "html-encoding-sniffer", - "npm:2.0.1" - ], - [ - "html-escaper", - "npm:2.0.2" - ], - [ - "htmlparser2", - "npm:7.1.2" - ], - [ - "http-cache-semantics", - "npm:4.1.0" - ], - [ - "http-errors", - "npm:2.0.0" - ], - [ - "http-proxy-agent", - "npm:4.0.1" - ], - [ - "http-signature", - "npm:1.2.0" - ], - [ - "http2-wrapper", - "npm:1.0.3" - ], - [ - "https-proxy-agent", - "npm:5.0.0" - ], - [ - "human-signals", - "npm:1.1.1" - ], - [ - "humanize-ms", - "npm:1.2.1" - ], - [ - "husky", - "npm:6.0.0" - ], - [ - "iconv-lite", - "npm:0.4.24" - ], - [ - "ieee754", - "npm:1.2.1" - ], - [ - "ignore", - "npm:5.1.8" - ], - [ - "image-size", - "npm:1.1.1" - ], - [ - "import-cwd", - "npm:3.0.0" - ], - [ - "import-fresh", - "npm:3.3.0" - ], - [ - "import-from", - "npm:3.0.0" - ], - [ - "import-lazy", - "npm:2.1.0" - ], - [ - "import-local", - "npm:3.0.2" - ], - [ - "imurmurhash", - "npm:0.1.4" - ], - [ - "indent-string", - "npm:4.0.0" - ], - [ - "infer-owner", - "npm:1.0.4" - ], - [ - "inflight", - "npm:1.0.6" - ], - [ - "inherits", - "npm:2.0.4" - ], - [ - "ini", - "npm:1.3.8" - ], - [ - "inquirer", - "npm:7.3.3" - ], - [ - "internal-slot", - "npm:1.0.3" - ], - [ - "interpret", - "npm:1.4.0" - ], - [ - "invariant", - "npm:2.2.4" - ], - [ - "ip", - "npm:1.1.5" - ], - [ - "is-absolute", - "npm:1.0.0" - ], - [ - "is-accessor-descriptor", - "npm:0.1.6" - ], - [ - "is-arrayish", - "npm:0.2.1" - ], - [ - "is-bigint", - "npm:1.0.2" - ], - [ - "is-binary-path", - "npm:1.0.1" - ], - [ - "is-boolean-object", - "npm:1.1.1" - ], - [ - "is-buffer", - "npm:1.1.6" - ], - [ - "is-callable", - "npm:1.2.3" - ], - [ - "is-ci", - "npm:2.0.0" - ], - [ - "is-core-module", - "npm:2.4.0" - ], - [ - "is-data-descriptor", - "npm:0.1.4" - ], - [ - "is-date-object", - "npm:1.0.4" - ], - [ - "is-descriptor", - "npm:1.0.2" - ], - [ - "is-directory", - "npm:0.3.1" - ], - [ - "is-docker", - "npm:2.2.1" - ], - [ - "is-extendable", - "npm:0.1.1" - ], - [ - "is-extglob", - "npm:2.1.1" - ], - [ - "is-finite", - "npm:1.1.0" - ], - [ - "is-fullwidth-code-point", - "npm:3.0.0" - ], - [ - "is-generator-fn", - "npm:2.1.0" - ], - [ - "is-git-dirty", - "npm:2.0.1" - ], - [ - "is-git-repository", - "npm:2.0.0" - ], - [ - "is-glob", - "npm:4.0.1" - ], - [ - "is-installed-globally", - "npm:0.3.2" - ], - [ - "is-interactive", - "npm:1.0.0" - ], - [ - "is-lambda", - "npm:1.0.1" - ], - [ - "is-negative-zero", - "npm:2.0.1" - ], - [ - "is-npm", - "npm:5.0.0" - ], - [ - "is-number", - "npm:3.0.0" - ], - [ - "is-number-object", - "npm:1.0.5" - ], - [ - "is-obj", - "npm:2.0.0" - ], - [ - "is-path-cwd", - "npm:2.2.0" - ], - [ - "is-path-inside", - "npm:3.0.3" - ], - [ - "is-plain-obj", - "npm:1.1.0" - ], - [ - "is-plain-object", - "npm:2.0.4" - ], - [ - "is-potential-custom-element-name", - "npm:1.0.1" - ], - [ - "is-regex", - "npm:1.1.3" - ], - [ - "is-relative", - "npm:1.0.0" - ], - [ - "is-ssh", - "npm:1.3.3" - ], - [ - "is-stream", - "npm:2.0.0" - ], - [ - "is-string", - "npm:1.0.6" - ], - [ - "is-symbol", - "npm:1.0.4" - ], - [ - "is-text-path", - "npm:1.0.1" - ], - [ - "is-typedarray", - "npm:1.0.0" - ], - [ - "is-unc-path", - "npm:1.0.0" - ], - [ - "is-unicode-supported", - "npm:0.1.0" - ], - [ - "is-utf8", - "npm:0.2.1" - ], - [ - "is-windows", - "npm:1.0.2" - ], - [ - "is-wsl", - "npm:2.2.0" - ], - [ - "is-yarn-global", - "npm:0.3.0" - ], - [ - "isarray", - "npm:1.0.0" - ], - [ - "isexe", - "npm:2.0.0" - ], - [ - "isobject", - "npm:3.0.1" - ], - [ - "isstream", - "npm:0.1.2" - ], - [ - "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" - ], - [ - "jake", - "npm:10.8.2" - ], - [ - "jest", - "npm:26.6.3" - ], - [ - "jest-changed-files", - "npm:26.6.2" - ], - [ - "jest-cli", - "npm:26.6.3" - ], - [ - "jest-config", - "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3" - ], - [ - "jest-diff", - "npm:26.6.2" - ], - [ - "jest-docblock", - "npm:26.0.0" - ], - [ - "jest-each", - "npm:26.6.2" - ], - [ - "jest-environment-jsdom", - "npm:26.6.2" - ], - [ - "jest-environment-node", - "npm:26.6.2" - ], - [ - "jest-get-type", - "npm:26.3.0" - ], - [ - "jest-haste-map", - "npm:26.6.2" - ], - [ - "jest-jasmine2", - "npm:26.6.3" - ], - [ - "jest-leak-detector", - "npm:26.6.2" - ], - [ - "jest-matcher-utils", - "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-resolve-dependencies", - "npm:26.6.3" - ], - [ - "jest-runner", - "npm:26.6.3" - ], - [ - "jest-runtime", - "npm:26.6.3" - ], - [ - "jest-serializer", - "npm:26.6.2" - ], - [ - "jest-snapshot", - "npm:26.6.2" - ], - [ - "jest-util", - "npm:26.6.2" - ], - [ - "jest-validate", - "npm:26.6.2" - ], - [ - "jest-watcher", - "npm:26.6.2" - ], - [ - "jest-worker", - "npm:26.6.2" - ], - [ - "jetifier", - "npm:1.6.8" - ], - [ - "joi", - "npm:17.13.3" - ], - [ - "js-tokens", - "npm:4.0.0" - ], - [ - "js-yaml", - "npm:3.14.1" - ], - [ - "jsbn", - "npm:0.1.1" - ], - [ - "jsc-android", - "npm:250231.0.0" - ], - [ - "jsc-safe-url", - "npm:0.2.4" - ], - [ - "jscodeshift", - "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0" - ], - [ - "jsdom", - "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3" - ], - [ - "jsesc", - "npm:2.5.2" - ], - [ - "json-buffer", - "npm:3.0.0" - ], - [ - "json-parse-better-errors", - "npm:1.0.2" - ], - [ - "json-parse-even-better-errors", - "npm:2.3.1" - ], - [ - "json-schema", - "npm:0.2.3" - ], - [ - "json-schema-traverse", - "npm:0.4.1" - ], - [ - "json-stable-stringify-without-jsonify", - "npm:1.0.1" - ], - [ - "json-stringify-safe", - "npm:5.0.1" - ], - [ - "json5", - "npm:2.2.0" - ], - [ - "jsonfile", - "npm:6.1.0" - ], - [ - "jsonparse", - "npm:1.3.1" - ], - [ - "jsprim", - "npm:1.4.1" - ], - [ - "jsx-ast-utils", - "npm:3.2.0" - ], - [ - "keyv", - "npm:3.1.0" - ], - [ - "kind-of", - "npm:6.0.3" - ], - [ - "kleur", - "npm:3.0.3" - ], - [ - "latest-version", - "npm:5.1.0" - ], - [ - "leven", - "npm:3.1.0" - ], - [ - "levn", - "npm:0.4.1" - ], - [ - "lighthouse-logger", - "npm:1.4.2" - ], - [ - "lines-and-columns", - "npm:1.1.6" - ], - [ - "load-json-file", - "npm:1.1.0" - ], - [ - "locate-path", - "npm:5.0.0" - ], - [ - "lodash", - "npm:4.17.21" - ], - [ - "lodash.clonedeep", - "npm:4.5.0" - ], - [ - "lodash.debounce", - "npm:4.0.8" - ], - [ - "lodash.ismatch", - "npm:4.4.0" - ], - [ - "lodash.memoize", - "npm:4.1.2" - ], - [ - "lodash.throttle", - "npm:4.1.1" - ], - [ - "lodash.truncate", - "npm:4.4.2" - ], - [ - "log-symbols", - "npm:4.1.0" - ], - [ - "logkitty", - "npm:0.7.1" - ], - [ - "loose-envify", - "npm:1.4.0" - ], - [ - "loud-rejection", - "npm:1.6.0" - ], - [ - "lower-case", - "npm:2.0.2" - ], - [ - "lowercase-keys", - "npm:2.0.0" - ], - [ - "lru-cache", - "npm:6.0.0" - ], - [ - "macos-release", - "npm:2.4.1" - ], - [ - "make-dir", - "npm:3.1.0" - ], - [ - "make-fetch-happen", - "npm:8.0.14" - ], - [ - "makeerror", - "npm:1.0.11" - ], - [ - "map-cache", - "npm:0.2.2" - ], - [ - "map-obj", - "npm:1.0.1" - ], - [ - "map-visit", - "npm:1.0.0" - ], - [ - "marky", - "npm:1.2.5" - ], - [ - "memoize-one", - "npm:5.2.1" - ], - [ - "meow", - "npm:8.1.2" - ], - [ - "merge-stream", - "npm:2.0.0" - ], - [ - "merge2", - "npm:1.4.1" - ], - [ - "metro", - "npm:0.80.12" - ], - [ - "metro-babel-transformer", - "npm:0.80.12" - ], - [ - "metro-cache", - "npm:0.80.12" - ], - [ - "metro-cache-key", - "npm:0.80.12" - ], - [ - "metro-config", - "npm:0.80.12" - ], - [ - "metro-core", - "npm:0.80.12" - ], - [ - "metro-file-map", - "npm:0.80.12" - ], - [ - "metro-minify-terser", - "npm:0.80.12" - ], - [ - "metro-react-native-babel-preset", - "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0" - ], - [ - "metro-resolver", - "npm:0.80.12" - ], - [ - "metro-runtime", - "npm:0.80.12" - ], - [ - "metro-source-map", - "npm:0.80.12" - ], - [ - "metro-symbolicate", - "npm:0.80.12" - ], - [ - "metro-transform-plugins", - "npm:0.80.12" - ], - [ - "metro-transform-worker", - "npm:0.80.12" - ], - [ - "micromatch", - "npm:4.0.4" - ], - [ - "microtime", - "npm:3.0.0" - ], - [ - "mime", - "npm:2.6.0" - ], - [ - "mime-db", - "npm:1.47.0" - ], - [ - "mime-types", - "npm:2.1.30" - ], - [ - "mimic-fn", - "npm:2.1.0" - ], - [ - "mimic-response", - "npm:1.0.1" - ], - [ - "min-indent", - "npm:1.0.1" - ], - [ - "minimatch", - "npm:3.0.4" - ], - [ - "minimist", - "npm:1.2.5" - ], - [ - "minimist-options", - "npm:4.1.0" - ], - [ - "minipass", - "npm:3.1.3" - ], - [ - "minipass-collect", - "npm:1.0.2" - ], - [ - "minipass-fetch", - "npm:1.3.3" - ], - [ - "minipass-flush", - "npm:1.0.5" - ], - [ - "minipass-pipeline", - "npm:1.2.4" - ], - [ - "minipass-sized", - "npm:1.0.3" - ], - [ - "minizlib", - "npm:2.1.2" - ], - [ - "mixin-deep", - "npm:1.3.2" - ], - [ - "mkdirp", - "npm:1.0.4" - ], - [ - "modify-values", - "npm:1.0.1" - ], - [ - "ms", - "npm:2.1.3" - ], - [ - "mute-stream", - "npm:0.0.8" - ], - [ - "nanomatch", - "npm:1.2.13" - ], - [ - "natural-compare", - "npm:1.4.0" - ], - [ - "negotiator", - "npm:0.6.3" - ], - [ - "neo-async", - "npm:2.6.2" - ], - [ - "nice-try", - "npm:1.0.5" - ], - [ - "no-case", - "npm:3.0.4" - ], - [ - "nocache", - "npm:3.0.4" - ], - [ - "node-abort-controller", - "npm:3.1.1" - ], - [ - "node-addon-api", - "npm:1.7.2" - ], - [ - "node-dir", - "npm:0.1.17" - ], - [ - "node-fetch", - "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0" - ], - [ - "node-forge", - "npm:1.3.1" - ], - [ - "node-gyp", - "npm:8.0.0" - ], - [ - "node-gyp-build", - "npm:3.9.0" - ], - [ - "node-int64", - "npm:0.4.0" - ], - [ - "node-modules-regexp", - "npm:1.0.0" - ], - [ - "node-notifier", - "npm:8.0.2" - ], - [ - "node-releases", - "npm:1.1.72" - ], - [ - "node-stream-zip", - "npm:1.15.0" - ], - [ - "nopt", - "npm:5.0.0" - ], - [ - "normalize-package-data", - "npm:2.5.0" - ], - [ - "normalize-path", - "npm:3.0.0" - ], - [ - "normalize-url", - "npm:4.5.0" - ], - [ - "npm-run-path", - "npm:4.0.1" - ], - [ - "npmlog", - "npm:4.1.2" - ], - [ - "nullthrows", - "npm:1.1.1" - ], - [ - "number-is-nan", - "npm:1.0.1" - ], - [ - "nwsapi", - "npm:2.2.0" - ], - [ - "oauth-sign", - "npm:0.9.0" - ], - [ - "ob1", - "npm:0.80.12" - ], - [ - "object-assign", - "npm:4.1.1" - ], - [ - "object-copy", - "npm:0.1.0" - ], - [ - "object-inspect", - "npm:1.10.3" - ], - [ - "object-keys", - "npm:1.1.1" - ], - [ - "object-visit", - "npm:1.0.1" - ], - [ - "object.assign", - "npm:4.1.2" - ], - [ - "object.entries", - "npm:1.1.3" - ], - [ - "object.fromentries", - "npm:2.0.4" - ], - [ - "object.pick", - "npm:1.3.0" - ], - [ - "object.values", - "npm:1.1.3" - ], - [ - "on-finished", - "npm:2.4.1" - ], - [ - "on-headers", - "npm:1.0.2" - ], - [ - "once", - "npm:1.4.0" - ], - [ - "onetime", - "npm:5.1.2" - ], - [ - "open", - "npm:6.4.0" - ], - [ - "optionator", - "npm:0.9.1" - ], - [ - "ora", - "npm:5.4.1" - ], - [ - "os-name", - "npm:4.0.0" - ], - [ - "os-tmpdir", - "npm:1.0.2" - ], - [ - "p-cancelable", - "npm:1.1.0" - ], - [ - "p-each-series", - "npm:2.2.0" - ], - [ - "p-finally", - "npm:1.0.0" - ], - [ - "p-limit", - "npm:2.3.0" - ], - [ - "p-locate", - "npm:4.1.0" - ], - [ - "p-map", - "npm:4.0.0" - ], - [ - "p-try", - "npm:2.2.0" - ], - [ - "package-json", - "npm:6.5.0" - ], - [ - "param-case", - "npm:3.0.4" - ], - [ - "parent-module", - "npm:1.0.1" - ], - [ - "parse-github-repo-url", - "npm:1.4.1" - ], - [ - "parse-json", - "npm:5.2.0" - ], - [ - "parse-path", - "npm:4.0.3" - ], - [ - "parse-url", - "npm:5.0.2" - ], - [ - "parse5", - "npm:6.0.1" - ], - [ - "parseurl", - "npm:1.3.3" - ], - [ - "pascalcase", - "npm:0.1.1" - ], - [ - "path-dirname", - "npm:1.0.2" - ], - [ - "path-exists", - "npm:4.0.0" - ], - [ - "path-is-absolute", - "npm:1.0.1" - ], - [ - "path-key", - "npm:3.1.1" - ], - [ - "path-parse", - "npm:1.0.6" - ], - [ - "path-type", - "npm:4.0.0" - ], - [ - "performance-now", - "npm:2.1.0" - ], - [ - "performance-testing", - "workspace:packages/performance-testing" - ], - [ - "picocolors", - "npm:1.1.0" - ], - [ - "picomatch", - "npm:2.2.3" - ], - [ - "pify", - "npm:2.3.0" - ], - [ - "pinkie", - "npm:2.0.4" - ], - [ - "pinkie-promise", - "npm:2.0.1" - ], - [ - "pirates", - "npm:4.0.1" - ], - [ - "pkg-dir", - "npm:4.2.0" - ], - [ - "platform", - "npm:1.3.6" - ], - [ - "posix-character-classes", - "npm:0.1.1" - ], - [ - "postcss-value-parser", - "npm:4.1.0" - ], - [ - "prelude-ls", - "npm:1.2.1" - ], - [ - "prepend-file", - "npm:2.0.0" - ], - [ - "prepend-http", - "npm:2.0.0" - ], - [ - "prettier", - "npm:2.3.0" - ], - [ - "prettier-linter-helpers", - "npm:1.0.0" - ], - [ - "pretty-format", - "npm:26.6.2" - ], - [ - "process-nextick-args", - "npm:2.0.1" - ], - [ - "progress", - "npm:2.0.3" - ], - [ - "promise", - "npm:8.3.0" - ], - [ - "promise-inflight", - "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1" - ], - [ - "promise-retry", - "npm:2.0.1" - ], - [ - "prompts", - "npm:2.4.1" - ], - [ - "prop-types", - "npm:15.7.2" - ], - [ - "protocols", - "npm:1.4.8" - ], - [ - "psl", - "npm:1.8.0" - ], - [ - "pump", - "npm:3.0.0" - ], - [ - "punycode", - "npm:2.1.1" - ], - [ - "pupa", - "npm:2.1.1" - ], - [ - "q", - "npm:1.5.1" - ], - [ - "qs", - "npm:6.5.2" - ], - [ - "query-string", - "npm:6.14.1" - ], - [ - "querystring", - "npm:0.2.1" - ], - [ - "queue", - "npm:6.0.2" - ], - [ - "queue-microtask", - "npm:1.2.3" - ], - [ - "quick-lru", - "npm:4.0.1" - ], - [ - "ramda", - "npm:0.27.2" - ], - [ - "range-parser", - "npm:1.2.1" - ], - [ - "rc", - "npm:1.2.8" - ], - [ - "react", - "npm:17.0.2" - ], - [ - "react-devtools-core", - "npm:5.3.1" - ], - [ - "react-is", - "npm:18.3.1" - ], - [ - "react-native", - "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5" - ], - [ - "react-refresh", - "npm:0.14.2" - ], - [ - "react-shallow-renderer", - "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0" - ], - [ - "read-pkg", - "npm:3.0.0" - ], - [ - "read-pkg-up", - "npm:7.0.1" - ], - [ - "readable-stream", - "npm:3.6.0" - ], - [ - "readdirp", - "npm:2.2.1" - ], - [ - "readline", - "npm:1.3.0" - ], - [ - "recast", - "npm:0.21.5" - ], - [ - "rechoir", - "npm:0.6.2" - ], - [ - "redent", - "npm:3.0.0" - ], - [ - "regenerate", - "npm:1.4.2" - ], - [ - "regenerate-unicode-properties", - "npm:8.2.0" - ], - [ - "regenerator-runtime", - "npm:0.13.8" - ], - [ - "regenerator-transform", - "npm:0.14.5" - ], - [ - "regex-not", - "npm:1.0.2" - ], - [ - "regexp.prototype.flags", - "npm:1.3.1" - ], - [ - "regexpp", - "npm:3.1.0" - ], - [ - "regexpu-core", - "npm:4.7.1" - ], - [ - "registry-auth-token", - "npm:4.2.1" - ], - [ - "registry-url", - "npm:5.1.0" - ], - [ - "regjsgen", - "npm:0.5.2" - ], - [ - "regjsparser", - "npm:0.6.9" - ], - [ - "release-config", - "workspace:packages/release-config" - ], - [ - "release-it", - "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A." - ], - [ - "remove-trailing-separator", - "npm:1.1.0" - ], - [ - "repeat-element", - "npm:1.1.4" - ], - [ - "repeat-string", - "npm:1.6.1" - ], - [ - "repeating", - "npm:2.0.1" - ], - [ - "request", - "npm:2.88.2" - ], - [ - "request-promise-core", - "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4" - ], - [ - "request-promise-native", - "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9" - ], - [ - "require-directory", - "npm:2.1.1" - ], - [ - "require-from-string", - "npm:2.0.2" - ], - [ - "require-main-filename", - "npm:2.0.0" - ], - [ - "resolve", - "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa" - ], - [ - "resolve-alpn", - "npm:1.1.2" - ], - [ - "resolve-cwd", - "npm:3.0.0" - ], - [ - "resolve-from", - "npm:5.0.0" - ], - [ - "resolve-global", - "npm:1.0.0" - ], - [ - "resolve-url", - "npm:0.2.1" - ], - [ - "responselike", - "npm:2.0.0" - ], - [ - "restore-cursor", - "npm:3.1.0" - ], - [ - "ret", - "npm:0.1.15" - ], - [ - "retry", - "npm:0.12.0" - ], - [ - "reusify", - "npm:1.0.4" - ], - [ - "rimraf", - "npm:3.0.2" - ], - [ - "rsvp", - "npm:4.8.5" - ], - [ - "run-async", - "npm:2.4.1" - ], - [ - "run-parallel", - "npm:1.2.0" - ], - [ - "rxjs", - "npm:6.6.7" - ], - [ - "safe-buffer", - "npm:5.1.2" - ], - [ - "safe-regex", - "npm:1.1.0" - ], - [ - "safer-buffer", - "npm:2.1.2" - ], - [ - "sane", - "npm:4.1.0" - ], - [ - "saxes", - "npm:5.0.1" - ], - [ - "scheduler", - "npm:0.24.0-canary-efb381bbf-20230505" - ], - [ - "selfsigned", - "npm:2.4.1" - ], - [ - "semver", - "npm:6.3.0" - ], - [ - "semver-diff", - "npm:3.1.1" - ], - [ - "send", - "npm:0.19.0" - ], - [ - "serialize-error", - "npm:2.1.0" - ], - [ - "serve-static", - "npm:1.16.2" - ], - [ - "set-blocking", - "npm:2.0.0" - ], - [ - "set-value", - "npm:2.0.1" - ], - [ - "setprototypeof", - "npm:1.2.0" - ], - [ - "shallow-clone", - "npm:3.0.1" - ], - [ - "shebang-command", - "npm:2.0.0" - ], - [ - "shebang-regex", - "npm:3.0.0" - ], - [ - "shell-quote", - "npm:1.8.1" - ], - [ - "shelljs", - "npm:0.8.4" - ], - [ - "shellwords", - "npm:0.1.1" - ], - [ - "side-channel", - "npm:1.0.4" - ], - [ - "signal-exit", - "npm:3.0.3" - ], - [ - "sisteransi", - "npm:1.0.5" - ], - [ - "slash", - "npm:3.0.0" - ], - [ - "slice-ansi", - "npm:4.0.0" - ], - [ - "smart-buffer", - "npm:4.1.0" - ], - [ - "snapdragon", - "npm:0.8.2" - ], - [ - "snapdragon-node", - "npm:2.1.1" - ], - [ - "snapdragon-util", - "npm:3.0.1" - ], - [ - "socks", - "npm:2.6.1" - ], - [ - "socks-proxy-agent", - "npm:5.0.0" - ], - [ - "source-map", - "npm:0.6.1" - ], - [ - "source-map-resolve", - "npm:0.5.3" - ], - [ - "source-map-support", - "npm:0.5.21" - ], - [ - "source-map-url", - "npm:0.4.1" - ], - [ - "spdx-correct", - "npm:3.1.1" - ], - [ - "spdx-exceptions", - "npm:2.3.0" - ], - [ - "spdx-expression-parse", - "npm:3.0.1" - ], - [ - "spdx-license-ids", - "npm:3.0.7" - ], - [ - "split", - "npm:1.0.1" - ], - [ - "split-on-first", - "npm:1.1.0" - ], - [ - "split-string", - "npm:3.1.0" - ], - [ - "split2", - "npm:3.2.2" - ], - [ - "sprintf-js", - "npm:1.0.3" - ], - [ - "sshpk", - "npm:1.16.1" - ], - [ - "ssri", - "npm:8.0.1" - ], - [ - "stack-utils", - "npm:2.0.3" - ], - [ - "stackframe", - "npm:1.3.4" - ], - [ - "stacktrace-parser", - "npm:0.1.10" - ], - [ - "static-extend", - "npm:0.1.2" - ], - [ - "statuses", - "npm:2.0.1" - ], - [ - "stealthy-require", - "npm:1.1.1" - ], - [ - "strict-uri-encode", - "npm:2.0.0" - ], - [ - "string-length", - "npm:4.0.2" - ], - [ - "string-width", - "npm:4.2.2" - ], - [ - "string.prototype.matchall", - "npm:4.0.4" - ], - [ - "string.prototype.trimend", - "npm:1.0.4" - ], - [ - "string.prototype.trimstart", - "npm:1.0.4" - ], - [ - "string_decoder", - "npm:1.3.0" - ], - [ - "strip-ansi", - "npm:6.0.0" - ], - [ - "strip-bom", - "npm:4.0.0" - ], - [ - "strip-eof", - "npm:1.0.0" - ], - [ - "strip-final-newline", - "npm:2.0.0" - ], - [ - "strip-indent", - "npm:3.0.0" - ], - [ - "strip-json-comments", - "npm:3.1.1" - ], - [ - "strnum", - "npm:1.0.5" - ], - [ - "sudo-prompt", - "npm:9.2.1" - ], - [ - "supports-color", - "npm:7.2.0" - ], - [ - "supports-hyperlinks", - "npm:2.2.0" - ], - [ - "symbol-tree", - "npm:3.2.4" - ], - [ - "table", - "npm:6.7.1" - ], - [ - "tar", - "npm:6.1.0" - ], - [ - "temp", - "npm:0.8.4" - ], - [ - "temp-dir", - "npm:1.0.0" - ], - [ - "temp-write", - "npm:4.0.0" - ], - [ - "term-size", - "npm:2.2.1" - ], - [ - "terminal-link", - "npm:2.1.1" - ], - [ - "terser", - "npm:5.33.0" - ], - [ - "test-exclude", - "npm:6.0.0" - ], - [ - "text-extensions", - "npm:1.9.0" - ], - [ - "text-table", - "npm:0.2.0" - ], - [ - "throat", - "npm:5.0.0" - ], - [ - "through", - "npm:2.3.8" - ], - [ - "through2", - "npm:4.0.2" - ], - [ - "tmp", - "npm:0.0.33" - ], - [ - "tmpl", - "npm:1.0.4" - ], - [ - "to-fast-properties", - "npm:2.0.0" - ], - [ - "to-object-path", - "npm:0.3.0" - ], - [ - "to-readable-stream", - "npm:1.0.0" - ], - [ - "to-regex", - "npm:3.0.2" - ], - [ - "to-regex-range", - "npm:5.0.1" - ], - [ - "toidentifier", - "npm:1.0.1" - ], - [ - "tough-cookie", - "npm:2.5.0" - ], - [ - "tr46", - "npm:2.0.2" - ], - [ - "trim-newlines", - "npm:3.0.0" - ], - [ - "trim-off-newlines", - "npm:1.0.1" - ], - [ - "ts-toolbelt", - "npm:6.15.5" - ], - [ - "tslib", - "npm:2.2.0" - ], - [ - "tsutils", - "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0" - ], - [ - "tunnel-agent", - "npm:0.6.0" - ], - [ - "tweetnacl", - "npm:0.14.5" - ], - [ - "type-check", - "npm:0.4.0" - ], - [ - "type-detect", - "npm:4.0.8" - ], - [ - "type-fest", - "npm:0.8.1" - ], - [ - "typedarray", - "npm:0.0.6" - ], - [ - "typedarray-to-buffer", - "npm:3.1.5" - ], - [ - "typescript", - "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e" - ], - [ - "uglify-js", - "npm:3.13.6" - ], - [ - "unbox-primitive", - "npm:1.0.1" - ], - [ - "unc-path-regex", - "npm:0.1.2" - ], - [ - "undici-types", - "npm:5.26.5" - ], - [ - "unicode-canonical-property-names-ecmascript", - "npm:1.0.4" - ], - [ - "unicode-match-property-ecmascript", - "npm:1.0.4" - ], - [ - "unicode-match-property-value-ecmascript", - "npm:1.2.0" - ], - [ - "unicode-property-aliases-ecmascript", - "npm:1.1.0" - ], - [ - "union-value", - "npm:1.0.1" - ], - [ - "unique-filename", - "npm:1.1.1" - ], - [ - "unique-slug", - "npm:2.0.2" - ], - [ - "unique-string", - "npm:2.0.0" - ], - [ - "universal-user-agent", - "npm:6.0.0" - ], - [ - "universalify", - "npm:2.0.0" - ], - [ - "unpipe", - "npm:1.0.0" - ], - [ - "unset-value", - "npm:1.0.0" - ], - [ - "upath", - "npm:1.2.0" - ], - [ - "update-notifier", - "npm:5.0.0" - ], - [ - "uri-js", - "npm:4.4.1" - ], - [ - "urix", - "npm:0.1.0" - ], - [ - "url-join", - "npm:4.0.1" - ], - [ - "url-parse-lax", - "npm:3.0.0" - ], - [ - "use", - "npm:3.1.1" - ], - [ - "util-deprecate", - "npm:1.0.2" - ], - [ - "utils-merge", - "npm:1.0.1" - ], - [ - "uuid", - "npm:3.4.0" - ], - [ - "v8-compile-cache", - "npm:2.3.0" - ], - [ - "v8-to-istanbul", - "npm:7.1.2" - ], - [ - "validate-npm-package-license", - "npm:3.0.4" - ], - [ - "validate-npm-package-name", - "npm:3.0.0" - ], - [ - "vary", - "npm:1.1.2" - ], - [ - "verror", - "npm:1.10.0" - ], - [ - "vlq", - "npm:1.0.1" - ], - [ - "w3c-hr-time", - "npm:1.0.2" - ], - [ - "w3c-xmlserializer", - "npm:2.0.0" - ], - [ - "walker", - "npm:1.0.7" - ], - [ - "wcwidth", - "npm:1.0.1" - ], - [ - "webidl-conversions", - "npm:6.1.0" - ], - [ - "whatwg-encoding", - "npm:1.0.5" - ], - [ - "whatwg-fetch", - "npm:3.6.20" - ], - [ - "whatwg-mimetype", - "npm:2.3.0" - ], - [ - "whatwg-url", - "npm:8.5.0" - ], - [ - "which", - "npm:2.0.2" - ], - [ - "which-boxed-primitive", - "npm:1.0.2" - ], - [ - "which-module", - "npm:2.0.0" - ], - [ - "wide-align", - "npm:1.1.3" - ], - [ - "widest-line", - "npm:3.1.0" - ], - [ - "windows-release", - "npm:4.0.0" - ], - [ - "word-wrap", - "npm:1.2.3" - ], - [ - "wordwrap", - "npm:1.0.0" - ], - [ - "wrap-ansi", - "npm:7.0.0" - ], - [ - "wrappy", - "npm:1.0.2" - ], - [ - "write-file-atomic", - "npm:3.0.3" - ], - [ - "ws", - "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3" - ], - [ - "xdg-basedir", - "npm:4.0.0" - ], - [ - "xml-name-validator", - "npm:3.0.0" - ], - [ - "xmlchars", - "npm:2.2.0" - ], - [ - "xtend", - "npm:4.0.2" - ], - [ - "y18n", - "npm:5.0.8" - ], - [ - "yallist", - "npm:4.0.0" - ], - [ - "yaml", - "npm:1.10.2" - ], - [ - "yargs", - "npm:15.4.1" - ], - [ - "yargs-parser", - "npm:20.2.7" - ], - [ - "yocto-queue", - "npm:0.1.0" - ] - ], - "locationBlacklistData": [ - ], - "packageRegistryData": [ - [null, [ - [null, { - "packageLocation": "./", - "packageDependencies": [ - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@commitlint/cli", "npm:12.1.4"], - ["@commitlint/config-conventional", "npm:12.1.4"], - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"], - ["@react-native-community/eslint-plugin", "npm:1.1.0"], - ["@tsconfig/react-native", "npm:1.0.3"], - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["commitlint", "npm:12.1.4"], - ["eslint", "npm:7.26.0"], - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"], - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"], - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"], - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"], - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"], - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"], - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"], - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"], - ["husky", "npm:6.0.0"], - ["jest", "npm:26.6.3"], - ["prettier", "npm:2.3.0"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["@ampproject/remapping", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-55187d9b3d.zip/node_modules/@ampproject/remapping/", - "packageDependencies": [ - ["@ampproject/remapping", "npm:2.3.0"], - ["@jridgewell/gen-mapping", "npm:0.3.5"], - ["@jridgewell/trace-mapping", "npm:0.3.25"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/cli", [ - ["npm:7.13.16", { - "packageLocation": "./.yarn/cache/@babel-cli-npm-7.13.16-b5bfaba1af-97324cb2b8.zip/node_modules/@babel/cli/", - "packageDependencies": [ - ["@babel/cli", "npm:7.13.16"] - ], - "linkType": "SOFT", - }], - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16", { - "packageLocation": "./.yarn/$$virtual/@babel-cli-virtual-67005d204e/0/cache/@babel-cli-npm-7.13.16-b5bfaba1af-97324cb2b8.zip/node_modules/@babel/cli/", - "packageDependencies": [ - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"], - ["@babel/core", "npm:7.14.2"], - ["@nicolo-ribaudo/chokidar-2", "npm:2.1.8-no-fsevents"], - ["@types/babel__core", null], - ["chokidar", "npm:3.5.1"], - ["commander", "npm:4.1.1"], - ["convert-source-map", "npm:1.7.0"], - ["fs-readdir-recursive", "npm:1.1.0"], - ["glob", "npm:7.1.7"], - ["make-dir", "npm:2.1.0"], - ["slash", "npm:2.0.0"], - ["source-map", "npm:0.5.7"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/code-frame", [ - ["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.14.0"] - ], - "linkType": "HARD", - }], - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-471532bb7c.zip/node_modules/@babel/code-frame/", - "packageDependencies": [ - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/highlight", "npm:7.14.0"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.24.7-315a600a58-9856c84570.zip/node_modules/@babel/code-frame/", - "packageDependencies": [ - ["@babel/code-frame", "npm:7.24.7"], - ["@babel/highlight", "npm:7.24.7"], - ["picocolors", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/compat-data", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.14.0-150bea01c2-d2d9de745e.zip/node_modules/@babel/compat-data/", - "packageDependencies": [ - ["@babel/compat-data", "npm:7.14.0"] - ], - "linkType": "HARD", - }], - ["npm:7.25.4", { - "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.25.4-213b9c835f-47c5f276e9.zip/node_modules/@babel/compat-data/", - "packageDependencies": [ - ["@babel/compat-data", "npm:7.25.4"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/core", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-core-npm-7.14.2-1f05a9f0fb-16dc0a5248.zip/node_modules/@babel/core/", - "packageDependencies": [ - ["@babel/core", "npm:7.14.2"], - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/generator", "npm:7.14.2"], - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helpers", "npm:7.14.0"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"], - ["convert-source-map", "npm:1.7.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["gensync", "npm:1.0.0-beta.2"], - ["json5", "npm:2.2.0"], - ["semver", "npm:6.3.0"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }], - ["npm:7.25.2", { - "packageLocation": "./.yarn/cache/@babel-core-npm-7.25.2-341930f809-d527f2eee7.zip/node_modules/@babel/core/", - "packageDependencies": [ - ["@babel/core", "npm:7.25.2"], - ["@ampproject/remapping", "npm:2.3.0"], - ["@babel/code-frame", "npm:7.24.7"], - ["@babel/generator", "npm:7.25.6"], - ["@babel/helper-compilation-targets", "npm:7.25.2"], - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"], - ["@babel/helpers", "npm:7.25.6"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/template", "npm:7.25.0"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"], - ["convert-source-map", "npm:2.0.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["gensync", "npm:1.0.0-beta.2"], - ["json5", "npm:2.2.3"], - ["semver", "npm:6.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/generator", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.14.2-f5d8a12b3c-eacc93d344.zip/node_modules/@babel/generator/", - "packageDependencies": [ - ["@babel/generator", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"], - ["jsesc", "npm:2.5.2"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.25.6-3bdca6c59f-f7dc651eaa.zip/node_modules/@babel/generator/", - "packageDependencies": [ - ["@babel/generator", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"], - ["@jridgewell/gen-mapping", "npm:0.3.5"], - ["@jridgewell/trace-mapping", "npm:0.3.25"], - ["jsesc", "npm:2.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-annotate-as-pure", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.12.13-0c70b1f2c0-e82f457eb9.zip/node_modules/@babel/helper-annotate-as-pure/", - "packageDependencies": [ - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.24.7-537c5e8bf3-4fbb426425.zip/node_modules/@babel/helper-annotate-as-pure/", - "packageDependencies": [ - ["@babel/helper-annotate-as-pure", "npm:7.24.7"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-builder-binary-assignment-operator-visitor", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.12.13-28972fa4d7-38bd626f38.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/", - "packageDependencies": [ - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.12.13"], - ["@babel/helper-explode-assignable-expression", "npm:7.13.0"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-compilation-targets", [ - ["npm:7.13.16", { - "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-baa1e4cdd5.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "npm:7.13.16"] - ], - "linkType": "SOFT", - }], - ["npm:7.25.2", { - "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.25.2-27e0232144-bc668d21c5.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "npm:7.25.2"], - ["@babel/compat-data", "npm:7.25.4"], - ["@babel/helper-validator-option", "npm:7.24.8"], - ["browserslist", "npm:4.23.3"], - ["lru-cache", "npm:5.1.1"], - ["semver", "npm:6.3.1"] - ], - "linkType": "HARD", - }], - ["virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-10da00d6ae/0/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-baa1e4cdd5.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@types/babel__core", null], - ["browserslist", "npm:4.16.6"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-8368329cb0/0/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-baa1e4cdd5.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@types/babel__core", null], - ["browserslist", "npm:4.16.6"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-create-class-features-plugin", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-e66a6efe15.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.25.4", { - "packageLocation": "./.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-91bdcd5c9d.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "npm:7.25.4"] - ], - "linkType": "SOFT", - }], - ["virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-204cdad65e/0/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-e66a6efe15.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"], - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-bef9aa36ff/0/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-e66a6efe15.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"], - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-8e7dab3a8a/0/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-91bdcd5c9d.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.24.7"], - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"], - ["@babel/helper-optimise-call-expression", "npm:7.24.7"], - ["@babel/helper-replace-supers", "virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@types/babel__core", null], - ["semver", "npm:6.3.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-create-regexp-features-plugin", [ - ["npm:7.12.17", { - "packageLocation": "./.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-ffb4fbca40.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "npm:7.12.17"] - ], - "linkType": "SOFT", - }], - ["npm:7.25.2", { - "packageLocation": "./.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-b177197bc5.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "npm:7.25.2"] - ], - "linkType": "SOFT", - }], - ["virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-645c838e66/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-ffb4fbca40.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@types/babel__core", null], - ["regexpu-core", "npm:4.7.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-13b6855b34/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-ffb4fbca40.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@types/babel__core", null], - ["regexpu-core", "npm:4.7.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-b4151cf299/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-b177197bc5.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.24.7"], - ["@types/babel__core", null], - ["regexpu-core", "npm:5.3.2"], - ["semver", "npm:6.3.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-define-polyfill-provider", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-575785f62b.zip/node_modules/@babel/helper-define-polyfill-provider/", - "packageDependencies": [ - ["@babel/helper-define-polyfill-provider", "npm:0.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-define-polyfill-provider-virtual-708a51ee61/0/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-575785f62b.zip/node_modules/@babel/helper-define-polyfill-provider/", - "packageDependencies": [ - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/traverse", "npm:7.14.2"], - ["@types/babel__core", null], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["lodash.debounce", "npm:4.0.8"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-define-polyfill-provider-virtual-08e678bbd8/0/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-575785f62b.zip/node_modules/@babel/helper-define-polyfill-provider/", - "packageDependencies": [ - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-compilation-targets", "virtual:08e678bbd89da8db7e4bb14cd2a0683ee9348f70b1954c79c9333bad6940a6d2081216c05e2749f1b9ed7e6f086868bc61eb705493a40265a5639587210ed632#npm:7.13.16"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/traverse", "npm:7.14.2"], - ["@types/babel__core", null], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["lodash.debounce", "npm:4.0.8"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-environment-visitor", [ - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-environment-visitor-npm-7.24.7-9a965bf523-b7297ea73d.zip/node_modules/@babel/helper-environment-visitor/", - "packageDependencies": [ - ["@babel/helper-environment-visitor", "npm:7.24.7"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-explode-assignable-expression", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.13.0-b191ec8b33-7379d0f0e9.zip/node_modules/@babel/helper-explode-assignable-expression/", - "packageDependencies": [ - ["@babel/helper-explode-assignable-expression", "npm:7.13.0"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-function-name", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-36bf5e4126.zip/node_modules/@babel/helper-function-name/", - "packageDependencies": [ - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-get-function-arity", "npm:7.12.13"], - ["@babel/template", "npm:7.12.13"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-get-function-arity", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-cfb5c39959.zip/node_modules/@babel/helper-get-function-arity/", - "packageDependencies": [ - ["@babel/helper-get-function-arity", "npm:7.12.13"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-hoist-variables", [ - ["npm:7.13.16", { - "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.13.16-315a8140fb-5a0c74c19e.zip/node_modules/@babel/helper-hoist-variables/", - "packageDependencies": [ - ["@babel/helper-hoist-variables", "npm:7.13.16"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-member-expression-to-functions", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-2c075f72e5.zip/node_modules/@babel/helper-member-expression-to-functions/", - "packageDependencies": [ - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.24.8-6042e98e38-7def8959f9.zip/node_modules/@babel/helper-member-expression-to-functions/", - "packageDependencies": [ - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-module-imports", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-4d1d3364be.zip/node_modules/@babel/helper-module-imports/", - "packageDependencies": [ - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.24.7-f60e66adbf-81353bfbb7.zip/node_modules/@babel/helper-module-imports/", - "packageDependencies": [ - ["@babel/helper-module-imports", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-module-transforms", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-c0a543a214.zip/node_modules/@babel/helper-module-transforms/", - "packageDependencies": [ - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-simple-access", "npm:7.13.12"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@babel/helper-validator-identifier", "npm:7.14.0"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.2", { - "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-fc8f7f5e78.zip/node_modules/@babel/helper-module-transforms/", - "packageDependencies": [ - ["@babel/helper-module-transforms", "npm:7.25.2"] - ], - "linkType": "SOFT", - }], - ["virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-module-transforms-virtual-b14538d1e7/0/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-fc8f7f5e78.zip/node_modules/@babel/helper-module-transforms/", - "packageDependencies": [ - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-module-imports", "npm:7.24.7"], - ["@babel/helper-simple-access", "npm:7.24.7"], - ["@babel/helper-validator-identifier", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-optimise-call-expression", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-5e4df5da4a.zip/node_modules/@babel/helper-optimise-call-expression/", - "packageDependencies": [ - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.24.7-59b5fb050d-58b5ca3927.zip/node_modules/@babel/helper-optimise-call-expression/", - "packageDependencies": [ - ["@babel/helper-optimise-call-expression", "npm:7.24.7"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-plugin-utils", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-229ac1917b.zip/node_modules/@babel/helper-plugin-utils/", - "packageDependencies": [ - ["@babel/helper-plugin-utils", "npm:7.13.0"] - ], - "linkType": "HARD", - }], - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.24.8-a288f101a7-c480fd570f.zip/node_modules/@babel/helper-plugin-utils/", - "packageDependencies": [ - ["@babel/helper-plugin-utils", "npm:7.24.8"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-remap-async-to-generator", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.13.0-fd0debe079-d4211801d4.zip/node_modules/@babel/helper-remap-async-to-generator/", - "packageDependencies": [ - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-wrap-function", "npm:7.13.0"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.0", { - "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6c2b53c6e2.zip/node_modules/@babel/helper-remap-async-to-generator/", - "packageDependencies": [ - ["@babel/helper-remap-async-to-generator", "npm:7.25.0"] - ], - "linkType": "SOFT", - }], - ["virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-remap-async-to-generator-virtual-eceedc565e/0/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6c2b53c6e2.zip/node_modules/@babel/helper-remap-async-to-generator/", - "packageDependencies": [ - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.24.7"], - ["@babel/helper-wrap-function", "npm:7.25.0"], - ["@babel/traverse", "npm:7.25.6"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-replace-supers", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.13.12-dcea88adef-38b79cb56a.zip/node_modules/@babel/helper-replace-supers/", - "packageDependencies": [ - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-member-expression-to-functions", "npm:7.13.12"], - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.0", { - "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-ad10e5a2c0.zip/node_modules/@babel/helper-replace-supers/", - "packageDependencies": [ - ["@babel/helper-replace-supers", "npm:7.25.0"] - ], - "linkType": "SOFT", - }], - ["virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-replace-supers-virtual-06397473e8/0/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-ad10e5a2c0.zip/node_modules/@babel/helper-replace-supers/", - "packageDependencies": [ - ["@babel/helper-replace-supers", "virtual:8e7dab3a8a9ab6083e5e7bbabc0aa059b2e1e3b174222e62f4f561104a67fc41125254b770f77dbf5d7e5b62092629b90189c6f631c29191358a539cb2b74661#npm:7.25.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-member-expression-to-functions", "npm:7.24.8"], - ["@babel/helper-optimise-call-expression", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-simple-access", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-eff532a157.zip/node_modules/@babel/helper-simple-access/", - "packageDependencies": [ - ["@babel/helper-simple-access", "npm:7.13.12"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.24.7-beddd00b0e-1a21ba6eb0.zip/node_modules/@babel/helper-simple-access/", - "packageDependencies": [ - ["@babel/helper-simple-access", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-skip-transparent-expression-wrappers", [ - ["npm:7.12.1", { - "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-2e690ed565.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/", - "packageDependencies": [ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.24.7-f573fe40ee-dfd952d802.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/", - "packageDependencies": [ - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-split-export-declaration", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-c8d529558c.zip/node_modules/@babel/helper-split-export-declaration/", - "packageDependencies": [ - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-string-parser", [ - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-helper-string-parser-npm-7.24.8-133b2e71e1-296eba6700.zip/node_modules/@babel/helper-string-parser/", - "packageDependencies": [ - ["@babel/helper-string-parser", "npm:7.24.8"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-validator-identifier", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-bd67b4a1a4.zip/node_modules/@babel/helper-validator-identifier/", - "packageDependencies": [ - ["@babel/helper-validator-identifier", "npm:7.14.0"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.24.7-748889c8d2-312adb9dde.zip/node_modules/@babel/helper-validator-identifier/", - "packageDependencies": [ - ["@babel/helper-validator-identifier", "npm:7.24.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-validator-option", [ - ["npm:7.12.17", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-9201d17a56.zip/node_modules/@babel/helper-validator-option/", - "packageDependencies": [ - ["@babel/helper-validator-option", "npm:7.12.17"] - ], - "linkType": "HARD", - }], - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.24.8-e093ef5016-6935ad0fe5.zip/node_modules/@babel/helper-validator-option/", - "packageDependencies": [ - ["@babel/helper-validator-option", "npm:7.24.8"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-wrap-function", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.13.0-f4714c52ae-89426304e5.zip/node_modules/@babel/helper-wrap-function/", - "packageDependencies": [ - ["@babel/helper-wrap-function", "npm:7.13.0"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.0", { - "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.25.0-c85147a474-69c7e1407e.zip/node_modules/@babel/helper-wrap-function/", - "packageDependencies": [ - ["@babel/helper-wrap-function", "npm:7.25.0"], - ["@babel/template", "npm:7.25.0"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helpers", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-0ac7e775b5.zip/node_modules/@babel/helpers/", - "packageDependencies": [ - ["@babel/helpers", "npm:7.14.0"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.25.6-6722375514-eb7a1d78f0.zip/node_modules/@babel/helpers/", - "packageDependencies": [ - ["@babel/helpers", "npm:7.25.6"], - ["@babel/template", "npm:7.25.0"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/highlight", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-0122fcd3cd.zip/node_modules/@babel/highlight/", - "packageDependencies": [ - ["@babel/highlight", "npm:7.14.0"], - ["@babel/helper-validator-identifier", "npm:7.14.0"], - ["chalk", "npm:2.4.2"], - ["js-tokens", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.24.7-d792bd8d9f-726098e63a.zip/node_modules/@babel/highlight/", - "packageDependencies": [ - ["@babel/highlight", "npm:7.24.7"], - ["@babel/helper-validator-identifier", "npm:7.24.7"], - ["chalk", "npm:2.4.2"], - ["js-tokens", "npm:4.0.0"], - ["picocolors", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/parser", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.14.2-f5dde901a5-18dffc18a2.zip/node_modules/@babel/parser/", - "packageDependencies": [ - ["@babel/parser", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.25.6-3cb198940b-811b2534c6.zip/node_modules/@babel/parser/", - "packageDependencies": [ - ["@babel/parser", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-ad0b508a5c.zip/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "npm:7.13.12"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-virtual-913d62df8e/0/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-ad0b508a5c.zip/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-async-generator-functions", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-e2779975e7.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.20.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-83f8e031bc.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "npm:7.20.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-6bb81cb2f5/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-83f8e031bc.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-environment-visitor", "npm:7.24.7"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"], - ["@babel/plugin-syntax-async-generators", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-69bca03606/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-e2779975e7.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"], - ["@babel/plugin-syntax-async-generators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-class-properties", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-c96bd17276.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["npm:7.18.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-3c4b84c1c1.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "npm:7.18.6"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-9f2aadd5eb/0/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-3c4b84c1c1.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-602201fe48/0/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-c96bd17276.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-47c4a95d8c/0/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-c96bd17276.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-class-static-block", [ - ["npm:7.13.11", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-0d1a09a222.zip/node_modules/@babel/plugin-proposal-class-static-block/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-static-block", "npm:7.13.11"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-static-block-virtual-5f7024b813/0/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-0d1a09a222.zip/node_modules/@babel/plugin-proposal-class-static-block/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-dynamic-import", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-5e1953fa7a.zip/node_modules/@babel/plugin-proposal-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-proposal-dynamic-import", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-93cd42a511/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-5e1953fa7a.zip/node_modules/@babel/plugin-proposal-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-proposal-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-export-default-from", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-5fdec97365.zip/node_modules/@babel/plugin-proposal-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-proposal-export-default-from", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-export-default-from-virtual-6ffc4f8199/0/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-5fdec97365.zip/node_modules/@babel/plugin-proposal-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-proposal-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-export-default-from-virtual-e6145e5eb9/0/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-5fdec97365.zip/node_modules/@babel/plugin-proposal-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-proposal-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-export-namespace-from", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e029b3fdd1.zip/node_modules/@babel/plugin-proposal-export-namespace-from/", - "packageDependencies": [ - ["@babel/plugin-proposal-export-namespace-from", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-export-namespace-from-virtual-a208dba970/0/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e029b3fdd1.zip/node_modules/@babel/plugin-proposal-export-namespace-from/", - "packageDependencies": [ - ["@babel/plugin-proposal-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-json-strings", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-4820829472.zip/node_modules/@babel/plugin-proposal-json-strings/", - "packageDependencies": [ - ["@babel/plugin-proposal-json-strings", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-59d49c0d61/0/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-4820829472.zip/node_modules/@babel/plugin-proposal-json-strings/", - "packageDependencies": [ - ["@babel/plugin-proposal-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-logical-assignment-operators", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-20df8c38b6.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-proposal-logical-assignment-operators", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.20.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-f5bfedd47b.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-proposal-logical-assignment-operators", "npm:7.20.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-logical-assignment-operators-virtual-08f95a5db5/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-f5bfedd47b.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-logical-assignment-operators-virtual-5a78ae7702/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-20df8c38b6.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-nullish-coalescing-operator", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-201998680c.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.18.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-fdc2de713c.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.18.6"] - ], - "linkType": "SOFT", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-084089a631/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-fdc2de713c.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-2e0db58b3d/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-201998680c.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-numeric-separator", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-1421b4f1a9.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.18.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-b45951deb5.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "npm:7.18.6"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-5dd52601a0/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-b45951deb5.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-numeric-separator", "virtual:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-a588a2ebf7/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-1421b4f1a9.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-object-rest-spread", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-787075655e.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.20.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-dd8d212b47.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.20.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-b54b3ed411/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-dd8d212b47.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/compat-data", "npm:7.25.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-compilation-targets", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3"], - ["@babel/plugin-transform-parameters", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-94d1f9860a/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-787075655e.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-optional-catch-binding", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-5da13a87f8.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-catch-binding", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-90515f4082/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-5da13a87f8.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-b8b3a4a044/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-5da13a87f8.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-optional-chaining", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-f3733825f4.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.21.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-581d967525.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "npm:7.21.0"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-f0ae4928f3/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-581d967525.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.24.7"], - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-1f00f4ac35/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-f3733825f4.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-076de6dbe4/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-f3733825f4.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-private-methods", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-cc074c97ae.zip/node_modules/@babel/plugin-proposal-private-methods/", - "packageDependencies": [ - ["@babel/plugin-proposal-private-methods", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-methods-virtual-3f118b0618/0/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-cc074c97ae.zip/node_modules/@babel/plugin-proposal-private-methods/", - "packageDependencies": [ - ["@babel/plugin-proposal-private-methods", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-private-property-in-object", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-2074d2a818.zip/node_modules/@babel/plugin-proposal-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-proposal-private-property-in-object", "npm:7.14.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-property-in-object-virtual-46407a6bf2/0/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-2074d2a818.zip/node_modules/@babel/plugin-proposal-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-proposal-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-unicode-property-regex", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-4877865ea8.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/", - "packageDependencies": [ - ["@babel/plugin-proposal-unicode-property-regex", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-720e8807e8/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-4877865ea8.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/", - "packageDependencies": [ - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@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:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-4125ec955e/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:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.8.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-cbb3e63953/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-24b533f423/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-bigint-virtual-4e2aa33028/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-class-properties", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-3023dec8ac.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-93aae934e7/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-3023dec8ac.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-db47a72ede/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-3023dec8ac.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-class-static-block", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-d5c08078f5.zip/node_modules/@babel/plugin-syntax-class-static-block/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-static-block", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-static-block-virtual-d67cc71104/0/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-d5c08078f5.zip/node_modules/@babel/plugin-syntax-class-static-block/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-90d3f1baed/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:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-e56962c4a8/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-export-default-from", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-54978bb10c.zip/node_modules/@babel/plugin-syntax-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-syntax-export-default-from", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-export-default-from-virtual-601b8bccf9/0/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-54978bb10c.zip/node_modules/@babel/plugin-syntax-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-export-default-from-virtual-fc581306a4/0/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-54978bb10c.zip/node_modules/@babel/plugin-syntax-export-default-from/", - "packageDependencies": [ - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-export-namespace-from", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-832e007319.zip/node_modules/@babel/plugin-syntax-export-namespace-from/", - "packageDependencies": [ - ["@babel/plugin-syntax-export-namespace-from", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-export-namespace-from-virtual-50c0ae38f2/0/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-832e007319.zip/node_modules/@babel/plugin-syntax-export-namespace-from/", - "packageDependencies": [ - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-flow", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-de8845354d.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-2a42c3819c.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-flow-virtual-faa5e94619/0/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-2a42c3819c.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-flow-virtual-165eea1d57/0/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-de8845354d.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-flow-virtual-affde8d8bb/0/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-2a42c3819c.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7"], - ["@babel/core", null], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-import-meta-virtual-f07913a9b0/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-a1c4de6447/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-0f4c670dd2/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-jsx", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-00a832806d.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-547ca2985c/0/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-00a832806d.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-326dd996fb/0/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-00a832806d.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@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:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-f4baf8d41d/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:08f95a5db528c4ca24252a180b80eb8affb865f1f6d8c2e6f83261379b7e21a6bc2e9e6d441567684f90c70dfe56c6933012585b9af8ccb571586c74f9d4ab30#npm:7.10.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-a2e5b619ef/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-1ea3385b80/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-53fb5e3b85/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:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-c02562a7c4/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-b6380975bd/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-28f706fa9e/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:5dd52601a0f4d10cd9249a816bf734649159ab3adacd2ee1e47ba8c6bc0a7c9fea7e5bea9877b5a49a15e9cdfd4ae0f6a32bd0f984aa54605023b239140cf854#npm:7.10.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-d9526469fa/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-cc8732d80c/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-60dbe747e0/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-9f678aacdf/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-15538e0a1a/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:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.8.3"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-9add8a6c5e/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-3e6a04f57f/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:90515f40825bfc62e1e59bdeac78feda5cf44e79f235b2ca817983a36f3737d90fc26c1350a55639b954b9b16ab49a03569f5af091ae4bc93b78730c1c8e3a41#npm:7.8.3"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-70180db4c1/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "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:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-fc6b5ea199/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:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-a49181bfc9/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:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-e2dd627c6f/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:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-private-property-in-object", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-5c79999ceb.zip/node_modules/@babel/plugin-syntax-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.0"] - ], - "linkType": "SOFT", - }], - ["npm:7.14.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-1f987725a8.zip/node_modules/@babel/plugin-syntax-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.5"] - ], - "linkType": "SOFT", - }], - ["virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-private-property-in-object-virtual-4e1d8d2d34/0/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-1f987725a8.zip/node_modules/@babel/plugin-syntax-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-syntax-private-property-in-object", "virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-private-property-in-object-virtual-37ff452d77/0/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-5c79999ceb.zip/node_modules/@babel/plugin-syntax-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-top-level-await", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-5bd0a65b01.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-731f90296d/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-5bd0a65b01.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-b7e2e69c7b/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-5bd0a65b01.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-typescript", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-ea2b4aad35.zip/node_modules/@babel/plugin-syntax-typescript/", - "packageDependencies": [ - ["@babel/plugin-syntax-typescript", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-27838094b5/0/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-ea2b4aad35.zip/node_modules/@babel/plugin-syntax-typescript/", - "packageDependencies": [ - ["@babel/plugin-syntax-typescript", "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-6c634ef088/0/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-ea2b4aad35.zip/node_modules/@babel/plugin-syntax-typescript/", - "packageDependencies": [ - ["@babel/plugin-syntax-typescript", "virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-arrow-functions", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-26edbba649.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-3294c1bccf/0/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-26edbba649.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-8c989a9b46/0/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-26edbba649.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-async-to-generator", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-32d484b30f.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-c122702eec.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-0e769ee9fa/0/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-c122702eec.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-module-imports", "npm:7.24.7"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/helper-remap-async-to-generator", "virtual:6bb81cb2f5d336d4e6e92c73c9fb3a9a3a6d891dd66cb02642988027b24846b8b0cffd8a3fa2989a0f5f2c665bac14cc1dec1e3b27a9445abe8da67ee097d0b2#npm:7.25.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-a1748bfb1a/0/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-32d484b30f.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-remap-async-to-generator", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-block-scoped-functions", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-c914fa2874.zip/node_modules/@babel/plugin-transform-block-scoped-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoped-functions", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-9c54f47a56/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-c914fa2874.zip/node_modules/@babel/plugin-transform-block-scoped-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoped-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-block-scoping", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-fb726d0ead.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-6e0e2dbcf1/0/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-fb726d0ead.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-74c6ce9c8d/0/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-fb726d0ead.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-classes", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-a184a2d988.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-bb49adf9af/0/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-a184a2d988.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@types/babel__core", null], - ["globals", "npm:11.12.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-9f7adab839/0/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-a184a2d988.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-optimise-call-expression", "npm:7.12.13"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@types/babel__core", null], - ["globals", "npm:11.12.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-computed-properties", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-83d9d2e776.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-ee3cb16b04/0/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-83d9d2e776.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-a4752c0c49/0/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-83d9d2e776.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-destructuring", [ - ["npm:7.13.17", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-16c08ecaf5.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "npm:7.13.17"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-fceb277466.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "npm:7.24.8"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-d3d2dff80e/0/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-fceb277466.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-469d962db1/0/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-16c08ecaf5.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-dotall-regex", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-cd33e1adfb.zip/node_modules/@babel/plugin-transform-dotall-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-dotall-regex", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-917a4b7096/0/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-cd33e1adfb.zip/node_modules/@babel/plugin-transform-dotall-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-duplicate-keys", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-7565f2dc69.zip/node_modules/@babel/plugin-transform-duplicate-keys/", - "packageDependencies": [ - ["@babel/plugin-transform-duplicate-keys", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-f5a590c8b5/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-7565f2dc69.zip/node_modules/@babel/plugin-transform-duplicate-keys/", - "packageDependencies": [ - ["@babel/plugin-transform-duplicate-keys", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-exponentiation-operator", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-cbe6a6bb2b.zip/node_modules/@babel/plugin-transform-exponentiation-operator/", - "packageDependencies": [ - ["@babel/plugin-transform-exponentiation-operator", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-fcdfc17de1/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-cbe6a6bb2b.zip/node_modules/@babel/plugin-transform-exponentiation-operator/", - "packageDependencies": [ - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.12.13"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-flow-strip-types", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-60903f5e36.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["npm:7.25.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-a5cb9bf9fc.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "npm:7.25.2"] - ], - "linkType": "SOFT", - }], - ["virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-flow-strip-types-virtual-7e736db4b5/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-a5cb9bf9fc.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-flow-strip-types-virtual-8acc9c694b/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-60903f5e36.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-for-of", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-86f725a860.zip/node_modules/@babel/plugin-transform-for-of/", - "packageDependencies": [ - ["@babel/plugin-transform-for-of", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-bdbcae5d14/0/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-86f725a860.zip/node_modules/@babel/plugin-transform-for-of/", - "packageDependencies": [ - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-function-name", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-26b8af8882.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-e41455e4a9/0/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-26b8af8882.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-74b26d5b70/0/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-26b8af8882.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-literals", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-8dbc807354.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-6c40b1ab38/0/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-8dbc807354.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-1b5962e9a5/0/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-8dbc807354.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-member-expression-literals", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-d8f2032068.zip/node_modules/@babel/plugin-transform-member-expression-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-member-expression-literals", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-11b6927d4f/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-d8f2032068.zip/node_modules/@babel/plugin-transform-member-expression-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-member-expression-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-modules-amd", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-b14f4df42d.zip/node_modules/@babel/plugin-transform-modules-amd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-amd", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-68f455f968/0/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-b14f4df42d.zip/node_modules/@babel/plugin-transform-modules-amd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-amd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@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.14.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-61d9f7a8a1.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "npm:7.14.0"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.8", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-98518582c8.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "npm:7.24.8"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-8d4d3b89b2/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-61d9f7a8a1.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-simple-access", "npm:7.13.12"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-964ff68c87/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-98518582c8.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-module-transforms", "virtual:341930f80996f4b1e479f0ee33257969b2165bf70992bcc76aa889af20d1c39a2bfc637461175a3ea65d6c75949d04c5fd87140f3b91c8912352de080c45e357#npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/helper-simple-access", "npm:7.24.7"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-39438ad6a1/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-61d9f7a8a1.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-simple-access", "npm:7.13.12"], - ["@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.13.8", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-4d654938e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-systemjs", "npm:7.13.8"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-e05e5a13a5/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-4d654938e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-systemjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-hoist-variables", "npm:7.13.16"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-identifier", "npm:7.14.0"], - ["@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.14.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-44c830a945.zip/node_modules/@babel/plugin-transform-modules-umd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-umd", "npm:7.14.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-e86085af3b/0/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-44c830a945.zip/node_modules/@babel/plugin-transform-modules-umd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-umd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-module-transforms", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-named-capturing-groups-regex", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-67680cf0b1.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-7dc8b93f3d.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-d1091d624b/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-7dc8b93f3d.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:d1091d624b9c582a8d5dcddbe5c4d38fff1607022a70d618a32f1ce7829901f08eba8b936cc52be85d2d089d70caba895d34f66105d2eca4755e10c3697920a7#npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-1d99d87d65/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-67680cf0b1.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-new-target", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-7f72f3d80a.zip/node_modules/@babel/plugin-transform-new-target/", - "packageDependencies": [ - ["@babel/plugin-transform-new-target", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-9718d76158/0/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-7f72f3d80a.zip/node_modules/@babel/plugin-transform-new-target/", - "packageDependencies": [ - ["@babel/plugin-transform-new-target", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-object-assign", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-ccc282053f.zip/node_modules/@babel/plugin-transform-object-assign/", - "packageDependencies": [ - ["@babel/plugin-transform-object-assign", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-assign-virtual-38cb983c36/0/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-ccc282053f.zip/node_modules/@babel/plugin-transform-object-assign/", - "packageDependencies": [ - ["@babel/plugin-transform-object-assign", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-object-super", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-abcba36ad6.zip/node_modules/@babel/plugin-transform-object-super/", - "packageDependencies": [ - ["@babel/plugin-transform-object-super", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-f1347d189e/0/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-abcba36ad6.zip/node_modules/@babel/plugin-transform-object-super/", - "packageDependencies": [ - ["@babel/plugin-transform-object-super", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-replace-supers", "npm:7.13.12"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-parameters", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-2a44c33be9.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-9232f99993.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-a811a8cd7b/0/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-2a44c33be9.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-adc122f806/0/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-2a44c33be9.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-02eab6edfa/0/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-9232f99993.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "virtual:b54b3ed4110c437cfbca5bed5bf1216a6c5b99aa642e90058cbaeb421c2cd050f831b02530f44c2fe9e95fca8f9dc14ce95f49028c65c345d1c790d9c9d0125f#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-private-methods", [ - ["npm:7.25.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-ae1b9e29a1.zip/node_modules/@babel/plugin-transform-private-methods/", - "packageDependencies": [ - ["@babel/plugin-transform-private-methods", "npm:7.25.4"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-private-methods-virtual-bed0b534a6/0/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-ae1b9e29a1.zip/node_modules/@babel/plugin-transform-private-methods/", - "packageDependencies": [ - ["@babel/plugin-transform-private-methods", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-private-property-in-object", [ - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-eaf367714f.zip/node_modules/@babel/plugin-transform-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-transform-private-property-in-object", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-private-property-in-object-virtual-5fe7c73498/0/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-eaf367714f.zip/node_modules/@babel/plugin-transform-private-property-in-object/", - "packageDependencies": [ - ["@babel/plugin-transform-private-property-in-object", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.24.7"], - ["@babel/helper-create-class-features-plugin", "virtual:9f2aadd5eb253df94a89c650256d47ef6740c58172a469ac695ed126bb73caee528f403af5686199a3d38c4bac0831aa16252f06317c89a65c317e9fa072207c#npm:7.25.4"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/plugin-syntax-private-property-in-object", "virtual:5fe7c7349804c998ec629c5c9246d142b4b29a70553fa9a377cdbbcc1eb37458455e2c0c7aec6fab2a707feaecc5777dbb1dd1bcc6c346cee230299173d4e0a5#npm:7.14.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-property-literals", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-2f09b697b2.zip/node_modules/@babel/plugin-transform-property-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-property-literals", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-073c567b63/0/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-2f09b697b2.zip/node_modules/@babel/plugin-transform-property-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-property-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-display-name", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-16aeca5dbc.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-d20669d5b2/0/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-16aeca5dbc.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-e971ddd69e/0/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-16aeca5dbc.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx", [ - ["npm:7.13.12", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-5d4ff7d997.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "npm:7.13.12"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-e77ed33945/0/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-5d4ff7d997.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-jsx", "virtual:e77ed33945d842ca4fc0e0bf6680bb56836a1b46e03a55a7b047963a8903f2f272d90b96b0693dec84f55f336c9aecace2a8d1e5b2ae5f02884e0a7d3d4da6f8#npm:7.12.13"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-df0c6e2696/0/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-5d4ff7d997.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-jsx", "virtual:df0c6e2696a9503373fdbf0ee6a453d0abc8d5dedce8cb45cde7cbe936760e545d6f92bf53d553d617547f8040efa986719d2bc6465239ecd5a722c39a45ac44#npm:7.12.13"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-development", [ - ["npm:7.12.17", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-30f9dfd8a6.zip/node_modules/@babel/plugin-transform-react-jsx-development/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-development", "npm:7.12.17"] - ], - "linkType": "SOFT", - }], - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-development-virtual-a9b53c81d8/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-30f9dfd8a6.zip/node_modules/@babel/plugin-transform-react-jsx-development/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-development", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-self", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-838a8285d7.zip/node_modules/@babel/plugin-transform-react-jsx-self/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-self", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-f03b930429/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-838a8285d7.zip/node_modules/@babel/plugin-transform-react-jsx-self/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-self", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-56841a762f/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-838a8285d7.zip/node_modules/@babel/plugin-transform-react-jsx-self/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-self", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-source", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-070d4149dc.zip/node_modules/@babel/plugin-transform-react-jsx-source/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-source", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-2fa4ec3da7/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-070d4149dc.zip/node_modules/@babel/plugin-transform-react-jsx-source/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-source", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-e93dad2e1a/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-070d4149dc.zip/node_modules/@babel/plugin-transform-react-jsx-source/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-source", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-pure-annotations", [ - ["npm:7.12.1", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-b1984954da.zip/node_modules/@babel/plugin-transform-react-pure-annotations/", - "packageDependencies": [ - ["@babel/plugin-transform-react-pure-annotations", "npm:7.12.1"] - ], - "linkType": "SOFT", - }], - ["virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-pure-annotations-virtual-522d9189fa/0/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-b1984954da.zip/node_modules/@babel/plugin-transform-react-pure-annotations/", - "packageDependencies": [ - ["@babel/plugin-transform-react-pure-annotations", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-annotate-as-pure", "npm:7.12.13"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-regenerator", [ - ["npm:7.13.15", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-ac1f6bda7e.zip/node_modules/@babel/plugin-transform-regenerator/", - "packageDependencies": [ - ["@babel/plugin-transform-regenerator", "npm:7.13.15"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-e1969b2e81/0/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-ac1f6bda7e.zip/node_modules/@babel/plugin-transform-regenerator/", - "packageDependencies": [ - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"], - ["@babel/core", "npm:7.14.2"], - ["@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.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-fc60150947.zip/node_modules/@babel/plugin-transform-reserved-words/", - "packageDependencies": [ - ["@babel/plugin-transform-reserved-words", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-c8295a7a4d/0/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-fc60150947.zip/node_modules/@babel/plugin-transform-reserved-words/", - "packageDependencies": [ - ["@babel/plugin-transform-reserved-words", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-runtime", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-2ae5f26f97.zip/node_modules/@babel/plugin-transform-runtime/", - "packageDependencies": [ - ["@babel/plugin-transform-runtime", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-runtime-virtual-a37697e7c4/0/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-2ae5f26f97.zip/node_modules/@babel/plugin-transform-runtime/", - "packageDependencies": [ - ["@babel/plugin-transform-runtime", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null], - ["babel-plugin-polyfill-corejs2", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["babel-plugin-polyfill-corejs3", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["babel-plugin-polyfill-regenerator", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-runtime-virtual-a3f6ec3c97/0/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-2ae5f26f97.zip/node_modules/@babel/plugin-transform-runtime/", - "packageDependencies": [ - ["@babel/plugin-transform-runtime", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-module-imports", "npm:7.13.12"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null], - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-shorthand-properties", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-fdfa295fa7.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-690109d9ce/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-fdfa295fa7.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-3a4864fba3/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-fdfa295fa7.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-spread", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f84c6c4d73.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-6b500c53a8/0/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f84c6c4d73.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-35e759454e/0/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f84c6c4d73.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-sticky-regex", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-21cf8495cf.zip/node_modules/@babel/plugin-transform-sticky-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-sticky-regex", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-ccca257853/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-21cf8495cf.zip/node_modules/@babel/plugin-transform-sticky-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-sticky-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-4ddfc6da57/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-21cf8495cf.zip/node_modules/@babel/plugin-transform-sticky-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-template-literals", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-9130312471.zip/node_modules/@babel/plugin-transform-template-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-template-literals", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-dae054fbb9/0/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-9130312471.zip/node_modules/@babel/plugin-transform-template-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-typeof-symbol", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-1eefed5758.zip/node_modules/@babel/plugin-transform-typeof-symbol/", - "packageDependencies": [ - ["@babel/plugin-transform-typeof-symbol", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-d158206ba1/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-1eefed5758.zip/node_modules/@babel/plugin-transform-typeof-symbol/", - "packageDependencies": [ - ["@babel/plugin-transform-typeof-symbol", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-typescript", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-cbf557689f.zip/node_modules/@babel/plugin-transform-typescript/", - "packageDependencies": [ - ["@babel/plugin-transform-typescript", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-637cb01ccf/0/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-cbf557689f.zip/node_modules/@babel/plugin-transform-typescript/", - "packageDependencies": [ - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-class-features-plugin", "virtual:47c4a95d8c04789998ee9a8631296deffcc55f2b5082aad80c60d5942aa525dcd9a9b7fc9452b6c3c1680be79cb702f1dc7a62a54f281bf09897ecfbfbf5cfe0#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-typescript", "virtual:637cb01ccfb6b49a25bb343c590b8d38080fc2ec7e9244e4e1661d7b18c951612e1d6965b34ec5c0b54d998cb7f6ae0c9b9a06f72ac22d10dc626717a150615d#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-c5e9bb4d8b/0/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-cbf557689f.zip/node_modules/@babel/plugin-transform-typescript/", - "packageDependencies": [ - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-class-features-plugin", "virtual:602201fe4807e77dec21eb4b724277ae805cd9cfb2897509abf7fbcb158a9f97b0f7ba994e3999573db4fe5494078b8d74cd9028bfabcf9dcffb485b3350dfba#npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-syntax-typescript", "virtual:c5e9bb4d8b6eb17dbed0b6d1d7826cb687627f37e0c37b78ae0c34ba54d4bdec4e3e03bee310986e3b16ed0d1dcdb842962bf5629a98b5687258b009a934da7d#npm:7.12.13"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-unicode-escapes", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-d5f4aa6f54.zip/node_modules/@babel/plugin-transform-unicode-escapes/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-escapes", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-escapes-virtual-12c7a9cc07/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-d5f4aa6f54.zip/node_modules/@babel/plugin-transform-unicode-escapes/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-escapes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-unicode-regex", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b6b173ce4f.zip/node_modules/@babel/plugin-transform-unicode-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-regex", "npm:7.12.13"] - ], - "linkType": "SOFT", - }], - ["virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-570729904c/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b6b173ce4f.zip/node_modules/@babel/plugin-transform-unicode-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:570729904cc32cf152242d0a7e78e45eaea065b9e72ce4f34e8323b6b447f11d5eaeb09a5f7183298ecdc09f44142b2ce20935c6e54f11815d9a6990b5e63375#npm:7.12.17"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-af07866eea/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b6b173ce4f.zip/node_modules/@babel/plugin-transform-unicode-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-create-regexp-features-plugin", "virtual:720e8807e849231229d9fce06bcd5716f2e0813fe61ee65d9bfe3c45f3c28208e5faea01109f044239d9b91e8b5da53fd6f3a0d6bb9370e66f3808df93d2e223#npm:7.12.17"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-env", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-a604b3ce5b.zip/node_modules/@babel/preset-env/", - "packageDependencies": [ - ["@babel/preset-env", "npm:7.14.2"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-a3a40d63ff/0/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-a604b3ce5b.zip/node_modules/@babel/preset-env/", - "packageDependencies": [ - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-compilation-targets", "virtual:1f05a9f0fb7e258d88e93414302e32663f931c2ce48463eedf5e74e0f8dbca656c3c91423a421742e4538acc77a4927ef1f6a3f34c2902a006141b40ff776ea3#npm:7.13.16"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.12"], - ["@babel/plugin-proposal-async-generator-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-proposal-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.11"], - ["@babel/plugin-proposal-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-private-methods", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-proposal-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-syntax-async-generators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.4"], - ["@babel/plugin-syntax-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-syntax-class-static-block", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-export-namespace-from", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-json-strings", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-numeric-separator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-private-property-in-object", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/plugin-syntax-top-level-await", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-block-scoped-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"], - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-duplicate-keys", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-member-expression-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-modules-amd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/plugin-transform-modules-systemjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.8"], - ["@babel/plugin-transform-modules-umd", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-new-target", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-object-super", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-property-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"], - ["@babel/plugin-transform-reserved-words", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-typeof-symbol", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-unicode-escapes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/preset-modules", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__core", null], - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["core-js-compat", "npm:3.12.1"], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-flow", [ - ["npm:7.13.13", { - "packageLocation": "./.yarn/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-b4f3e74e52.zip/node_modules/@babel/preset-flow/", - "packageDependencies": [ - ["@babel/preset-flow", "npm:7.13.13"] - ], - "linkType": "SOFT", - }], - ["npm:7.24.7", { - "packageLocation": "./.yarn/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-6fd478b543.zip/node_modules/@babel/preset-flow/", - "packageDependencies": [ - ["@babel/preset-flow", "npm:7.24.7"] - ], - "linkType": "SOFT", - }], - ["virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-flow-virtual-9b3bb9c4c8/0/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-b4f3e74e52.zip/node_modules/@babel/preset-flow/", - "packageDependencies": [ - ["@babel/preset-flow", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-flow-virtual-3dbc69340a/0/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-6fd478b543.zip/node_modules/@babel/preset-flow/", - "packageDependencies": [ - ["@babel/preset-flow", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.24.8"], - ["@babel/helper-validator-option", "npm:7.24.8"], - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-modules", [ - ["npm:0.1.4", { - "packageLocation": "./.yarn/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-8a463709fd.zip/node_modules/@babel/preset-modules/", - "packageDependencies": [ - ["@babel/preset-modules", "npm:0.1.4"] - ], - "linkType": "SOFT", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-0d3c4d8a02/0/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-8a463709fd.zip/node_modules/@babel/preset-modules/", - "packageDependencies": [ - ["@babel/preset-modules", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.1.4"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/plugin-proposal-unicode-property-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-dotall-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__core", null], - ["esutils", "npm:2.0.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-react", [ - ["npm:7.13.13", { - "packageLocation": "./.yarn/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-7c712240df.zip/node_modules/@babel/preset-react/", - "packageDependencies": [ - ["@babel/preset-react", "npm:7.13.13"] - ], - "linkType": "SOFT", - }], - ["virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-react-virtual-a4937c06c8/0/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-7c712240df.zip/node_modules/@babel/preset-react/", - "packageDependencies": [ - ["@babel/preset-react", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/plugin-transform-react-jsx-development", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.17"], - ["@babel/plugin-transform-react-pure-annotations", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.12.1"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-typescript", [ - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-preset-typescript-npm-7.13.0-3015981691-d98b9ca5df.zip/node_modules/@babel/preset-typescript/", - "packageDependencies": [ - ["@babel/preset-typescript", "npm:7.13.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-typescript-virtual-3bdad18642/0/cache/@babel-preset-typescript-npm-7.13.0-3015981691-d98b9ca5df.zip/node_modules/@babel/preset-typescript/", - "packageDependencies": [ - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-typescript-virtual-6858c7a0c0/0/cache/@babel-preset-typescript-npm-7.13.0-3015981691-d98b9ca5df.zip/node_modules/@babel/preset-typescript/", - "packageDependencies": [ - ["@babel/preset-typescript", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-plugin-utils", "npm:7.13.0"], - ["@babel/helper-validator-option", "npm:7.12.17"], - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/register", [ - ["npm:7.24.6", { - "packageLocation": "./.yarn/cache/@babel-register-npm-7.24.6-624417b242-08e38329b4.zip/node_modules/@babel/register/", - "packageDependencies": [ - ["@babel/register", "npm:7.24.6"] - ], - "linkType": "SOFT", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6", { - "packageLocation": "./.yarn/$$virtual/@babel-register-virtual-fa08a0e15d/0/cache/@babel-register-npm-7.24.6-624417b242-08e38329b4.zip/node_modules/@babel/register/", - "packageDependencies": [ - ["@babel/register", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6"], - ["@babel/core", "npm:7.25.2"], - ["@types/babel__core", null], - ["clone-deep", "npm:4.0.1"], - ["find-cache-dir", "npm:2.1.0"], - ["make-dir", "npm:2.1.0"], - ["pirates", "npm:4.0.6"], - ["source-map-support", "npm:0.5.21"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/regjsgen", [ - ["npm:0.8.0", { - "packageLocation": "./.yarn/cache/@babel-regjsgen-npm-0.8.0-b0fbdbf644-fdfffcc8e0.zip/node_modules/@babel/regjsgen/", - "packageDependencies": [ - ["@babel/regjsgen", "npm:0.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/runtime", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.14.0-fba2a32266-ab6653f2f8.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.14.0"], - ["regenerator-runtime", "npm:0.13.8"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-6f8270146e.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.25.6"], - ["regenerator-runtime", "npm:0.14.1"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/template", [ - ["npm:7.12.13", { - "packageLocation": "./.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-665977068a.zip/node_modules/@babel/template/", - "packageDependencies": [ - ["@babel/template", "npm:7.12.13"], - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }], - ["npm:7.25.0", { - "packageLocation": "./.yarn/cache/@babel-template-npm-7.25.0-2c6ddcb43a-f8bbac1e5b.zip/node_modules/@babel/template/", - "packageDependencies": [ - ["@babel/template", "npm:7.25.0"], - ["@babel/code-frame", "npm:7.24.7"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/traverse", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-76f57f7a71.zip/node_modules/@babel/traverse/", - "packageDependencies": [ - ["@babel/traverse", "npm:7.14.2"], - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/generator", "npm:7.14.2"], - ["@babel/helper-function-name", "npm:7.14.2"], - ["@babel/helper-split-export-declaration", "npm:7.12.13"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["globals", "npm:11.12.0"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.25.6-1b9e2a314c-ecaa8c7549.zip/node_modules/@babel/traverse/", - "packageDependencies": [ - ["@babel/traverse", "npm:7.25.6"], - ["@babel/code-frame", "npm:7.24.7"], - ["@babel/generator", "npm:7.25.6"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/template", "npm:7.25.0"], - ["@babel/types", "npm:7.25.6"], - ["debug", "virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7"], - ["globals", "npm:11.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/types", [ - ["npm:7.14.2", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.14.2-0a9f9700cf-34893ac415.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.14.2"], - ["@babel/helper-validator-identifier", "npm:7.14.0"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.25.6", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.25.6-98df73a2ca-d177423791.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.25.6"], - ["@babel/helper-string-parser", "npm:7.24.8"], - ["@babel/helper-validator-identifier", "npm:7.24.7"], - ["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.6"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/cli", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-cli-npm-12.1.4-17caafb9e4-3c00e43e75.zip/node_modules/@commitlint/cli/", - "packageDependencies": [ - ["@commitlint/cli", "npm:12.1.4"], - ["@commitlint/format", "npm:12.1.4"], - ["@commitlint/lint", "npm:12.1.4"], - ["@commitlint/load", "npm:12.1.4"], - ["@commitlint/read", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["lodash", "npm:4.17.21"], - ["resolve-from", "npm:5.0.0"], - ["resolve-global", "npm:1.0.0"], - ["yargs", "npm:16.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/config-conventional", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-config-conventional-npm-12.1.4-a9aa5d652d-3bcc963d88.zip/node_modules/@commitlint/config-conventional/", - "packageDependencies": [ - ["@commitlint/config-conventional", "npm:12.1.4"], - ["conventional-changelog-conventionalcommits", "npm:4.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/ensure", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-ensure-npm-12.1.4-2339dce3fc-8e37ce6f17.zip/node_modules/@commitlint/ensure/", - "packageDependencies": [ - ["@commitlint/ensure", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["lodash", "npm:4.17.21"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/execute-rule", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-execute-rule-npm-12.1.4-45fb2eb19c-eb3303aa05.zip/node_modules/@commitlint/execute-rule/", - "packageDependencies": [ - ["@commitlint/execute-rule", "npm:12.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/format", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-format-npm-12.1.4-cedc1fc9ba-5c3e060c16.zip/node_modules/@commitlint/format/", - "packageDependencies": [ - ["@commitlint/format", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["chalk", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/is-ignored", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-is-ignored-npm-12.1.4-d604537e6e-3014cc30b5.zip/node_modules/@commitlint/is-ignored/", - "packageDependencies": [ - ["@commitlint/is-ignored", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["semver", "npm:7.3.5"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/lint", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-lint-npm-12.1.4-d04b50b0b2-89626f21aa.zip/node_modules/@commitlint/lint/", - "packageDependencies": [ - ["@commitlint/lint", "npm:12.1.4"], - ["@commitlint/is-ignored", "npm:12.1.4"], - ["@commitlint/parse", "npm:12.1.4"], - ["@commitlint/rules", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/load", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-load-npm-12.1.4-020f22b221-a26befcdcf.zip/node_modules/@commitlint/load/", - "packageDependencies": [ - ["@commitlint/load", "npm:12.1.4"], - ["@commitlint/execute-rule", "npm:12.1.4"], - ["@commitlint/resolve-extends", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["chalk", "npm:4.1.1"], - ["cosmiconfig", "npm:7.0.0"], - ["lodash", "npm:4.17.21"], - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/message", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-message-npm-12.1.4-fb51852889-14ecee992e.zip/node_modules/@commitlint/message/", - "packageDependencies": [ - ["@commitlint/message", "npm:12.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/parse", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-parse-npm-12.1.4-7aa2fe9d19-69651cdaf8.zip/node_modules/@commitlint/parse/", - "packageDependencies": [ - ["@commitlint/parse", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["conventional-changelog-angular", "npm:5.0.12"], - ["conventional-commits-parser", "npm:3.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/read", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-read-npm-12.1.4-5803b0d603-6c33374476.zip/node_modules/@commitlint/read/", - "packageDependencies": [ - ["@commitlint/read", "npm:12.1.4"], - ["@commitlint/top-level", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"], - ["fs-extra", "npm:9.1.0"], - ["git-raw-commits", "npm:2.0.10"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/resolve-extends", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-resolve-extends-npm-12.1.4-14da710c78-aa20e302c4.zip/node_modules/@commitlint/resolve-extends/", - "packageDependencies": [ - ["@commitlint/resolve-extends", "npm:12.1.4"], - ["import-fresh", "npm:3.3.0"], - ["lodash", "npm:4.17.21"], - ["resolve-from", "npm:5.0.0"], - ["resolve-global", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/rules", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-rules-npm-12.1.4-5d82296cac-711720e0b3.zip/node_modules/@commitlint/rules/", - "packageDependencies": [ - ["@commitlint/rules", "npm:12.1.4"], - ["@commitlint/ensure", "npm:12.1.4"], - ["@commitlint/message", "npm:12.1.4"], - ["@commitlint/to-lines", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/to-lines", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-to-lines-npm-12.1.4-5258714d7f-e2a46e3737.zip/node_modules/@commitlint/to-lines/", - "packageDependencies": [ - ["@commitlint/to-lines", "npm:12.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/top-level", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-top-level-npm-12.1.4-d0d833ca07-25aae63e31.zip/node_modules/@commitlint/top-level/", - "packageDependencies": [ - ["@commitlint/top-level", "npm:12.1.4"], - ["find-up", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@commitlint/types", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/@commitlint-types-npm-12.1.4-277c712683-64e01b1cbd.zip/node_modules/@commitlint/types/", - "packageDependencies": [ - ["@commitlint/types", "npm:12.1.4"], - ["chalk", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["@eslint/eslintrc", [ - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-0.4.1-48933b2833-418f5810c8.zip/node_modules/@eslint/eslintrc/", - "packageDependencies": [ - ["@eslint/eslintrc", "npm:0.4.1"], - ["ajv", "npm:6.12.6"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["espree", "npm:7.3.1"], - ["globals", "npm:12.4.0"], - ["ignore", "npm:4.0.6"], - ["import-fresh", "npm:3.3.0"], - ["js-yaml", "npm:3.14.1"], - ["minimatch", "npm:3.0.4"], - ["strip-json-comments", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["@hapi/hoek", [ - ["npm:9.3.0", { - "packageLocation": "./.yarn/cache/@hapi-hoek-npm-9.3.0-447eb8d274-e189ee7ebb.zip/node_modules/@hapi/hoek/", - "packageDependencies": [ - ["@hapi/hoek", "npm:9.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@hapi/topo", [ - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/@hapi-topo-npm-5.1.0-5e0b776809-e37ce579b9.zip/node_modules/@hapi/topo/", - "packageDependencies": [ - ["@hapi/topo", "npm:5.1.0"], - ["@hapi/hoek", "npm:9.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@iarna/toml", [ - ["npm:2.2.5", { - "packageLocation": "./.yarn/cache/@iarna-toml-npm-2.2.5-6da1399e8e-929a8516a2.zip/node_modules/@iarna/toml/", - "packageDependencies": [ - ["@iarna/toml", "npm:2.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["@isaacs/ttlcache", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/@isaacs-ttlcache-npm-1.4.1-1de33cdaab-65840c7002.zip/node_modules/@isaacs/ttlcache/", - "packageDependencies": [ - ["@isaacs/ttlcache", "npm:1.4.1"] - ], - "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.1"], - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@istanbuljs/schema", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-d84c326335.zip/node_modules/@istanbuljs/schema/", - "packageDependencies": [ - ["@istanbuljs/schema", "npm:0.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/console", [ - ["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:15.3.0"], - ["chalk", "npm:4.1.1"], - ["jest-message-util", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/core", [ - ["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:15.3.0"], - ["ansi-escapes", "npm:4.3.2"], - ["chalk", "npm:4.1.1"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.6"], - ["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.4"], - ["p-each-series", "npm:2.2.0"], - ["rimraf", "npm:3.0.2"], - ["slash", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/create-cache-key-function", [ - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/@jest-create-cache-key-function-npm-29.7.0-786396764f-b7a6038188.zip/node_modules/@jest/create-cache-key-function/", - "packageDependencies": [ - ["@jest/create-cache-key-function", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/environment", [ - ["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:15.3.0"], - ["jest-mock", "npm:26.6.2"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-a1c07a21c2.zip/node_modules/@jest/environment/", - "packageDependencies": [ - ["@jest/environment", "npm:29.7.0"], - ["@jest/fake-timers", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["@types/node", "npm:15.3.0"], - ["jest-mock", "npm:29.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/fake-timers", [ - ["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:15.3.0"], - ["jest-message-util", "npm:26.6.2"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-0bd931b093.zip/node_modules/@jest/fake-timers/", - "packageDependencies": [ - ["@jest/fake-timers", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["@sinonjs/fake-timers", "npm:10.3.0"], - ["@types/node", "npm:15.3.0"], - ["jest-message-util", "npm:29.7.0"], - ["jest-mock", "npm:29.7.0"], - ["jest-util", "npm:29.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/globals", [ - ["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.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.1"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.7"], - ["graceful-fs", "npm:4.2.6"], - ["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.2"], - ["terminal-link", "npm:2.1.1"], - ["v8-to-istanbul", "npm:7.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/schemas", [ - ["npm:29.6.3", { - "packageLocation": "./.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-64c7b2757c.zip/node_modules/@jest/schemas/", - "packageDependencies": [ - ["@jest/schemas", "npm:29.6.3"], - ["@sinclair/typebox", "npm:0.27.8"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/source-map", [ - ["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.6"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/test-result", [ - ["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.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.6"], - ["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.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.14.2"], - ["@jest/types", "npm:26.6.2"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["chalk", "npm:4.1.1"], - ["convert-source-map", "npm:1.7.0"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["graceful-fs", "npm:4.2.6"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-util", "npm:26.6.2"], - ["micromatch", "npm:4.0.4"], - ["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: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:15.3.0"], - ["@types/yargs", "npm:15.0.13"], - ["chalk", "npm:4.1.1"] - ], - "linkType": "HARD", - }], - ["npm:29.6.3", { - "packageLocation": "./.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-81c23cf054.zip/node_modules/@jest/types/", - "packageDependencies": [ - ["@jest/types", "npm:29.6.3"], - ["@jest/schemas", "npm:29.6.3"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-reports", "npm:3.0.0"], - ["@types/node", "npm:15.3.0"], - ["@types/yargs", "npm:17.0.33"], - ["chalk", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/gen-mapping", [ - ["npm:0.3.5", { - "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-c5833e1f1e.zip/node_modules/@jridgewell/gen-mapping/", - "packageDependencies": [ - ["@jridgewell/gen-mapping", "npm:0.3.5"], - ["@jridgewell/set-array", "npm:1.2.1"], - ["@jridgewell/sourcemap-codec", "npm:1.5.0"], - ["@jridgewell/trace-mapping", "npm:0.3.25"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/resolve-uri", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-cb6726e7a3.zip/node_modules/@jridgewell/resolve-uri/", - "packageDependencies": [ - ["@jridgewell/resolve-uri", "npm:3.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/set-array", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-e079fb1506.zip/node_modules/@jridgewell/set-array/", - "packageDependencies": [ - ["@jridgewell/set-array", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/source-map", [ - ["npm:0.3.6", { - "packageLocation": "./.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-4815033388.zip/node_modules/@jridgewell/source-map/", - "packageDependencies": [ - ["@jridgewell/source-map", "npm:0.3.6"], - ["@jridgewell/gen-mapping", "npm:0.3.5"], - ["@jridgewell/trace-mapping", "npm:0.3.25"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/sourcemap-codec", [ - ["npm:1.5.0", { - "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-6460636a34.zip/node_modules/@jridgewell/sourcemap-codec/", - "packageDependencies": [ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jridgewell/trace-mapping", [ - ["npm:0.3.25", { - "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-674f1975b2.zip/node_modules/@jridgewell/trace-mapping/", - "packageDependencies": [ - ["@jridgewell/trace-mapping", "npm:0.3.25"], - ["@jridgewell/resolve-uri", "npm:3.1.2"], - ["@jridgewell/sourcemap-codec", "npm:1.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["@mdn/browser-compat-data", [ - ["npm:2.0.7", { - "packageLocation": "./.yarn/cache/@mdn-browser-compat-data-npm-2.0.7-2e97973c18-ddaa97307a.zip/node_modules/@mdn/browser-compat-data/", - "packageDependencies": [ - ["@mdn/browser-compat-data", "npm:2.0.7"], - ["extend", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["@native-html/css-processor", [ - ["virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor", { - "packageLocation": "./.yarn/$$virtual/@native-html-css-processor-virtual-98ef71086e/1/packages/css-processor/", - "packageDependencies": [ - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"], - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@react-native-community/bob", "npm:0.17.1"], - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."], - ["@types/jest", "npm:26.0.23"], - ["@types/react", "npm:17.0.5"], - ["@types/react-native", "npm:0.64.5"], - ["@types/types__react", null], - ["@types/types__react-native", null], - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["css-to-react-native", "npm:3.0.0"], - ["csstype", "npm:3.0.9"], - ["eslint", "npm:7.26.0"], - ["jest", "npm:26.6.3"], - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"], - ["param-case", "npm:3.0.4"], - ["prettier", "npm:2.3.0"], - ["react", "npm:17.0.2"], - ["release-config", "workspace:packages/release-config"], - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "@types/react-native", - "@types/types__react-native", - "@types/types__react" - ], - "linkType": "SOFT", - }], - ["workspace:packages/css-processor", { - "packageLocation": "./packages/css-processor/", - "packageDependencies": [ - ["@native-html/css-processor", "workspace:packages/css-processor"], - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@react-native-community/bob", "npm:0.17.1"], - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."], - ["@types/jest", "npm:26.0.23"], - ["@types/react", "npm:17.0.5"], - ["@types/react-native", "npm:0.64.5"], - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["css-to-react-native", "npm:3.0.0"], - ["csstype", "npm:3.0.9"], - ["eslint", "npm:7.26.0"], - ["jest", "npm:26.6.3"], - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"], - ["param-case", "npm:3.0.4"], - ["prettier", "npm:2.3.0"], - ["react", "npm:17.0.2"], - ["release-config", "workspace:packages/release-config"], - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["@native-html/transient-render-engine", [ - ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine", { - "packageLocation": "./.yarn/$$virtual/@native-html-transient-render-engine-virtual-bb97fc4855/1/packages/transient-render-engine/", - "packageDependencies": [ - ["@native-html/transient-render-engine", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine"], - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"], - ["@react-native-community/bob", "npm:0.17.1"], - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."], - ["@tsconfig/react-native", "npm:1.0.3"], - ["@types/jest", "npm:26.0.23"], - ["@types/ramda", "npm:0.27.44"], - ["@types/react-native", "npm:0.64.5"], - ["@types/types__react-native", null], - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["csstype", "npm:3.0.9"], - ["dom-serializer", "npm:1.3.2"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.2"], - ["domutils", "npm:2.8.0"], - ["eslint", "npm:7.26.0"], - ["htmlparser2", "npm:7.1.2"], - ["jest", "npm:26.6.3"], - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"], - ["prettier", "npm:2.3.0"], - ["ramda", "npm:0.27.2"], - ["react", "npm:17.0.2"], - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"], - ["release-config", "workspace:packages/release-config"], - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "@types/types__react-native", - "react-native" - ], - "linkType": "SOFT", - }], - ["workspace:packages/transient-render-engine", { - "packageLocation": "./packages/transient-render-engine/", - "packageDependencies": [ - ["@native-html/transient-render-engine", "workspace:packages/transient-render-engine"], - ["@babel/cli", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:7.13.16"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@native-html/css-processor", "virtual:bb97fc4855d9b875b1c43feb0fb211ca78f1cd099c70cae9f96f5c4f741c8cff1396f0ba4a6a18f4a2b633207c3ec003a590694b8511c441a8325d47dc23365d#workspace:packages/css-processor"], - ["@react-native-community/bob", "npm:0.17.1"], - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."], - ["@tsconfig/react-native", "npm:1.0.3"], - ["@types/jest", "npm:26.0.23"], - ["@types/ramda", "npm:0.27.44"], - ["@types/react-native", "npm:0.64.5"], - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["csstype", "npm:3.0.9"], - ["dom-serializer", "npm:1.3.2"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.2"], - ["domutils", "npm:2.8.0"], - ["eslint", "npm:7.26.0"], - ["htmlparser2", "npm:7.1.2"], - ["jest", "npm:26.6.3"], - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"], - ["prettier", "npm:2.3.0"], - ["ramda", "npm:0.27.2"], - ["react", "npm:17.0.2"], - ["release-config", "workspace:packages/release-config"], - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["@nicolo-ribaudo/chokidar-2", [ - ["npm:2.1.8-no-fsevents", { - "packageLocation": "./.yarn/cache/@nicolo-ribaudo-chokidar-2-npm-2.1.8-no-fsevents-a21a333eb4-0efeea3b7d.zip/node_modules/@nicolo-ribaudo/chokidar-2/", - "packageDependencies": [ - ["@nicolo-ribaudo/chokidar-2", "npm:2.1.8-no-fsevents"], - ["anymatch", "npm:2.0.0"], - ["async-each", "npm:1.0.3"], - ["braces", "npm:2.3.2"], - ["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", - }] - ]], - ["@nodelib/fs.scandir", [ - ["npm:2.1.4", { - "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.4-6f6ddb2372-30b3102ee3.zip/node_modules/@nodelib/fs.scandir/", - "packageDependencies": [ - ["@nodelib/fs.scandir", "npm:2.1.4"], - ["@nodelib/fs.stat", "npm:2.0.4"], - ["run-parallel", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@nodelib/fs.stat", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.4-0b2acf9d70-6454a79e94.zip/node_modules/@nodelib/fs.stat/", - "packageDependencies": [ - ["@nodelib/fs.stat", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["@nodelib/fs.walk", [ - ["npm:1.2.6", { - "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.6-b686194e9d-d0503ffd0b.zip/node_modules/@nodelib/fs.walk/", - "packageDependencies": [ - ["@nodelib/fs.walk", "npm:1.2.6"], - ["@nodelib/fs.scandir", "npm:2.1.4"], - ["fastq", "npm:1.11.0"] - ], - "linkType": "HARD", - }] - ]], - ["@npmcli/move-file", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/@npmcli-move-file-npm-1.1.2-4f6c7b3354-d178d86a0a.zip/node_modules/@npmcli/move-file/", - "packageDependencies": [ - ["@npmcli/move-file", "npm:1.1.2"], - ["mkdirp", "npm:1.0.4"], - ["rimraf", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/auth-token", [ - ["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.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/core", [ - ["npm:3.4.0", { - "packageLocation": "./.yarn/cache/@octokit-core-npm-3.4.0-0e242eba8e-bb8ba9be2c.zip/node_modules/@octokit/core/", - "packageDependencies": [ - ["@octokit/core", "npm:3.4.0"], - ["@octokit/auth-token", "npm:2.4.5"], - ["@octokit/graphql", "npm:4.6.1"], - ["@octokit/request", "npm:5.4.15"], - ["@octokit/request-error", "npm:2.0.5"], - ["@octokit/types", "npm:6.14.2"], - ["before-after-hook", "npm:2.2.1"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/endpoint", [ - ["npm:6.0.11", { - "packageLocation": "./.yarn/cache/@octokit-endpoint-npm-6.0.11-b00375a302-b2b0f6bb1d.zip/node_modules/@octokit/endpoint/", - "packageDependencies": [ - ["@octokit/endpoint", "npm:6.0.11"], - ["@octokit/types", "npm:6.14.2"], - ["is-plain-object", "npm:5.0.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/graphql", [ - ["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.15"], - ["@octokit/types", "npm:6.14.2"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/openapi-types", [ - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-7.0.0-13d5739029-703727ff2e.zip/node_modules/@octokit/openapi-types/", - "packageDependencies": [ - ["@octokit/openapi-types", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-paginate-rest", [ - ["npm:2.13.3", { - "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-b2b7772f05.zip/node_modules/@octokit/plugin-paginate-rest/", - "packageDependencies": [ - ["@octokit/plugin-paginate-rest", "npm:2.13.3"] - ], - "linkType": "SOFT", - }], - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3", { - "packageLocation": "./.yarn/$$virtual/@octokit-plugin-paginate-rest-virtual-33d7a96f24/0/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-b2b7772f05.zip/node_modules/@octokit/plugin-paginate-rest/", - "packageDependencies": [ - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3"], - ["@octokit/core", "npm:3.4.0"], - ["@octokit/types", "npm:6.14.2"], - ["@types/octokit__core", null] - ], - "packagePeers": [ - "@octokit/core", - "@types/octokit__core" - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-request-log", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-f858361b36.zip/node_modules/@octokit/plugin-request-log/", - "packageDependencies": [ - ["@octokit/plugin-request-log", "npm:1.0.3"] - ], - "linkType": "SOFT", - }], - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3", { - "packageLocation": "./.yarn/$$virtual/@octokit-plugin-request-log-virtual-e6e47837ce/0/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-f858361b36.zip/node_modules/@octokit/plugin-request-log/", - "packageDependencies": [ - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3"], - ["@octokit/core", "npm:3.4.0"], - ["@types/octokit__core", null] - ], - "packagePeers": [ - "@octokit/core", - "@types/octokit__core" - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-rest-endpoint-methods", [ - ["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.15", { - "packageLocation": "./.yarn/cache/@octokit-request-npm-5.4.15-2cd9523802-15810826ee.zip/node_modules/@octokit/request/", - "packageDependencies": [ - ["@octokit/request", "npm:5.4.15"], - ["@octokit/endpoint", "npm:6.0.11"], - ["@octokit/request-error", "npm:2.0.5"], - ["@octokit/types", "npm:6.14.2"], - ["is-plain-object", "npm:5.0.0"], - ["node-fetch", "npm:2.6.1"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/request-error", [ - ["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.14.2"], - ["deprecation", "npm:2.3.1"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/rest", [ - ["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.4.0"], - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.13.3"], - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.3"], - ["@octokit/plugin-rest-endpoint-methods", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/types", [ - ["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:15.3.0"] - ], - "linkType": "HARD", - }], - ["npm:6.14.2", { - "packageLocation": "./.yarn/cache/@octokit-types-npm-6.14.2-6c5118e7f4-b717cb855c.zip/node_modules/@octokit/types/", - "packageDependencies": [ - ["@octokit/types", "npm:6.14.2"], - ["@octokit/openapi-types", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/bob", [ - ["npm:0.17.1", { - "packageLocation": "./.yarn/unplugged/@react-native-community-bob-npm-0.17.1-78519ee361/node_modules/@react-native-community/bob/", - "packageDependencies": [ - ["@react-native-community/bob", "npm:0.17.1"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-flow", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"], - ["@babel/preset-react", "virtual:78519ee361664ca4ce0d44089a5f49548b20f417584781c170985d99f80a61d9a1c56420b58fff33b849b9ccdff112cc00933e96c9a3e84c92f1853a34483dbf#npm:7.13.13"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["browserslist", "npm:4.16.6"], - ["chalk", "npm:4.1.1"], - ["cosmiconfig", "npm:7.0.0"], - ["cross-spawn", "npm:7.0.3"], - ["dedent", "npm:0.7.0"], - ["del", "npm:6.0.0"], - ["ejs", "npm:3.1.6"], - ["fs-extra", "npm:9.1.0"], - ["github-username", "npm:5.0.1"], - ["glob", "npm:7.1.7"], - ["is-git-dirty", "npm:2.0.1"], - ["jetifier", "npm:1.6.8"], - ["json5", "npm:2.2.0"], - ["prompts", "npm:2.4.1"], - ["validate-npm-package-name", "npm:3.0.0"], - ["which", "npm:2.0.2"], - ["yargs", "npm:16.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-npm-13.6.9-73861e70f2-eaa5529864.zip/node_modules/@react-native-community/cli/", - "packageDependencies": [ - ["@react-native-community/cli", "npm:13.6.9"], - ["@react-native-community/cli-clean", "npm:13.6.9"], - ["@react-native-community/cli-config", "npm:13.6.9"], - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"], - ["@react-native-community/cli-doctor", "npm:13.6.9"], - ["@react-native-community/cli-hermes", "npm:13.6.9"], - ["@react-native-community/cli-server-api", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["@react-native-community/cli-types", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["commander", "npm:9.5.0"], - ["deepmerge", "npm:4.3.1"], - ["execa", "npm:5.1.1"], - ["find-up", "npm:4.1.0"], - ["fs-extra", "npm:8.1.0"], - ["graceful-fs", "npm:4.2.11"], - ["prompts", "npm:2.4.2"], - ["semver", "npm:7.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-clean", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-clean-npm-13.6.9-7835f41fe8-ca9b72c57d.zip/node_modules/@react-native-community/cli-clean/", - "packageDependencies": [ - ["@react-native-community/cli-clean", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["execa", "npm:5.1.1"], - ["fast-glob", "npm:3.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-config", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-config-npm-13.6.9-8947727d1d-e187ee61c3.zip/node_modules/@react-native-community/cli-config/", - "packageDependencies": [ - ["@react-native-community/cli-config", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["cosmiconfig", "npm:5.2.1"], - ["deepmerge", "npm:4.3.1"], - ["fast-glob", "npm:3.3.2"], - ["joi", "npm:17.13.3"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-debugger-ui", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-debugger-ui-npm-13.6.9-9cb700fd85-b219b1e736.zip/node_modules/@react-native-community/cli-debugger-ui/", - "packageDependencies": [ - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"], - ["serve-static", "npm:1.16.2"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-doctor", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-doctor-npm-13.6.9-00f9937336-5b66a8c18d.zip/node_modules/@react-native-community/cli-doctor/", - "packageDependencies": [ - ["@react-native-community/cli-doctor", "npm:13.6.9"], - ["@react-native-community/cli-config", "npm:13.6.9"], - ["@react-native-community/cli-platform-android", "npm:13.6.9"], - ["@react-native-community/cli-platform-apple", "npm:13.6.9"], - ["@react-native-community/cli-platform-ios", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["command-exists", "npm:1.2.9"], - ["deepmerge", "npm:4.3.1"], - ["envinfo", "npm:7.14.0"], - ["execa", "npm:5.1.1"], - ["hermes-profile-transformer", "npm:0.0.6"], - ["node-stream-zip", "npm:1.15.0"], - ["ora", "npm:5.4.1"], - ["semver", "npm:7.6.3"], - ["strip-ansi", "npm:5.2.0"], - ["wcwidth", "npm:1.0.1"], - ["yaml", "npm:2.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-hermes", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-hermes-npm-13.6.9-2d171ae59c-154d5a5db5.zip/node_modules/@react-native-community/cli-hermes/", - "packageDependencies": [ - ["@react-native-community/cli-hermes", "npm:13.6.9"], - ["@react-native-community/cli-platform-android", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["hermes-profile-transformer", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-platform-android", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-android-npm-13.6.9-d3dc697aee-accea73d94.zip/node_modules/@react-native-community/cli-platform-android/", - "packageDependencies": [ - ["@react-native-community/cli-platform-android", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["execa", "npm:5.1.1"], - ["fast-glob", "npm:3.3.2"], - ["fast-xml-parser", "npm:4.5.0"], - ["logkitty", "npm:0.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-platform-apple", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-apple-npm-13.6.9-af92330889-3981fbc526.zip/node_modules/@react-native-community/cli-platform-apple/", - "packageDependencies": [ - ["@react-native-community/cli-platform-apple", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["chalk", "npm:4.1.2"], - ["execa", "npm:5.1.1"], - ["fast-glob", "npm:3.3.2"], - ["fast-xml-parser", "npm:4.5.0"], - ["ora", "npm:5.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-platform-ios", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-platform-ios-npm-13.6.9-aa1c8682ea-f45917a793.zip/node_modules/@react-native-community/cli-platform-ios/", - "packageDependencies": [ - ["@react-native-community/cli-platform-ios", "npm:13.6.9"], - ["@react-native-community/cli-platform-apple", "npm:13.6.9"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-server-api", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-server-api-npm-13.6.9-9b87028c1a-71a1f171a3.zip/node_modules/@react-native-community/cli-server-api/", - "packageDependencies": [ - ["@react-native-community/cli-server-api", "npm:13.6.9"], - ["@react-native-community/cli-debugger-ui", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["compression", "npm:1.7.4"], - ["connect", "npm:3.7.0"], - ["errorhandler", "npm:1.5.1"], - ["nocache", "npm:3.0.4"], - ["pretty-format", "npm:26.6.2"], - ["serve-static", "npm:1.16.2"], - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-tools", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-tools-npm-13.6.9-4fc9353fbf-4d45387a49.zip/node_modules/@react-native-community/cli-tools/", - "packageDependencies": [ - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["appdirsjs", "npm:1.2.7"], - ["chalk", "npm:4.1.2"], - ["execa", "npm:5.1.1"], - ["find-up", "npm:5.0.0"], - ["mime", "npm:2.6.0"], - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"], - ["open", "npm:6.4.0"], - ["ora", "npm:5.4.1"], - ["semver", "npm:7.6.3"], - ["shell-quote", "npm:1.8.1"], - ["sudo-prompt", "npm:9.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/cli-types", [ - ["npm:13.6.9", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-types-npm-13.6.9-f2336259cc-c336224387.zip/node_modules/@react-native-community/cli-types/", - "packageDependencies": [ - ["@react-native-community/cli-types", "npm:13.6.9"], - ["joi", "npm:17.13.3"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/eslint-config", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-f281dc6f3d.zip/node_modules/@react-native-community/eslint-config/", - "packageDependencies": [ - ["@react-native-community/eslint-config", "npm:2.0.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0", { - "packageLocation": "./.yarn/$$virtual/@react-native-community-eslint-config-virtual-bc7af5d9ca/0/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-f281dc6f3d.zip/node_modules/@react-native-community/eslint-config/", - "packageDependencies": [ - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"], - ["@react-native-community/eslint-plugin", "npm:1.1.0"], - ["@types/eslint", null], - ["@typescript-eslint/eslint-plugin", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"], - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"], - ["babel-eslint", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0"], - ["eslint", "npm:7.26.0"], - ["eslint-config-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0"], - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"], - ["eslint-plugin-flowtype", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3"], - ["eslint-plugin-jest", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1"], - ["eslint-plugin-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2"], - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"], - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"], - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"], - ["prettier", "npm:2.3.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["@react-native-community/eslint-plugin", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/@react-native-community-eslint-plugin-npm-1.1.0-86bd3dfadc-17ffec465f.zip/node_modules/@react-native-community/eslint-plugin/", - "packageDependencies": [ - ["@react-native-community/eslint-plugin", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/assets-registry", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-assets-registry-npm-0.74.87-5dc5ec21ec-017e8df38d.zip/node_modules/@react-native/assets-registry/", - "packageDependencies": [ - ["@react-native/assets-registry", "npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/babel-plugin-codegen", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-babel-plugin-codegen-npm-0.74.87-31567c2937-7d44ff3e20.zip/node_modules/@react-native/babel-plugin-codegen/", - "packageDependencies": [ - ["@react-native/babel-plugin-codegen", "npm:0.74.87"], - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/babel-preset", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-fb6896b89b.zip/node_modules/@react-native/babel-preset/", - "packageDependencies": [ - ["@react-native/babel-preset", "npm:0.74.87"] - ], - "linkType": "SOFT", - }], - ["virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87", { - "packageLocation": "./.yarn/$$virtual/@react-native-babel-preset-virtual-63b6a8cb58/0/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-fb6896b89b.zip/node_modules/@react-native/babel-preset/", - "packageDependencies": [ - ["@react-native/babel-preset", "virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87"], - ["@babel/core", "npm:7.25.2"], - ["@babel/plugin-proposal-async-generator-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/plugin-proposal-class-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"], - ["@babel/plugin-proposal-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-proposal-logical-assignment-operators", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"], - ["@babel/plugin-proposal-numeric-separator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.18.6"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.20.7"], - ["@babel/plugin-proposal-optional-catch-binding", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-proposal-optional-chaining", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.21.0"], - ["@babel/plugin-syntax-dynamic-import", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.8.3"], - ["@babel/plugin-syntax-export-default-from", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-syntax-flow", "virtual:7e736db4b56b2304d0a022a89cb318b85c3162717410cb74c361d3e1a99b71fbe0675da01bbb74df245e324f9ead1caccd1027f80e8a62d4dbce5123b38f076a#npm:7.24.7"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:084089a631743eb2e7e5b74362965e9a9ec4946c7ebcc1e9341f955ff2e53abab9a1757af440c1e51092fb169ec2c46a8b57db92686c7d1ccd259958bfe6fb2f#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:1f00f4ac35cfb9489669949af24e0f08fc8bdd554c9b130bba200c8c8b61929b1477ce6f31ae52ff132c7dbaf1312b92b0914f9c85c3b9b07c2e9a456a516fce#npm:7.8.3"], - ["@babel/plugin-transform-arrow-functions", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/plugin-transform-async-to-generator", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/plugin-transform-block-scoping", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-classes", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-computed-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/plugin-transform-destructuring", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.8"], - ["@babel/plugin-transform-flow-strip-types", "virtual:3dbc69340a1ddb049df96e4267e39021291e0d7cfc66ad75a3a49074919c1b6fae61a5160c5eeb9e86fa4df71dd82dd489814cb059cb26cf53e4dea563186b20#npm:7.25.2"], - ["@babel/plugin-transform-function-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-transform-literals", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-transform-modules-commonjs", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.0"], - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/plugin-transform-parameters", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-private-methods", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.25.4"], - ["@babel/plugin-transform-private-property-in-object", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.24.7"], - ["@babel/plugin-transform-react-display-name", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.12"], - ["@babel/plugin-transform-react-jsx-self", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-transform-react-jsx-source", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-runtime", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.14.2"], - ["@babel/plugin-transform-shorthand-properties", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-transform-spread", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.13.0"], - ["@babel/plugin-transform-sticky-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/plugin-transform-typescript", "virtual:6858c7a0c0f873976f0fafac20b30eda9f462cadbda6e90d92aa589c4b433c8b50978790c8a5d4295e736159d4cd4399cf4231cdbc17e90aa1dbc4bc580e5be3#npm:7.13.0"], - ["@babel/plugin-transform-unicode-regex", "virtual:63b6a8cb58c94b6f559a0b1fa4ab720593493f27da5d05ab3ad4960b424b5c091329b93901fa80df0695f70d504af063e576869dc90472ac75f58445d61ad116#npm:7.12.13"], - ["@babel/template", "npm:7.12.13"], - ["@react-native/babel-plugin-codegen", "npm:0.74.87"], - ["@types/babel__core", null], - ["babel-plugin-transform-flow-enums", "npm:0.0.2"], - ["react-refresh", "npm:0.14.2"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@react-native/codegen", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-codegen-npm-0.74.87-f772b0a115-7960327633.zip/node_modules/@react-native/codegen/", - "packageDependencies": [ - ["@react-native/codegen", "npm:0.74.87"] - ], - "linkType": "SOFT", - }], - ["virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87", { - "packageLocation": "./.yarn/$$virtual/@react-native-codegen-virtual-39ff8dcc54/0/cache/@react-native-codegen-npm-0.74.87-f772b0a115-7960327633.zip/node_modules/@react-native/codegen/", - "packageDependencies": [ - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/preset-env", null], - ["@types/babel__preset-env", null], - ["glob", "npm:7.1.7"], - ["hermes-parser", "npm:0.19.1"], - ["invariant", "npm:2.2.4"], - ["jscodeshift", "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0"], - ["mkdirp", "npm:0.5.6"], - ["nullthrows", "npm:1.1.1"] - ], - "packagePeers": [ - "@babel/preset-env", - "@types/babel__preset-env" - ], - "linkType": "HARD", - }] - ]], - ["@react-native/community-cli-plugin", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-community-cli-plugin-npm-0.74.87-bf141e2536-a4fadb4621.zip/node_modules/@react-native/community-cli-plugin/", - "packageDependencies": [ - ["@react-native/community-cli-plugin", "npm:0.74.87"], - ["@react-native-community/cli-server-api", "npm:13.6.9"], - ["@react-native-community/cli-tools", "npm:13.6.9"], - ["@react-native/dev-middleware", "npm:0.74.87"], - ["@react-native/metro-babel-transformer", "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87"], - ["chalk", "npm:4.1.1"], - ["execa", "npm:5.1.1"], - ["metro", "npm:0.80.12"], - ["metro-config", "npm:0.80.12"], - ["metro-core", "npm:0.80.12"], - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"], - ["querystring", "npm:0.2.1"], - ["readline", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/debugger-frontend", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-debugger-frontend-npm-0.74.87-7ec98a0c0a-592a4e80f5.zip/node_modules/@react-native/debugger-frontend/", - "packageDependencies": [ - ["@react-native/debugger-frontend", "npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/dev-middleware", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-dev-middleware-npm-0.74.87-3e56b6bd6a-cbbf16172b.zip/node_modules/@react-native/dev-middleware/", - "packageDependencies": [ - ["@react-native/dev-middleware", "npm:0.74.87"], - ["@isaacs/ttlcache", "npm:1.4.1"], - ["@react-native/debugger-frontend", "npm:0.74.87"], - ["@rnx-kit/chromium-edge-launcher", "npm:1.0.0"], - ["chrome-launcher", "npm:0.15.2"], - ["connect", "npm:3.7.0"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"], - ["nullthrows", "npm:1.1.1"], - ["open", "npm:7.4.2"], - ["selfsigned", "npm:2.4.1"], - ["serve-static", "npm:1.16.2"], - ["temp-dir", "npm:2.0.0"], - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/gradle-plugin", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/unplugged/@react-native-gradle-plugin-npm-0.74.87-2ad4f2fa47/node_modules/@react-native/gradle-plugin/", - "packageDependencies": [ - ["@react-native/gradle-plugin", "npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/js-polyfills", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-js-polyfills-npm-0.74.87-83ddfb5d3d-2e5fe39c64.zip/node_modules/@react-native/js-polyfills/", - "packageDependencies": [ - ["@react-native/js-polyfills", "npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/metro-babel-transformer", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-baf2f22653.zip/node_modules/@react-native/metro-babel-transformer/", - "packageDependencies": [ - ["@react-native/metro-babel-transformer", "npm:0.74.87"] - ], - "linkType": "SOFT", - }], - ["virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87", { - "packageLocation": "./.yarn/$$virtual/@react-native-metro-babel-transformer-virtual-8a5906f434/0/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-baf2f22653.zip/node_modules/@react-native/metro-babel-transformer/", - "packageDependencies": [ - ["@react-native/metro-babel-transformer", "virtual:bf141e253670836443911db2c4911de51d387e85ee7b4938a5b982ea29c62c7b5163211e1c321af5ffc3e45319b21573dc9c17b8721c4ff6d8660cce8cc5f461#npm:0.74.87"], - ["@babel/core", "npm:7.25.2"], - ["@react-native/babel-preset", "virtual:8a5906f4344e7ac630c42d5cfafe1c9173dbe6c2cf39389e360d7e7691622b9e829d93e46789d55c1f5287dff69cbfbec7c175bbcf3573b156b1ac0953bc8007#npm:0.74.87"], - ["@types/babel__core", null], - ["hermes-parser", "npm:0.19.1"], - ["nullthrows", "npm:1.1.1"] - ], - "packagePeers": [ - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@react-native/normalize-colors", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-normalize-colors-npm-0.74.87-5596454407-5b33a7231c.zip/node_modules/@react-native/normalize-colors/", - "packageDependencies": [ - ["@react-native/normalize-colors", "npm:0.74.87"] - ], - "linkType": "HARD", - }] - ]], - ["@react-native/virtualized-lists", [ - ["npm:0.74.87", { - "packageLocation": "./.yarn/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-cef7a0fd27.zip/node_modules/@react-native/virtualized-lists/", - "packageDependencies": [ - ["@react-native/virtualized-lists", "npm:0.74.87"] - ], - "linkType": "SOFT", - }], - ["virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87", { - "packageLocation": "./.yarn/$$virtual/@react-native-virtualized-lists-virtual-efe9ea4105/0/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-cef7a0fd27.zip/node_modules/@react-native/virtualized-lists/", - "packageDependencies": [ - ["@react-native/virtualized-lists", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87"], - ["@types/react", null], - ["@types/react-native", null], - ["@types/types__react", null], - ["invariant", "npm:2.2.4"], - ["nullthrows", "npm:1.1.1"], - ["react", null], - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"] - ], - "packagePeers": [ - "@types/react-native", - "@types/react", - "@types/types__react", - "react-native", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@release-it/conventional-changelog", [ - ["patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A.", { - "packageLocation": "./.yarn/cache/@release-it-conventional-changelog-patch-a6edb03078-b3ef241fa6.zip/node_modules/@release-it/conventional-changelog/", - "packageDependencies": [ - ["@release-it/conventional-changelog", "patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."] - ], - "linkType": "SOFT", - }], - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A.", { - "packageLocation": "./.yarn/$$virtual/@release-it-conventional-changelog-virtual-c70b8a9724/0/cache/@release-it-conventional-changelog-patch-a6edb03078-b3ef241fa6.zip/node_modules/@release-it/conventional-changelog/", - "packageDependencies": [ - ["@release-it/conventional-changelog", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#patch:@release-it/conventional-changelog@npm%3A2.0.0#patches/@release-it-conventional-changelog.patch::version=2.0.0&hash=6e3e22&locator=core%40workspace%3A."], - ["@types/release-it", null], - ["concat-stream", "npm:2.0.0"], - ["conventional-changelog", "npm:3.1.24"], - ["conventional-recommended-bump", "npm:6.1.0"], - ["prepend-file", "npm:2.0.0"], - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."] - ], - "packagePeers": [ - "@types/release-it", - "release-it" - ], - "linkType": "HARD", - }] - ]], - ["@rnx-kit/chromium-edge-launcher", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/@rnx-kit-chromium-edge-launcher-npm-1.0.0-5272508d46-f4a0d7d669.zip/node_modules/@rnx-kit/chromium-edge-launcher/", - "packageDependencies": [ - ["@rnx-kit/chromium-edge-launcher", "npm:1.0.0"], - ["@types/node", "npm:18.19.50"], - ["escape-string-regexp", "npm:4.0.0"], - ["is-wsl", "npm:2.2.0"], - ["lighthouse-logger", "npm:1.4.2"], - ["mkdirp", "npm:1.0.4"], - ["rimraf", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["@sideway/address", [ - ["npm:4.1.5", { - "packageLocation": "./.yarn/cache/@sideway-address-npm-4.1.5-a3852745c8-01dccfa54f.zip/node_modules/@sideway/address/", - "packageDependencies": [ - ["@sideway/address", "npm:4.1.5"], - ["@hapi/hoek", "npm:9.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@sideway/formula", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/@sideway-formula-npm-3.0.1-ee371b2ddf-91186a7e00.zip/node_modules/@sideway/formula/", - "packageDependencies": [ - ["@sideway/formula", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["@sideway/pinpoint", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/@sideway-pinpoint-npm-2.0.0-66d94e687e-e5528639ae.zip/node_modules/@sideway/pinpoint/", - "packageDependencies": [ - ["@sideway/pinpoint", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@sinclair/typebox", [ - ["npm:0.27.8", { - "packageLocation": "./.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-081340b814.zip/node_modules/@sinclair/typebox/", - "packageDependencies": [ - ["@sinclair/typebox", "npm:0.27.8"] - ], - "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:3.1.2", { - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-3.1.2-bcdc8ac1e4-da0047761e.zip/node_modules/@sindresorhus/is/", - "packageDependencies": [ - ["@sindresorhus/is", "npm:3.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["@sinonjs/commons", [ - ["npm:1.8.3", { - "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-a7f3181512.zip/node_modules/@sinonjs/commons/", - "packageDependencies": [ - ["@sinonjs/commons", "npm:1.8.3"], - ["type-detect", "npm:4.0.8"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-f0bc1b114e.zip/node_modules/@sinonjs/commons/", - "packageDependencies": [ - ["@sinonjs/commons", "npm:3.0.1"], - ["type-detect", "npm:4.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["@sinonjs/fake-timers", [ - ["npm:10.3.0", { - "packageLocation": "./.yarn/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-e1ff551246.zip/node_modules/@sinonjs/fake-timers/", - "packageDependencies": [ - ["@sinonjs/fake-timers", "npm:10.3.0"], - ["@sinonjs/commons", "npm:3.0.1"] - ], - "linkType": "HARD", - }], - ["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.3"] - ], - "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.1"] - ], - "linkType": "HARD", - }] - ]], - ["@tootallnate/once", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-d030f3fb14.zip/node_modules/@tootallnate/once/", - "packageDependencies": [ - ["@tootallnate/once", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["@tsconfig/react-native", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/@tsconfig-react-native-npm-1.0.3-b2fdaa0bef-836d20d6d7.zip/node_modules/@tsconfig/react-native/", - "packageDependencies": [ - ["@tsconfig/react-native", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__core", [ - ["npm:7.1.14", { - "packageLocation": "./.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-e0212770e1.zip/node_modules/@types/babel__core/", - "packageDependencies": [ - ["@types/babel__core", "npm:7.1.14"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__generator", "npm:7.6.2"], - ["@types/babel__template", "npm:7.4.0"], - ["@types/babel__traverse", "npm:7.11.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__generator", [ - ["npm:7.6.2", { - "packageLocation": "./.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-58fc195a3d.zip/node_modules/@types/babel__generator/", - "packageDependencies": [ - ["@types/babel__generator", "npm:7.6.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__template", [ - ["npm:7.4.0", { - "packageLocation": "./.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-7a81a59f85.zip/node_modules/@types/babel__template/", - "packageDependencies": [ - ["@types/babel__template", "npm:7.4.0"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__traverse", [ - ["npm:7.11.1", { - "packageLocation": "./.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-676150e00d.zip/node_modules/@types/babel__traverse/", - "packageDependencies": [ - ["@types/babel__traverse", "npm:7.11.1"], - ["@babel/types", "npm:7.14.2"] - ], - "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:15.3.0"], - ["@types/responselike", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/eslint-visitor-keys", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/@types-eslint-visitor-keys-npm-1.0.0-a300061b93-48d1f32631.zip/node_modules/@types/eslint-visitor-keys/", - "packageDependencies": [ - ["@types/eslint-visitor-keys", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/graceful-fs", [ - ["npm:4.1.5", { - "packageLocation": "./.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-ab79ec306d.zip/node_modules/@types/graceful-fs/", - "packageDependencies": [ - ["@types/graceful-fs", "npm:4.1.5"], - ["@types/node", "npm:15.3.0"] - ], - "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/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: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.23", { - "packageLocation": "./.yarn/cache/@types-jest-npm-26.0.23-f0d419e70e-a015676b78.zip/node_modules/@types/jest/", - "packageDependencies": [ - ["@types/jest", "npm:26.0.23"], - ["jest-diff", "npm:26.6.2"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["@types/json-schema", [ - ["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/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:15.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/minimist", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/@types-minimist-npm-1.2.1-dc316d808d-3a6f5fe35f.zip/node_modules/@types/minimist/", - "packageDependencies": [ - ["@types/minimist", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/node", [ - ["npm:15.3.0", { - "packageLocation": "./.yarn/cache/@types-node-npm-15.3.0-7ebc66d6bc-44039665ab.zip/node_modules/@types/node/", - "packageDependencies": [ - ["@types/node", "npm:15.3.0"] - ], - "linkType": "HARD", - }], - ["npm:18.19.50", { - "packageLocation": "./.yarn/cache/@types-node-npm-18.19.50-1d7a03097e-1c4f3d5fb6.zip/node_modules/@types/node/", - "packageDependencies": [ - ["@types/node", "npm:18.19.50"], - ["undici-types", "npm:5.26.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/node-forge", [ - ["npm:1.3.11", { - "packageLocation": "./.yarn/cache/@types-node-forge-npm-1.3.11-132541fb70-de11633e23.zip/node_modules/@types/node-forge/", - "packageDependencies": [ - ["@types/node-forge", "npm:1.3.11"], - ["@types/node", "npm:15.3.0"] - ], - "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.2.3", { - "packageLocation": "./.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-b7e80288f9.zip/node_modules/@types/prettier/", - "packageDependencies": [ - ["@types/prettier", "npm:2.2.3"] - ], - "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/ramda", [ - ["npm:0.27.44", { - "packageLocation": "./.yarn/cache/@types-ramda-npm-0.27.44-12231e2490-d34236eeba.zip/node_modules/@types/ramda/", - "packageDependencies": [ - ["@types/ramda", "npm:0.27.44"], - ["ts-toolbelt", "npm:6.15.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react", [ - ["npm:17.0.5", { - "packageLocation": "./.yarn/cache/@types-react-npm-17.0.5-b0d58aba4c-f9793e8113.zip/node_modules/@types/react/", - "packageDependencies": [ - ["@types/react", "npm:17.0.5"], - ["@types/prop-types", "npm:15.7.3"], - ["@types/scheduler", "npm:0.16.1"], - ["csstype", "npm:3.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react-native", [ - ["npm:0.64.5", { - "packageLocation": "./.yarn/cache/@types-react-native-npm-0.64.5-7da2731710-ca9ff52b7e.zip/node_modules/@types/react-native/", - "packageDependencies": [ - ["@types/react-native", "npm:0.64.5"], - ["@types/react", "npm:17.0.5"] - ], - "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:15.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/scheduler", [ - ["npm:0.16.1", { - "packageLocation": "./.yarn/cache/@types-scheduler-npm-0.16.1-9a58541608-0124c2e4de.zip/node_modules/@types/scheduler/", - "packageDependencies": [ - ["@types/scheduler", "npm:0.16.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/stack-utils", [ - ["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/yargs", [ - ["npm:15.0.13", { - "packageLocation": "./.yarn/cache/@types-yargs-npm-15.0.13-d1172b1fcd-fa1a5b0a07.zip/node_modules/@types/yargs/", - "packageDependencies": [ - ["@types/yargs", "npm:15.0.13"], - ["@types/yargs-parser", "npm:20.2.0"] - ], - "linkType": "HARD", - }], - ["npm:17.0.33", { - "packageLocation": "./.yarn/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-0da557ee2a.zip/node_modules/@types/yargs/", - "packageDependencies": [ - ["@types/yargs", "npm:17.0.33"], - ["@types/yargs-parser", "npm:20.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/yargs-parser", [ - ["npm:20.2.0", { - "packageLocation": "./.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-202b8ca16a.zip/node_modules/@types/yargs-parser/", - "packageDependencies": [ - ["@types/yargs-parser", "npm:20.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/eslint-plugin", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-c50fefc3df.zip/node_modules/@typescript-eslint/eslint-plugin/", - "packageDependencies": [ - ["@typescript-eslint/eslint-plugin", "npm:3.10.1"] - ], - "linkType": "SOFT", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-846ecf021a.zip/node_modules/@typescript-eslint/eslint-plugin/", - "packageDependencies": [ - ["@typescript-eslint/eslint-plugin", "npm:4.23.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-eslint-plugin-virtual-4f763673f9/0/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-846ecf021a.zip/node_modules/@typescript-eslint/eslint-plugin/", - "packageDependencies": [ - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@types/eslint", null], - ["@types/typescript-eslint__parser", null], - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"], - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@typescript-eslint/scope-manager", "npm:4.23.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["eslint", "npm:7.26.0"], - ["functional-red-black-tree", "npm:1.0.1"], - ["lodash", "npm:4.17.21"], - ["regexpp", "npm:3.1.0"], - ["semver", "npm:7.3.5"], - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "@types/eslint", - "@types/typescript-eslint__parser", - "@typescript-eslint/parser", - "eslint", - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-eslint-plugin-virtual-23c4f6f2ba/0/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-c50fefc3df.zip/node_modules/@typescript-eslint/eslint-plugin/", - "packageDependencies": [ - ["@typescript-eslint/eslint-plugin", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"], - ["@types/eslint", null], - ["@types/typescript-eslint__parser", null], - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"], - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["eslint", "npm:7.26.0"], - ["functional-red-black-tree", "npm:1.0.1"], - ["regexpp", "npm:3.1.0"], - ["semver", "npm:7.3.5"], - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"], - ["typescript", null] - ], - "packagePeers": [ - "@types/eslint", - "@types/typescript-eslint__parser", - "@typescript-eslint/parser", - "eslint", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/experimental-utils", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-b1be2620f0.zip/node_modules/@typescript-eslint/experimental-utils/", - "packageDependencies": [ - ["@typescript-eslint/experimental-utils", "npm:3.10.1"] - ], - "linkType": "SOFT", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-8583b9f016.zip/node_modules/@typescript-eslint/experimental-utils/", - "packageDependencies": [ - ["@typescript-eslint/experimental-utils", "npm:4.23.0"] - ], - "linkType": "SOFT", - }], - ["virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-experimental-utils-virtual-0033b36532/0/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-b1be2620f0.zip/node_modules/@typescript-eslint/experimental-utils/", - "packageDependencies": [ - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"], - ["@types/eslint", null], - ["@types/json-schema", "npm:7.0.7"], - ["@typescript-eslint/types", "npm:3.10.1"], - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"], - ["eslint", "npm:7.26.0"], - ["eslint-scope", "npm:5.1.1"], - ["eslint-utils", "npm:2.1.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }], - ["virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-experimental-utils-virtual-4d181a89fd/0/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-8583b9f016.zip/node_modules/@typescript-eslint/experimental-utils/", - "packageDependencies": [ - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"], - ["@types/eslint", null], - ["@types/json-schema", "npm:7.0.7"], - ["@typescript-eslint/scope-manager", "npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["@typescript-eslint/typescript-estree", "virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0"], - ["eslint", "npm:7.26.0"], - ["eslint-scope", "npm:5.1.1"], - ["eslint-utils", "npm:2.1.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/parser", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-17289e48d2.zip/node_modules/@typescript-eslint/parser/", - "packageDependencies": [ - ["@typescript-eslint/parser", "npm:3.10.1"] - ], - "linkType": "SOFT", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-364874cf13.zip/node_modules/@typescript-eslint/parser/", - "packageDependencies": [ - ["@typescript-eslint/parser", "npm:4.23.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-parser-virtual-9046837440/0/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-364874cf13.zip/node_modules/@typescript-eslint/parser/", - "packageDependencies": [ - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@types/eslint", null], - ["@typescript-eslint/scope-manager", "npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["@typescript-eslint/typescript-estree", "virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["eslint", "npm:7.26.0"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "@types/eslint", - "eslint", - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-parser-virtual-7db2ee60f8/0/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-17289e48d2.zip/node_modules/@typescript-eslint/parser/", - "packageDependencies": [ - ["@typescript-eslint/parser", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.10.1"], - ["@types/eslint", null], - ["@types/eslint-visitor-keys", "npm:1.0.0"], - ["@typescript-eslint/experimental-utils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.10.1"], - ["@typescript-eslint/types", "npm:3.10.1"], - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"], - ["eslint", "npm:7.26.0"], - ["eslint-visitor-keys", "npm:1.3.0"], - ["typescript", null] - ], - "packagePeers": [ - "@types/eslint", - "eslint", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/scope-manager", [ - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-4.23.0-678850fab8-d51c7efa22.zip/node_modules/@typescript-eslint/scope-manager/", - "packageDependencies": [ - ["@typescript-eslint/scope-manager", "npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["@typescript-eslint/visitor-keys", "npm:4.23.0"] - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/types", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-3.10.1-faddecc057-cc075f8da4.zip/node_modules/@typescript-eslint/types/", - "packageDependencies": [ - ["@typescript-eslint/types", "npm:3.10.1"] - ], - "linkType": "HARD", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-4.23.0-9da8b5e2f2-b0ddf4ca01.zip/node_modules/@typescript-eslint/types/", - "packageDependencies": [ - ["@typescript-eslint/types", "npm:4.23.0"] - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/typescript-estree", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-c048aa8b80.zip/node_modules/@typescript-eslint/typescript-estree/", - "packageDependencies": [ - ["@typescript-eslint/typescript-estree", "npm:3.10.1"] - ], - "linkType": "SOFT", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-dec87f62c7.zip/node_modules/@typescript-eslint/typescript-estree/", - "packageDependencies": [ - ["@typescript-eslint/typescript-estree", "npm:4.23.0"] - ], - "linkType": "SOFT", - }], - ["virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-466b446d2b/0/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-c048aa8b80.zip/node_modules/@typescript-eslint/typescript-estree/", - "packageDependencies": [ - ["@typescript-eslint/typescript-estree", "virtual:0033b36532d98ca9d74e9592c417034c8386b4b8a15151c86ab067e76efee53a50d0a01e46491d35a7d73f1f1df60e3f9aa3a601ca98edda03aeac02128e1488#npm:3.10.1"], - ["@typescript-eslint/types", "npm:3.10.1"], - ["@typescript-eslint/visitor-keys", "npm:3.10.1"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["glob", "npm:7.1.7"], - ["is-glob", "npm:4.0.1"], - ["lodash", "npm:4.17.21"], - ["semver", "npm:7.3.5"], - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"], - ["typescript", null] - ], - "packagePeers": [ - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-304f49c303/0/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-dec87f62c7.zip/node_modules/@typescript-eslint/typescript-estree/", - "packageDependencies": [ - ["@typescript-eslint/typescript-estree", "virtual:4d181a89fd7b9f735d852ce1b7aa9e2b65835244d91bec636e26aaf58cd450f663ceed9417dcf770b63dd7960f89208e53ead858bde713447c9c5dd8dd540e56#npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["@typescript-eslint/visitor-keys", "npm:4.23.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["globby", "npm:11.0.3"], - ["is-glob", "npm:4.0.1"], - ["semver", "npm:7.3.5"], - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"], - ["typescript", null] - ], - "packagePeers": [ - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0", { - "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-530012c10c/0/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-dec87f62c7.zip/node_modules/@typescript-eslint/typescript-estree/", - "packageDependencies": [ - ["@typescript-eslint/typescript-estree", "virtual:9046837440ef31e9451837bd5f7e464b65c3fe35e564a007b2d3c05c3e58ab06dca927345afdf74cbac3ec2f6461002783cf27b1c5f46fe00ab5613a6d81320e#npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["@typescript-eslint/visitor-keys", "npm:4.23.0"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["globby", "npm:11.0.3"], - ["is-glob", "npm:4.0.1"], - ["semver", "npm:7.3.5"], - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["@typescript-eslint/visitor-keys", [ - ["npm:3.10.1", { - "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-3.10.1-6a80d0d416-58890dc003.zip/node_modules/@typescript-eslint/visitor-keys/", - "packageDependencies": [ - ["@typescript-eslint/visitor-keys", "npm:3.10.1"], - ["eslint-visitor-keys", "npm:1.3.0"] - ], - "linkType": "HARD", - }], - ["npm:4.23.0", { - "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-4.23.0-52443e952e-a5e86b76e3.zip/node_modules/@typescript-eslint/visitor-keys/", - "packageDependencies": [ - ["@typescript-eslint/visitor-keys", "npm:4.23.0"], - ["@typescript-eslint/types", "npm:4.23.0"], - ["eslint-visitor-keys", "npm:2.1.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.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.8", { - "packageLocation": "./.yarn/cache/accepts-npm-1.3.8-9a812371c9-1e824f92b5.zip/node_modules/accepts/", - "packageDependencies": [ - ["accepts", "npm:1.3.8"], - ["mime-types", "npm:2.1.35"], - ["negotiator", "npm:0.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["acorn", [ - ["npm:7.4.1", { - "packageLocation": "./.yarn/cache/acorn-npm-7.4.1-f450b4646c-2bde98c28c.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:7.4.1"] - ], - "linkType": "HARD", - }], - ["npm:8.12.1", { - "packageLocation": "./.yarn/cache/acorn-npm-8.12.1-610871d57c-a76b5d5fb6.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:8.12.1"] - ], - "linkType": "HARD", - }], - ["npm:8.2.4", { - "packageLocation": "./.yarn/cache/acorn-npm-8.2.4-4dfdb01127-6879266ea9.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:8.2.4"] - ], - "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.4.1"], - ["acorn-walk", "npm:7.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["acorn-jsx", [ - ["npm:5.3.1", { - "packageLocation": "./.yarn/cache/acorn-jsx-npm-5.3.1-6ba8185d02-5925bc5d79.zip/node_modules/acorn-jsx/", - "packageDependencies": [ - ["acorn-jsx", "npm:5.3.1"] - ], - "linkType": "SOFT", - }], - ["virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1", { - "packageLocation": "./.yarn/$$virtual/acorn-jsx-virtual-72d2078d8a/0/cache/acorn-jsx-npm-5.3.1-6ba8185d02-5925bc5d79.zip/node_modules/acorn-jsx/", - "packageDependencies": [ - ["acorn-jsx", "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1"], - ["@types/acorn", null], - ["acorn", "npm:7.4.1"] - ], - "packagePeers": [ - "@types/acorn", - "acorn" - ], - "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", - }] - ]], - ["add-stream", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/add-stream-npm-1.0.0-a5a0c0498c-3b452cd362.zip/node_modules/add-stream/", - "packageDependencies": [ - ["add-stream", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["agent-base", [ - ["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:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["agentkeepalive", [ - ["npm:4.1.4", { - "packageLocation": "./.yarn/cache/agentkeepalive-npm-4.1.4-4d5b41b4c1-c58f69d05c.zip/node_modules/agentkeepalive/", - "packageDependencies": [ - ["agentkeepalive", "npm:4.1.4"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["depd", "npm:1.1.2"], - ["humanize-ms", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["aggregate-error", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-704d2001a3.zip/node_modules/aggregate-error/", - "packageDependencies": [ - ["aggregate-error", "npm:3.1.0"], - ["clean-stack", "npm:2.2.0"], - ["indent-string", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["ajv", [ - ["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.4.1"] - ], - "linkType": "HARD", - }], - ["npm:8.4.0", { - "packageLocation": "./.yarn/cache/ajv-npm-8.4.0-1d671a4d5f-0dcdfe0eca.zip/node_modules/ajv/", - "packageDependencies": [ - ["ajv", "npm:8.4.0"], - ["fast-deep-equal", "npm:3.1.3"], - ["json-schema-traverse", "npm:1.0.0"], - ["require-from-string", "npm:2.0.2"], - ["uri-js", "npm:4.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["anser", [ - ["npm:1.4.10", { - "packageLocation": "./.yarn/cache/anser-npm-1.4.10-3fa41e8526-f085cfae2d.zip/node_modules/anser/", - "packageDependencies": [ - ["anser", "npm:1.4.10"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-align", [ - ["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-colors", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/ansi-colors-npm-4.1.1-97ad42f223-50d8dfbce2.zip/node_modules/ansi-colors/", - "packageDependencies": [ - ["ansi-colors", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-escapes", [ - ["npm:4.3.2", { - "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-eca4d4e15b.zip/node_modules/ansi-escapes/", - "packageDependencies": [ - ["ansi-escapes", "npm:4.3.2"], - ["type-fest", "npm:0.21.3"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-fragments", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/ansi-fragments-npm-0.2.1-7617f2a498-f1ac55a731.zip/node_modules/ansi-fragments/", - "packageDependencies": [ - ["ansi-fragments", "npm:0.2.1"], - ["colorette", "npm:1.4.0"], - ["slice-ansi", "npm:2.1.0"], - ["strip-ansi", "npm:5.2.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", - }], - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-c944e1229f.zip/node_modules/ansi-regex/", - "packageDependencies": [ - ["ansi-regex", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-styles", [ - ["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.3.0", { - "packageLocation": "./.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-ea02c0179f.zip/node_modules/ansi-styles/", - "packageDependencies": [ - ["ansi-styles", "npm:4.3.0"], - ["color-convert", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-10b01465c7.zip/node_modules/ansi-styles/", - "packageDependencies": [ - ["ansi-styles", "npm:5.2.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.2", { - "packageLocation": "./.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-cd6c08eb8d.zip/node_modules/anymatch/", - "packageDependencies": [ - ["anymatch", "npm:3.1.2"], - ["normalize-path", "npm:3.0.0"], - ["picomatch", "npm:2.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["appdirsjs", [ - ["npm:1.2.7", { - "packageLocation": "./.yarn/cache/appdirsjs-npm-1.2.7-fcd05e6058-9a3b4ebcf7.zip/node_modules/appdirsjs/", - "packageDependencies": [ - ["appdirsjs", "npm:1.2.7"] - ], - "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", - }] - ]], - ["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-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-ify", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/array-ify-npm-1.0.0-e09a371977-1ba3a81a15.zip/node_modules/array-ify/", - "packageDependencies": [ - ["array-ify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["array-includes", [ - ["npm:3.1.3", { - "packageLocation": "./.yarn/cache/array-includes-npm-3.1.3-5f58cf4c82-0610b36116.zip/node_modules/array-includes/", - "packageDependencies": [ - ["array-includes", "npm:3.1.3"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["get-intrinsic", "npm:1.1.1"], - ["is-string", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["array-union", [ - ["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-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.4", { - "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.2.4-77697fdbe6-2718f73b91.zip/node_modules/array.prototype.flatmap/", - "packageDependencies": [ - ["array.prototype.flatmap", "npm:1.2.4"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["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", - }] - ]], - ["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", - }] - ]], - ["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-metadata-inferer", [ - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/ast-metadata-inferer-npm-0.4.0-9db434cd5b-aa77b23670.zip/node_modules/ast-metadata-inferer/", - "packageDependencies": [ - ["ast-metadata-inferer", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["ast-types", [ - ["npm:0.15.2", { - "packageLocation": "./.yarn/cache/ast-types-npm-0.15.2-a09d26e72b-01c8718404.zip/node_modules/ast-types/", - "packageDependencies": [ - ["ast-types", "npm:0.15.2"], - ["tslib", "npm:2.7.0"] - ], - "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", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-bf049ee704.zip/node_modules/astral-regex/", - "packageDependencies": [ - ["astral-regex", "npm:2.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", - }] - ]], - ["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.3.1", { - "packageLocation": "./.yarn/cache/async-retry-npm-1.3.1-a013434040-20d5747abf.zip/node_modules/async-retry/", - "packageDependencies": [ - ["async-retry", "npm:1.3.1"], - ["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", - }] - ]], - ["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.11.0", { - "packageLocation": "./.yarn/cache/aws4-npm-1.11.0-283476ad94-d30dce2b73.zip/node_modules/aws4/", - "packageDependencies": [ - ["aws4", "npm:1.11.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-core", [ - ["npm:7.0.0-bridge.0", { - "packageLocation": "./.yarn/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-f412bc1a48.zip/node_modules/babel-core/", - "packageDependencies": [ - ["babel-core", "npm:7.0.0-bridge.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0", { - "packageLocation": "./.yarn/$$virtual/babel-core-virtual-a77909de7e/0/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-f412bc1a48.zip/node_modules/babel-core/", - "packageDependencies": [ - ["babel-core", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0"], - ["@babel/core", "npm:7.25.2"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-eslint", [ - ["npm:10.1.0", { - "packageLocation": "./.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-c872bb9476.zip/node_modules/babel-eslint/", - "packageDependencies": [ - ["babel-eslint", "npm:10.1.0"] - ], - "linkType": "SOFT", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0", { - "packageLocation": "./.yarn/$$virtual/babel-eslint-virtual-b9d859d540/0/cache/babel-eslint-npm-10.1.0-6a6d2b1533-c872bb9476.zip/node_modules/babel-eslint/", - "packageDependencies": [ - ["babel-eslint", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:10.1.0"], - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/parser", "npm:7.14.2"], - ["@babel/traverse", "npm:7.14.2"], - ["@babel/types", "npm:7.14.2"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"], - ["eslint-visitor-keys", "npm:1.3.0"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["babel-jest", [ - ["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: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.14.2"], - ["@jest/transform", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/babel__core", "npm:7.1.14"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["babel-preset-jest", "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"], - ["chalk", "npm:4.1.1"], - ["graceful-fs", "npm:4.2.6"], - ["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.2"] - ], - "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.13.0"], - ["@istanbuljs/load-nyc-config", "npm:1.1.0"], - ["@istanbuljs/schema", "npm:0.1.3"], - ["istanbul-lib-instrument", "npm:4.0.3"], - ["test-exclude", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-jest-hoist", [ - ["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.12.13"], - ["@babel/types", "npm:7.14.2"], - ["@types/babel__core", "npm:7.1.14"], - ["@types/babel__traverse", "npm:7.11.1"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-polyfill-corejs2", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5d2825a9f2.zip/node_modules/babel-plugin-polyfill-corejs2/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs2", "npm:0.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-corejs2-virtual-7dda082ba3/0/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5d2825a9f2.zip/node_modules/babel-plugin-polyfill-corejs2/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs2", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"], - ["@types/babel__core", null], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-corejs2-virtual-297b566715/0/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5d2825a9f2.zip/node_modules/babel-plugin-polyfill-corejs2/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs2", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["@babel/compat-data", "npm:7.14.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"], - ["@types/babel__core", null], - ["semver", "npm:6.3.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-polyfill-corejs3", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-ae25400dd8.zip/node_modules/babel-plugin-polyfill-corejs3/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs3", "npm:0.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-corejs3-virtual-62f42b549a/0/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-ae25400dd8.zip/node_modules/babel-plugin-polyfill-corejs3/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs3", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"], - ["@types/babel__core", null], - ["core-js-compat", "npm:3.12.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-corejs3-virtual-917bf48708/0/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-ae25400dd8.zip/node_modules/babel-plugin-polyfill-corejs3/", - "packageDependencies": [ - ["babel-plugin-polyfill-corejs3", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"], - ["@types/babel__core", null], - ["core-js-compat", "npm:3.12.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-polyfill-regenerator", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-538ab98e30.zip/node_modules/babel-plugin-polyfill-regenerator/", - "packageDependencies": [ - ["babel-plugin-polyfill-regenerator", "npm:0.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-regenerator-virtual-bc36a82e89/0/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-538ab98e30.zip/node_modules/babel-plugin-polyfill-regenerator/", - "packageDependencies": [ - ["babel-plugin-polyfill-regenerator", "virtual:a37697e7c4ba2497a21570f86c08bd72a6df8a0f716b77defaf164ef42c68e03f8e20771f55b1a4f90627899c2118988eb3ca9394794337234c2fe02e4dad1a6#npm:0.2.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/helper-define-polyfill-provider", "virtual:7dda082ba328c39407728a16c67c0c0592cba685ae408afe33cbc0fa5115bbc04f27cf903abd6dbff11bf12db5efb67678e629114a8a596408d91d29243d92e8#npm:0.2.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-polyfill-regenerator-virtual-35e7baee27/0/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-538ab98e30.zip/node_modules/babel-plugin-polyfill-regenerator/", - "packageDependencies": [ - ["babel-plugin-polyfill-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:0.2.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/helper-define-polyfill-provider", "virtual:297b5667155475245f5d29a111799a1e39f97a471351d6575bf7683527f07fad7037e29680595cf9ab12d9fa92740a2155eac1f329ea8316f6b42fa4f2dc5125#npm:0.2.0"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-transform-flow-enums", [ - ["npm:0.0.2", { - "packageLocation": "./.yarn/cache/babel-plugin-transform-flow-enums-npm-0.0.2-dbfa5d78ce-c7a513e043.zip/node_modules/babel-plugin-transform-flow-enums/", - "packageDependencies": [ - ["babel-plugin-transform-flow-enums", "npm:0.0.2"], - ["@babel/plugin-syntax-flow", "virtual:dbfa5d78ceba91dc4c6903e3f57858034d2ed0ae3caa8fb56389ef486ba370ede79dec0e6a1b07c93471d06023130473151dcf8b375baebc611a5b5af8d409f7#npm:7.24.7"] - ], - "linkType": "HARD", - }] - ]], - ["babel-preset-current-node-syntax", [ - ["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: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.14.2"], - ["@babel/plugin-syntax-async-generators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.4"], - ["@babel/plugin-syntax-bigint", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-class-properties", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"], - ["@babel/plugin-syntax-import-meta", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/plugin-syntax-json-strings", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-numeric-separator", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.8.3"], - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.12.13"], - ["@types/babel__core", "npm:7.1.14"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-preset-jest", [ - ["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: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.14.2"], - ["@types/babel__core", "npm:7.1.14"], - ["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", - }] - ]], - ["balanced-match", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.2-a53c126459-690643f300.zip/node_modules/balanced-match/", - "packageDependencies": [ - ["balanced-match", "npm:1.0.2"] - ], - "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.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.2.1", { - "packageLocation": "./.yarn/cache/before-after-hook-npm-2.2.1-0eb703f70c-697c0ac2c8.zip/node_modules/before-after-hook/", - "packageDependencies": [ - ["before-after-hook", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["benchmark", [ - ["npm:2.1.4", { - "packageLocation": "./.yarn/cache/benchmark-npm-2.1.4-3d024a205e-3d3d8f4771.zip/node_modules/benchmark/", - "packageDependencies": [ - ["benchmark", "npm:2.1.4"], - ["lodash", "npm:4.17.21"], - ["platform", "npm:1.3.6"] - ], - "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.2.0", { - "packageLocation": "./.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-0f5f5685f3.zip/node_modules/binary-extensions/", - "packageDependencies": [ - ["binary-extensions", "npm:2.2.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.2"] - ], - "linkType": "HARD", - }] - ]], - ["boxen", [ - ["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.1"], - ["string-width", "npm:4.2.2"], - ["term-size", "npm:2.2.1"], - ["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.2"], - ["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.4"], - ["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", - }], - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/braces-npm-3.0.3-582c14023c-cdd64b716b.zip/node_modules/braces/", - "packageDependencies": [ - ["braces", "npm:3.0.3"], - ["fill-range", "npm:7.1.1"] - ], - "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", - }] - ]], - ["browserslist", [ - ["npm:4.16.6", { - "packageLocation": "./.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-ebb0ab279c.zip/node_modules/browserslist/", - "packageDependencies": [ - ["browserslist", "npm:4.16.6"], - ["caniuse-lite", "npm:1.0.30001228"], - ["colorette", "npm:1.2.2"], - ["electron-to-chromium", "npm:1.3.728"], - ["escalade", "npm:3.1.1"], - ["node-releases", "npm:1.1.72"] - ], - "linkType": "HARD", - }], - ["npm:4.23.3", { - "packageLocation": "./.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-f7ee26d461.zip/node_modules/browserslist/", - "packageDependencies": [ - ["browserslist", "npm:4.23.3"], - ["caniuse-lite", "npm:1.0.30001662"], - ["electron-to-chromium", "npm:1.5.27"], - ["node-releases", "npm:2.0.18"], - ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.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", - }] - ]], - ["buffer", [ - ["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-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", - }] - ]], - ["builtins", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/builtins-npm-1.0.3-f09d2d57f2-36aa0f11ef.zip/node_modules/builtins/", - "packageDependencies": [ - ["builtins", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["bytes", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/bytes-npm-3.0.0-19be09472d-98d6c0ab36.zip/node_modules/bytes/", - "packageDependencies": [ - ["bytes", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cacache", [ - ["npm:15.0.6", { - "packageLocation": "./.yarn/cache/cacache-npm-15.0.6-a8e1454dc8-14a42beaca.zip/node_modules/cacache/", - "packageDependencies": [ - ["cacache", "npm:15.0.6"], - ["@npmcli/move-file", "npm:1.1.2"], - ["chownr", "npm:2.0.0"], - ["fs-minipass", "npm:2.1.0"], - ["glob", "npm:7.1.7"], - ["infer-owner", "npm:1.0.4"], - ["lru-cache", "npm:6.0.0"], - ["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:1.0.4"], - ["p-map", "npm:4.0.0"], - ["promise-inflight", "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1"], - ["rimraf", "npm:3.0.2"], - ["ssri", "npm:8.0.1"], - ["tar", "npm:6.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.4", { - "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-cb5849f584.zip/node_modules/cacheable-lookup/", - "packageDependencies": [ - ["cacheable-lookup", "npm:5.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["cacheable-request", [ - ["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.2.0"], - ["http-cache-semantics", "npm:4.1.0"], - ["keyv", "npm:3.1.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.2.0"], - ["http-cache-semantics", "npm:4.1.0"], - ["keyv", "npm:4.0.3"], - ["lowercase-keys", "npm:2.0.0"], - ["normalize-url", "npm:4.5.0"], - ["responselike", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["call-bind", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/call-bind-npm-1.0.2-c957124861-18cc6107a1.zip/node_modules/call-bind/", - "packageDependencies": [ - ["call-bind", "npm:1.0.2"], - ["function-bind", "npm:1.1.1"], - ["get-intrinsic", "npm:1.1.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", - }] - ]], - ["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: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.2.0", { - "packageLocation": "./.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-654700600a.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:6.2.0"] - ], - "linkType": "HARD", - }], - ["npm:6.3.0", { - "packageLocation": "./.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-eccf298950.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:6.3.0"] - ], - "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", - }], - ["npm:6.2.2", { - "packageLocation": "./.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-d4bd5fa524.zip/node_modules/camelcase-keys/", - "packageDependencies": [ - ["camelcase-keys", "npm:6.2.2"], - ["camelcase", "npm:5.3.1"], - ["map-obj", "npm:4.2.1"], - ["quick-lru", "npm:4.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-lite", [ - ["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", - }], - ["npm:1.0.30001662", { - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001662-4f7a06daf5-06d07cf2f9.zip/node_modules/caniuse-lite/", - "packageDependencies": [ - ["caniuse-lite", "npm:1.0.30001662"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["chalk", [ - ["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.3.0"], - ["supports-color", "npm:7.2.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.3.0"], - ["supports-color", "npm:7.2.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-445c12db7a.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:4.1.1"], - ["ansi-styles", "npm:4.3.0"], - ["supports-color", "npm:7.2.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.2", { - "packageLocation": "./.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-e3901b97d9.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:4.1.2"], - ["ansi-styles", "npm:4.3.0"], - ["supports-color", "npm:7.2.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", - }] - ]], - ["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: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.2"], - ["braces", "npm:3.0.2"], - ["fsevents", "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea"], - ["glob-parent", "npm:5.1.2"], - ["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: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-launcher", [ - ["npm:0.15.2", { - "packageLocation": "./.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-2472213b98.zip/node_modules/chrome-launcher/", - "packageDependencies": [ - ["chrome-launcher", "npm:0.15.2"], - ["@types/node", "npm:15.3.0"], - ["escape-string-regexp", "npm:4.0.0"], - ["is-wsl", "npm:2.2.0"], - ["lighthouse-logger", "npm:1.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["ci-info", [ - ["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", - }], - ["npm:3.9.0", { - "packageLocation": "./.yarn/cache/ci-info-npm-3.9.0-646784ca0e-446b2a4ea1.zip/node_modules/ci-info/", - "packageDependencies": [ - ["ci-info", "npm:3.9.0"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["cli-boxes", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/cli-boxes-npm-2.2.1-7125a5ba44-1d39df5628.zip/node_modules/cli-boxes/", - "packageDependencies": [ - ["cli-boxes", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["cli-cursor", [ - ["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-spinners", [ - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/cli-spinners-npm-2.6.0-57d233343c-653ba6818e.zip/node_modules/cli-spinners/", - "packageDependencies": [ - ["cli-spinners", "npm:2.6.0"] - ], - "linkType": "HARD", - }], - ["npm:2.9.2", { - "packageLocation": "./.yarn/cache/cli-spinners-npm-2.9.2-be9c08efee-0c0db5d11c.zip/node_modules/cli-spinners/", - "packageDependencies": [ - ["cli-spinners", "npm:2.9.2"] - ], - "linkType": "HARD", - }] - ]], - ["cli-width", [ - ["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", - }] - ]], - ["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.2"], - ["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.2"], - ["strip-ansi", "npm:6.0.0"], - ["wrap-ansi", "npm:7.0.0"] - ], - "linkType": "HARD", - }], - ["npm:8.0.1", { - "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-45cab52b05.zip/node_modules/cliui/", - "packageDependencies": [ - ["cliui", "npm:8.0.1"], - ["string-width", "npm:4.2.2"], - ["strip-ansi", "npm:6.0.1"], - ["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", - }] - ]], - ["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-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", - }] - ]], - ["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", - }] - ]], - ["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", - }] - ]], - ["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-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", - }] - ]], - ["colorette", [ - ["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", - }], - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip/node_modules/colorette/", - "packageDependencies": [ - ["colorette", "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", - }] - ]], - ["command-exists", [ - ["npm:1.2.9", { - "packageLocation": "./.yarn/cache/command-exists-npm-1.2.9-cc51a1f78a-c682ee2215.zip/node_modules/command-exists/", - "packageDependencies": [ - ["command-exists", "npm:1.2.9"] - ], - "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:9.5.0", { - "packageLocation": "./.yarn/cache/commander-npm-9.5.0-993b3f2434-d6b8793132.zip/node_modules/commander/", - "packageDependencies": [ - ["commander", "npm:9.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["commitlint", [ - ["npm:12.1.4", { - "packageLocation": "./.yarn/cache/commitlint-npm-12.1.4-4c404fa1f9-9514369684.zip/node_modules/commitlint/", - "packageDependencies": [ - ["commitlint", "npm:12.1.4"], - ["@commitlint/cli", "npm:12.1.4"], - ["@commitlint/types", "npm:12.1.4"] - ], - "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", - }] - ]], - ["compare-func", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-825690b828.zip/node_modules/compare-func/", - "packageDependencies": [ - ["compare-func", "npm:2.0.0"], - ["array-ify", "npm:1.0.0"], - ["dot-prop", "npm:5.3.0"] - ], - "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", - }] - ]], - ["compressible", [ - ["npm:2.0.18", { - "packageLocation": "./.yarn/cache/compressible-npm-2.0.18-ee5ab04d88-8ac178b6ef.zip/node_modules/compressible/", - "packageDependencies": [ - ["compressible", "npm:2.0.18"], - ["mime-db", "npm:1.53.0"] - ], - "linkType": "HARD", - }] - ]], - ["compression", [ - ["npm:1.7.4", { - "packageLocation": "./.yarn/cache/compression-npm-1.7.4-e0cd6afa69-8f53567770.zip/node_modules/compression/", - "packageDependencies": [ - ["compression", "npm:1.7.4"], - ["accepts", "npm:1.3.8"], - ["bytes", "npm:3.0.0"], - ["compressible", "npm:2.0.18"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["on-headers", "npm:1.0.2"], - ["safe-buffer", "npm:5.1.2"], - ["vary", "npm:1.1.2"] - ], - "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:2.0.0", { - "packageLocation": "./.yarn/cache/concat-stream-npm-2.0.0-8bb2ad5aa0-286f55bb6a.zip/node_modules/concat-stream/", - "packageDependencies": [ - ["concat-stream", "npm:2.0.0"], - ["buffer-from", "npm:1.1.1"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"], - ["typedarray", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["configstore", [ - ["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.3.0"], - ["graceful-fs", "npm:4.2.6"], - ["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", - }] - ]], - ["connect", [ - ["npm:3.7.0", { - "packageLocation": "./.yarn/cache/connect-npm-3.7.0-25ccb085cc-25b827ceb4.zip/node_modules/connect/", - "packageDependencies": [ - ["connect", "npm:3.7.0"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["finalhandler", "npm:1.1.2"], - ["parseurl", "npm:1.3.3"], - ["utils-merge", "npm:1.0.1"] - ], - "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", - }] - ]], - ["conventional-changelog", [ - ["npm:3.1.24", { - "packageLocation": "./.yarn/cache/conventional-changelog-npm-3.1.24-11de891016-bf255c433c.zip/node_modules/conventional-changelog/", - "packageDependencies": [ - ["conventional-changelog", "npm:3.1.24"], - ["conventional-changelog-angular", "npm:5.0.12"], - ["conventional-changelog-atom", "npm:2.0.8"], - ["conventional-changelog-codemirror", "npm:2.0.8"], - ["conventional-changelog-conventionalcommits", "npm:4.6.0"], - ["conventional-changelog-core", "npm:4.2.2"], - ["conventional-changelog-ember", "npm:2.0.9"], - ["conventional-changelog-eslint", "npm:3.0.9"], - ["conventional-changelog-express", "npm:2.0.6"], - ["conventional-changelog-jquery", "npm:3.0.11"], - ["conventional-changelog-jshint", "npm:2.0.9"], - ["conventional-changelog-preset-loader", "npm:2.3.4"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-angular", [ - ["npm:5.0.12", { - "packageLocation": "./.yarn/cache/conventional-changelog-angular-npm-5.0.12-0dd88eb3f8-984545414f.zip/node_modules/conventional-changelog-angular/", - "packageDependencies": [ - ["conventional-changelog-angular", "npm:5.0.12"], - ["compare-func", "npm:2.0.0"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-atom", [ - ["npm:2.0.8", { - "packageLocation": "./.yarn/cache/conventional-changelog-atom-npm-2.0.8-ab61571c15-ac0528755b.zip/node_modules/conventional-changelog-atom/", - "packageDependencies": [ - ["conventional-changelog-atom", "npm:2.0.8"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-codemirror", [ - ["npm:2.0.8", { - "packageLocation": "./.yarn/cache/conventional-changelog-codemirror-npm-2.0.8-342d72f6a3-7e462736a9.zip/node_modules/conventional-changelog-codemirror/", - "packageDependencies": [ - ["conventional-changelog-codemirror", "npm:2.0.8"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-conventionalcommits", [ - ["npm:4.6.0", { - "packageLocation": "./.yarn/cache/conventional-changelog-conventionalcommits-npm-4.6.0-d399b251bd-60114ccba2.zip/node_modules/conventional-changelog-conventionalcommits/", - "packageDependencies": [ - ["conventional-changelog-conventionalcommits", "npm:4.6.0"], - ["compare-func", "npm:2.0.0"], - ["lodash", "npm:4.17.21"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-core", [ - ["npm:4.2.2", { - "packageLocation": "./.yarn/cache/conventional-changelog-core-npm-4.2.2-2e3e4e3239-919270a789.zip/node_modules/conventional-changelog-core/", - "packageDependencies": [ - ["conventional-changelog-core", "npm:4.2.2"], - ["add-stream", "npm:1.0.0"], - ["conventional-changelog-writer", "npm:4.1.0"], - ["conventional-commits-parser", "npm:3.2.1"], - ["dateformat", "npm:3.0.3"], - ["get-pkg-repo", "npm:1.4.0"], - ["git-raw-commits", "npm:2.0.10"], - ["git-remote-origin-url", "npm:2.0.0"], - ["git-semver-tags", "npm:4.1.1"], - ["lodash", "npm:4.17.21"], - ["normalize-package-data", "npm:3.0.2"], - ["q", "npm:1.5.1"], - ["read-pkg", "npm:3.0.0"], - ["read-pkg-up", "npm:3.0.0"], - ["shelljs", "npm:0.8.4"], - ["through2", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-ember", [ - ["npm:2.0.9", { - "packageLocation": "./.yarn/cache/conventional-changelog-ember-npm-2.0.9-2276834930-8cee3be6ae.zip/node_modules/conventional-changelog-ember/", - "packageDependencies": [ - ["conventional-changelog-ember", "npm:2.0.9"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-eslint", [ - ["npm:3.0.9", { - "packageLocation": "./.yarn/cache/conventional-changelog-eslint-npm-3.0.9-62c523a901-de3a501842.zip/node_modules/conventional-changelog-eslint/", - "packageDependencies": [ - ["conventional-changelog-eslint", "npm:3.0.9"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-express", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/conventional-changelog-express-npm-2.0.6-8a37ff0369-98e065eb5e.zip/node_modules/conventional-changelog-express/", - "packageDependencies": [ - ["conventional-changelog-express", "npm:2.0.6"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-jquery", [ - ["npm:3.0.11", { - "packageLocation": "./.yarn/cache/conventional-changelog-jquery-npm-3.0.11-d4ff10c6e2-c11b414db8.zip/node_modules/conventional-changelog-jquery/", - "packageDependencies": [ - ["conventional-changelog-jquery", "npm:3.0.11"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-jshint", [ - ["npm:2.0.9", { - "packageLocation": "./.yarn/cache/conventional-changelog-jshint-npm-2.0.9-ef6b791bee-d98f58017b.zip/node_modules/conventional-changelog-jshint/", - "packageDependencies": [ - ["conventional-changelog-jshint", "npm:2.0.9"], - ["compare-func", "npm:2.0.0"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-preset-loader", [ - ["npm:2.3.4", { - "packageLocation": "./.yarn/cache/conventional-changelog-preset-loader-npm-2.3.4-a907f2e49a-7cd7ad0429.zip/node_modules/conventional-changelog-preset-loader/", - "packageDependencies": [ - ["conventional-changelog-preset-loader", "npm:2.3.4"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-changelog-writer", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/conventional-changelog-writer-npm-4.1.0-a660c822b9-a99a562779.zip/node_modules/conventional-changelog-writer/", - "packageDependencies": [ - ["conventional-changelog-writer", "npm:4.1.0"], - ["compare-func", "npm:2.0.0"], - ["conventional-commits-filter", "npm:2.0.7"], - ["dateformat", "npm:3.0.3"], - ["handlebars", "npm:4.7.7"], - ["json-stringify-safe", "npm:5.0.1"], - ["lodash", "npm:4.17.21"], - ["meow", "npm:8.1.2"], - ["semver", "npm:6.3.0"], - ["split", "npm:1.0.1"], - ["through2", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-commits-filter", [ - ["npm:2.0.7", { - "packageLocation": "./.yarn/cache/conventional-commits-filter-npm-2.0.7-8762ee3bfa-24e4e69c26.zip/node_modules/conventional-commits-filter/", - "packageDependencies": [ - ["conventional-commits-filter", "npm:2.0.7"], - ["lodash.ismatch", "npm:4.4.0"], - ["modify-values", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-commits-parser", [ - ["npm:3.2.1", { - "packageLocation": "./.yarn/cache/conventional-commits-parser-npm-3.2.1-129ed8dab0-9a8d4aaab5.zip/node_modules/conventional-commits-parser/", - "packageDependencies": [ - ["conventional-commits-parser", "npm:3.2.1"], - ["JSONStream", "npm:1.3.5"], - ["is-text-path", "npm:1.0.1"], - ["lodash", "npm:4.17.21"], - ["meow", "npm:8.1.2"], - ["split2", "npm:3.2.2"], - ["through2", "npm:4.0.2"], - ["trim-off-newlines", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["conventional-recommended-bump", [ - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/conventional-recommended-bump-npm-6.1.0-18a6db0ce9-ff9483c01d.zip/node_modules/conventional-recommended-bump/", - "packageDependencies": [ - ["conventional-recommended-bump", "npm:6.1.0"], - ["concat-stream", "npm:2.0.0"], - ["conventional-changelog-preset-loader", "npm:2.3.4"], - ["conventional-commits-filter", "npm:2.0.7"], - ["conventional-commits-parser", "npm:3.2.1"], - ["git-raw-commits", "npm:2.0.10"], - ["git-semver-tags", "npm:4.1.1"], - ["meow", "npm:8.1.2"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["convert-source-map", [ - ["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", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-ae64c3be08.zip/node_modules/convert-source-map/", - "packageDependencies": [ - ["convert-source-map", "npm:2.0.0"] - ], - "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", - }] - ]], - ["core", [ - ["workspace:.", { - "packageLocation": "./", - "packageDependencies": [ - ["core", "workspace:."], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/preset-env", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.14.2"], - ["@babel/preset-typescript", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.0"], - ["@babel/runtime", "npm:7.14.0"], - ["@commitlint/cli", "npm:12.1.4"], - ["@commitlint/config-conventional", "npm:12.1.4"], - ["@react-native-community/eslint-config", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:2.0.0"], - ["@react-native-community/eslint-plugin", "npm:1.1.0"], - ["@tsconfig/react-native", "npm:1.0.3"], - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@typescript-eslint/parser", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["commitlint", "npm:12.1.4"], - ["eslint", "npm:7.26.0"], - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"], - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"], - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"], - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"], - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"], - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"], - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"], - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"], - ["husky", "npm:6.0.0"], - ["jest", "npm:26.6.3"], - ["prettier", "npm:2.3.0"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["core-js", [ - ["npm:3.12.1", { - "packageLocation": "./.yarn/unplugged/core-js-npm-3.12.1-6d1063bc86/node_modules/core-js/", - "packageDependencies": [ - ["core-js", "npm:3.12.1"] - ], - "linkType": "HARD", - }] - ]], - ["core-js-compat", [ - ["npm:3.12.1", { - "packageLocation": "./.yarn/cache/core-js-compat-npm-3.12.1-b22ed3c2b0-c1c510bf5d.zip/node_modules/core-js-compat/", - "packageDependencies": [ - ["core-js-compat", "npm:3.12.1"], - ["browserslist", "npm:4.16.6"], - ["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", - }] - ]], - ["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.1"], - ["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.2.0"], - ["path-type", "npm:4.0.0"], - ["yaml", "npm:1.10.2"] - ], - "linkType": "HARD", - }] - ]], - ["cross-spawn", [ - ["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", - }] - ]], - ["crypto-random-string", [ - ["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-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-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", - }] - ]], - ["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:3.0.8", { - "packageLocation": "./.yarn/cache/csstype-npm-3.0.8-99cf1f37ff-e15233592a.zip/node_modules/csstype/", - "packageDependencies": [ - ["csstype", "npm:3.0.8"] - ], - "linkType": "HARD", - }], - ["npm:3.0.9", { - "packageLocation": "./.yarn/cache/csstype-npm-3.0.9-0801c4a6d7-e5d6ebc458.zip/node_modules/csstype/", - "packageDependencies": [ - ["csstype", "npm:3.0.9"] - ], - "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", - }] - ]], - ["dargs", [ - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/dargs-npm-7.0.0-62701e0c7a-ca99396d24.zip/node_modules/dargs/", - "packageDependencies": [ - ["dargs", "npm:7.0.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-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.5"], - ["whatwg-mimetype", "npm:2.3.0"], - ["whatwg-url", "npm:8.5.0"] - ], - "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", - }] - ]], - ["dayjs", [ - ["npm:1.11.13", { - "packageLocation": "./.yarn/cache/dayjs-npm-1.11.13-d478bb9479-79bdff8e86.zip/node_modules/dayjs/", - "packageDependencies": [ - ["dayjs", "npm:1.11.13"] - ], - "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: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", - }], - ["npm:4.3.7", { - "packageLocation": "./.yarn/cache/debug-npm-4.3.7-385645adf9-f88158550c.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:4.3.7"] - ], - "linkType": "SOFT", - }], - ["virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-0a02903db3/0/cache/debug-npm-4.3.7-385645adf9-f88158550c.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:1b9e2a314c35921e1b14ca2d2c7664f165a5c0f3f02ca1e30357c6546941724b55e5624ce0d5b4790874f2259ae08ae26d9f95d2cdbb84aae50aa451a2a572cd#npm:4.3.7"], - ["ms", "npm:2.1.3"], - ["supports-color", null] - ], - "packagePeers": [ - "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:4c65437ec8a73b5da90307695a11dba836273a981aedac66a347069b9fee1593434325a3318288f83033c53b08a591678c4fe5b1f1003342e1ccdf54592189ab#npm:4.2.0", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-12e95bfe3d/0/cache/debug-npm-4.2.0-9392baba7e-dcfb8ede26.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:4c65437ec8a73b5da90307695a11dba836273a981aedac66a347069b9fee1593434325a3318288f83033c53b08a591678c4fe5b1f1003342e1ccdf54592189ab#npm:4.2.0"], - ["ms", "npm:2.1.2"], - ["supports-color", null] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-8ddc51505b/0/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["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", - }] - ]], - ["decamelize-keys", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/decamelize-keys-npm-1.1.0-75168ffadd-dbfe6d5948.zip/node_modules/decamelize-keys/", - "packageDependencies": [ - ["decamelize-keys", "npm:1.1.0"], - ["decamelize", "npm:1.2.0"], - ["map-obj", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["decimal.js", [ - ["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: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", - }] - ]], - ["dedent", [ - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-05c18541a4.zip/node_modules/dedent/", - "packageDependencies": [ - ["dedent", "npm:0.7.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: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", - }], - ["npm:4.3.1", { - "packageLocation": "./.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-59d9e3ef18.zip/node_modules/deepmerge/", - "packageDependencies": [ - ["deepmerge", "npm:4.3.1"] - ], - "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.1", { - "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-6641e63777.zip/node_modules/defer-to-connect/", - "packageDependencies": [ - ["defer-to-connect", "npm:2.0.1"] - ], - "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", - }] - ]], - ["del", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/del-npm-6.0.0-fb1f14b406-da72707c92.zip/node_modules/del/", - "packageDependencies": [ - ["del", "npm:6.0.0"], - ["globby", "npm:11.0.3"], - ["graceful-fs", "npm:4.2.6"], - ["is-glob", "npm:4.0.1"], - ["is-path-cwd", "npm:2.2.0"], - ["is-path-inside", "npm:3.0.3"], - ["p-map", "npm:4.0.0"], - ["rimraf", "npm:3.0.2"], - ["slash", "npm:3.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", - }] - ]], - ["denodeify", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/denodeify-npm-1.2.1-ea99c72a1c-c219504b41.zip/node_modules/denodeify/", - "packageDependencies": [ - ["denodeify", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["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", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/depd-npm-2.0.0-b6c51a4b43-20726d843f.zip/node_modules/depd/", - "packageDependencies": [ - ["depd", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["deprecated-obj", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/deprecated-obj-npm-2.0.0-a2d0810be4-0f094af18e.zip/node_modules/deprecated-obj/", - "packageDependencies": [ - ["deprecated-obj", "npm:2.0.0"], - ["flat", "npm:5.0.2"], - ["lodash", "npm:4.17.21"] - ], - "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", - }] - ]], - ["destroy", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/destroy-npm-1.2.0-6a511802e2-fea2c89e4b.zip/node_modules/destroy/", - "packageDependencies": [ - ["destroy", "npm:1.2.0"] - ], - "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", - }] - ]], - ["diff-sequences", [ - ["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", - }] - ]], - ["dir-glob", [ - ["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:2.1.0", { - "packageLocation": "./.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-4aa55e4675.zip/node_modules/doctrine/", - "packageDependencies": [ - ["doctrine", "npm:2.1.0"], - ["esutils", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["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:1.3.1", { - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.3.1-fcf2b18c0f-b5260cc103.zip/node_modules/dom-serializer/", - "packageDependencies": [ - ["dom-serializer", "npm:1.3.1"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.0"], - ["entities", "npm:2.2.0"] - ], - "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.2.0"], - ["domhandler", "npm:4.2.0"], - ["entities", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["domelementtype", [ - ["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: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", - }], - ["npm:4.2.2", { - "packageLocation": "./.yarn/cache/domhandler-npm-4.2.2-9a6cc9317e-bc4dd6f6a1.zip/node_modules/domhandler/", - "packageDependencies": [ - ["domhandler", "npm:4.2.2"], - ["domelementtype", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["domutils", [ - ["npm:2.8.0", { - "packageLocation": "./.yarn/cache/domutils-npm-2.8.0-0325139e5c-f1d0cfab06.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:2.8.0"], - ["dom-serializer", "npm:1.3.1"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["dot-case", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/dot-case-npm-3.0.4-09675b5521-2d93626464.zip/node_modules/dot-case/", - "packageDependencies": [ - ["dot-case", "npm:3.0.4"], - ["no-case", "npm:3.0.4"], - ["tslib", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["dot-prop", [ - ["npm:5.3.0", { - "packageLocation": "./.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-76e6693d88.zip/node_modules/dot-prop/", - "packageDependencies": [ - ["dot-prop", "npm:5.3.0"], - ["is-obj", "npm:2.0.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", - }] - ]], - ["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", - }] - ]], - ["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:3.1.6", { - "packageLocation": "./.yarn/cache/ejs-npm-3.1.6-03db39fd15-cb77a9368e.zip/node_modules/ejs/", - "packageDependencies": [ - ["ejs", "npm:3.1.6"], - ["jake", "npm:10.8.2"] - ], - "linkType": "HARD", - }] - ]], - ["electron-to-chromium", [ - ["npm:1.3.728", { - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.728-19bf8572c2-0ef494c972.zip/node_modules/electron-to-chromium/", - "packageDependencies": [ - ["electron-to-chromium", "npm:1.3.728"] - ], - "linkType": "HARD", - }], - ["npm:1.5.27", { - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.5.27-03ccf9f126-bb2dd1f4d9.zip/node_modules/electron-to-chromium/", - "packageDependencies": [ - ["electron-to-chromium", "npm:1.5.27"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/encodeurl-npm-2.0.0-3660bcc92a-1fbc6b83fb.zip/node_modules/encodeurl/", - "packageDependencies": [ - ["encodeurl", "npm:2.0.0"] - ], - "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.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", - }] - ]], - ["enquirer", [ - ["npm:2.3.6", { - "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-7899175762-e249bb97bf.zip/node_modules/enquirer/", - "packageDependencies": [ - ["enquirer", "npm:2.3.6"], - ["ansi-colors", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["entities", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-ebd62621a1.zip/node_modules/entities/", - "packageDependencies": [ - ["entities", "npm:2.2.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/entities-npm-3.0.1-21eeb201ba-563426e9ab.zip/node_modules/entities/", - "packageDependencies": [ - ["entities", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["env-paths", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/env-paths-npm-2.2.1-7c7577428c-9579868bc7.zip/node_modules/env-paths/", - "packageDependencies": [ - ["env-paths", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["envinfo", [ - ["npm:7.14.0", { - "packageLocation": "./.yarn/cache/envinfo-npm-7.14.0-624fecc5a5-7da7d58567.zip/node_modules/envinfo/", - "packageDependencies": [ - ["envinfo", "npm:7.14.0"] - ], - "linkType": "HARD", - }] - ]], - ["err-code", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-14e09e9990.zip/node_modules/err-code/", - "packageDependencies": [ - ["err-code", "npm:2.0.3"] - ], - "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", - }] - ]], - ["error-stack-parser", [ - ["npm:2.1.4", { - "packageLocation": "./.yarn/cache/error-stack-parser-npm-2.1.4-5b9f7fc0c2-a43085903a.zip/node_modules/error-stack-parser/", - "packageDependencies": [ - ["error-stack-parser", "npm:2.1.4"], - ["stackframe", "npm:1.3.4"] - ], - "linkType": "HARD", - }] - ]], - ["errorhandler", [ - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/errorhandler-npm-1.5.1-bbeb9f9d1b-582d9becf3.zip/node_modules/errorhandler/", - "packageDependencies": [ - ["errorhandler", "npm:1.5.1"], - ["accepts", "npm:1.3.8"], - ["escape-html", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["es-abstract", [ - ["npm:1.18.0", { - "packageLocation": "./.yarn/cache/es-abstract-npm-1.18.0-ac2faa8a98-019fa7c51e.zip/node_modules/es-abstract/", - "packageDependencies": [ - ["es-abstract", "npm:1.18.0"], - ["call-bind", "npm:1.0.2"], - ["es-to-primitive", "npm:1.2.1"], - ["function-bind", "npm:1.1.1"], - ["get-intrinsic", "npm:1.1.1"], - ["has", "npm:1.0.3"], - ["has-symbols", "npm:1.0.2"], - ["is-callable", "npm:1.2.3"], - ["is-negative-zero", "npm:2.0.1"], - ["is-regex", "npm:1.1.3"], - ["is-string", "npm:1.0.6"], - ["object-inspect", "npm:1.10.3"], - ["object-keys", "npm:1.1.1"], - ["object.assign", "npm:4.1.2"], - ["string.prototype.trimend", "npm:1.0.4"], - ["string.prototype.trimstart", "npm:1.0.4"], - ["unbox-primitive", "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.3"], - ["is-date-object", "npm:1.0.4"], - ["is-symbol", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["escalade", [ - ["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", - }], - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/escalade-npm-3.2.0-19b50dd48f-34f72e1a15.zip/node_modules/escalade/", - "packageDependencies": [ - ["escalade", "npm:3.2.0"] - ], - "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: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:7.26.0", { - "packageLocation": "./.yarn/cache/eslint-npm-7.26.0-0bcc96e5d3-08f99befd7.zip/node_modules/eslint/", - "packageDependencies": [ - ["eslint", "npm:7.26.0"], - ["@babel/code-frame", "npm:7.12.11"], - ["@eslint/eslintrc", "npm:0.4.1"], - ["ajv", "npm:6.12.6"], - ["chalk", "npm:4.1.1"], - ["cross-spawn", "npm:7.0.3"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["doctrine", "npm:3.0.0"], - ["enquirer", "npm:2.3.6"], - ["eslint-scope", "npm:5.1.1"], - ["eslint-utils", "npm:2.1.0"], - ["eslint-visitor-keys", "npm:2.1.0"], - ["espree", "npm:7.3.1"], - ["esquery", "npm:1.4.0"], - ["esutils", "npm:2.0.3"], - ["file-entry-cache", "npm:6.0.1"], - ["functional-red-black-tree", "npm:1.0.1"], - ["glob-parent", "npm:5.1.2"], - ["globals", "npm:13.8.0"], - ["ignore", "npm:4.0.6"], - ["import-fresh", "npm:3.3.0"], - ["imurmurhash", "npm:0.1.4"], - ["is-glob", "npm:4.0.1"], - ["js-yaml", "npm:3.14.1"], - ["json-stable-stringify-without-jsonify", "npm:1.0.1"], - ["levn", "npm:0.4.1"], - ["lodash", "npm:4.17.21"], - ["minimatch", "npm:3.0.4"], - ["natural-compare", "npm:1.4.0"], - ["optionator", "npm:0.9.1"], - ["progress", "npm:2.0.3"], - ["regexpp", "npm:3.1.0"], - ["semver", "npm:7.3.5"], - ["strip-ansi", "npm:6.0.0"], - ["strip-json-comments", "npm:3.1.1"], - ["table", "npm:6.7.1"], - ["text-table", "npm:0.2.0"], - ["v8-compile-cache", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-config-prettier", [ - ["npm:6.15.0", { - "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-a790bc6169.zip/node_modules/eslint-config-prettier/", - "packageDependencies": [ - ["eslint-config-prettier", "npm:6.15.0"] - ], - "linkType": "SOFT", - }], - ["npm:8.3.0", { - "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-94ccbb50fb.zip/node_modules/eslint-config-prettier/", - "packageDependencies": [ - ["eslint-config-prettier", "npm:8.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0", { - "packageLocation": "./.yarn/$$virtual/eslint-config-prettier-virtual-1d1df074ac/0/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-94ccbb50fb.zip/node_modules/eslint-config-prettier/", - "packageDependencies": [ - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0", { - "packageLocation": "./.yarn/$$virtual/eslint-config-prettier-virtual-4dfa352130/0/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-a790bc6169.zip/node_modules/eslint-config-prettier/", - "packageDependencies": [ - ["eslint-config-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:6.15.0"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"], - ["get-stdin", "npm:6.0.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-compat", [ - ["npm:3.9.0", { - "packageLocation": "./.yarn/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-3650cc2665.zip/node_modules/eslint-plugin-compat/", - "packageDependencies": [ - ["eslint-plugin-compat", "npm:3.9.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-compat-virtual-bc4a87f962/0/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-3650cc2665.zip/node_modules/eslint-plugin-compat/", - "packageDependencies": [ - ["eslint-plugin-compat", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.9.0"], - ["@mdn/browser-compat-data", "npm:2.0.7"], - ["@types/eslint", null], - ["ast-metadata-inferer", "npm:0.4.0"], - ["browserslist", "npm:4.16.6"], - ["caniuse-lite", "npm:1.0.30001228"], - ["core-js", "npm:3.12.1"], - ["eslint", "npm:7.26.0"], - ["find-up", "npm:4.1.0"], - ["lodash.memoize", "npm:4.1.2"], - ["semver", "npm:7.3.2"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-eslint-comments", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-8630a0467b.zip/node_modules/eslint-plugin-eslint-comments/", - "packageDependencies": [ - ["eslint-plugin-eslint-comments", "npm:3.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-eslint-comments-virtual-7a2370aad3/0/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-8630a0467b.zip/node_modules/eslint-plugin-eslint-comments/", - "packageDependencies": [ - ["eslint-plugin-eslint-comments", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.2.0"], - ["@types/eslint", null], - ["escape-string-regexp", "npm:1.0.5"], - ["eslint", "npm:7.26.0"], - ["ignore", "npm:5.1.8"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-flowtype", [ - ["npm:2.50.3", { - "packageLocation": "./.yarn/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-528fc222fd.zip/node_modules/eslint-plugin-flowtype/", - "packageDependencies": [ - ["eslint-plugin-flowtype", "npm:2.50.3"] - ], - "linkType": "SOFT", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-flowtype-virtual-3b6dc06a48/0/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-528fc222fd.zip/node_modules/eslint-plugin-flowtype/", - "packageDependencies": [ - ["eslint-plugin-flowtype", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:2.50.3"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"], - ["lodash", "npm:4.17.21"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-jest", [ - ["npm:22.4.1", { - "packageLocation": "./.yarn/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-95b8e9dc6e.zip/node_modules/eslint-plugin-jest/", - "packageDependencies": [ - ["eslint-plugin-jest", "npm:22.4.1"] - ], - "linkType": "SOFT", - }], - ["npm:24.3.6", { - "packageLocation": "./.yarn/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-13f4522cd8.zip/node_modules/eslint-plugin-jest/", - "packageDependencies": [ - ["eslint-plugin-jest", "npm:24.3.6"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-jest-virtual-684204b55b/0/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-13f4522cd8.zip/node_modules/eslint-plugin-jest/", - "packageDependencies": [ - ["eslint-plugin-jest", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:24.3.6"], - ["@types/eslint", null], - ["@types/typescript-eslint__eslint-plugin", null], - ["@typescript-eslint/eslint-plugin", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.23.0"], - ["@typescript-eslint/experimental-utils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:4.23.0"], - ["eslint", "npm:7.26.0"] - ], - "packagePeers": [ - "@types/eslint", - "@types/typescript-eslint__eslint-plugin", - "@typescript-eslint/eslint-plugin", - "eslint" - ], - "linkType": "HARD", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-jest-virtual-3f75bba53e/0/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-95b8e9dc6e.zip/node_modules/eslint-plugin-jest/", - "packageDependencies": [ - ["eslint-plugin-jest", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:22.4.1"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-prettier", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-6f22a63a79.zip/node_modules/eslint-plugin-prettier/", - "packageDependencies": [ - ["eslint-plugin-prettier", "npm:3.1.2"] - ], - "linkType": "SOFT", - }], - ["npm:3.4.0", { - "packageLocation": "./.yarn/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-322be1af8c.zip/node_modules/eslint-plugin-prettier/", - "packageDependencies": [ - ["eslint-plugin-prettier", "npm:3.4.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-prettier-virtual-aabdf87e47/0/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-322be1af8c.zip/node_modules/eslint-plugin-prettier/", - "packageDependencies": [ - ["eslint-plugin-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.4.0"], - ["@types/eslint", null], - ["@types/prettier", null], - ["eslint", "npm:7.26.0"], - ["eslint-config-prettier", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:8.3.0"], - ["prettier", "npm:2.3.0"], - ["prettier-linter-helpers", "npm:1.0.0"] - ], - "packagePeers": [ - "@types/eslint", - "@types/prettier", - "eslint-config-prettier", - "eslint", - "prettier" - ], - "linkType": "HARD", - }], - ["virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-prettier-virtual-d779e39a08/0/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-6f22a63a79.zip/node_modules/eslint-plugin-prettier/", - "packageDependencies": [ - ["eslint-plugin-prettier", "virtual:bc7af5d9ca8111e21699f69a9dd147970156c6785bb5db80971893ca17b6908b20bf7ed04e1c6eec3846706f786d85998927af51968edf956a2f69145ff91826#npm:3.1.2"], - ["@types/eslint", null], - ["@types/prettier", null], - ["eslint", "npm:7.26.0"], - ["prettier", "npm:2.3.0"], - ["prettier-linter-helpers", "npm:1.0.0"] - ], - "packagePeers": [ - "@types/eslint", - "@types/prettier", - "eslint", - "prettier" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-react", [ - ["npm:7.23.2", { - "packageLocation": "./.yarn/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-0607db70fe.zip/node_modules/eslint-plugin-react/", - "packageDependencies": [ - ["eslint-plugin-react", "npm:7.23.2"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-virtual-f55f3e4928/0/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-0607db70fe.zip/node_modules/eslint-plugin-react/", - "packageDependencies": [ - ["eslint-plugin-react", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.23.2"], - ["@types/eslint", null], - ["array-includes", "npm:3.1.3"], - ["array.prototype.flatmap", "npm:1.2.4"], - ["doctrine", "npm:2.1.0"], - ["eslint", "npm:7.26.0"], - ["has", "npm:1.0.3"], - ["jsx-ast-utils", "npm:3.2.0"], - ["minimatch", "npm:3.0.4"], - ["object.entries", "npm:1.1.3"], - ["object.fromentries", "npm:2.0.4"], - ["object.values", "npm:1.1.3"], - ["prop-types", "npm:15.7.2"], - ["resolve", "patch:resolve@npm%3A2.0.0-next.3#builtin::version=2.0.0-next.3&hash=3388aa"], - ["string.prototype.matchall", "npm:4.0.4"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-react-hooks", [ - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-5378d16b5a.zip/node_modules/eslint-plugin-react-hooks/", - "packageDependencies": [ - ["eslint-plugin-react-hooks", "npm:4.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-hooks-virtual-8577ff6e25/0/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-5378d16b5a.zip/node_modules/eslint-plugin-react-hooks/", - "packageDependencies": [ - ["eslint-plugin-react-hooks", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:4.2.0"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-react-native", [ - ["npm:3.10.0", { - "packageLocation": "./.yarn/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-b99cabff06.zip/node_modules/eslint-plugin-react-native/", - "packageDependencies": [ - ["eslint-plugin-react-native", "npm:3.10.0"] - ], - "linkType": "SOFT", - }], - ["virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0", { - "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-native-virtual-dcf9298259/0/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-b99cabff06.zip/node_modules/eslint-plugin-react-native/", - "packageDependencies": [ - ["eslint-plugin-react-native", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:3.10.0"], - ["@babel/traverse", "npm:7.14.2"], - ["@types/eslint", null], - ["eslint", "npm:7.26.0"], - ["eslint-plugin-react-native-globals", "npm:0.1.2"] - ], - "packagePeers": [ - "@types/eslint", - "eslint" - ], - "linkType": "HARD", - }] - ]], - ["eslint-plugin-react-native-globals", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/eslint-plugin-react-native-globals-npm-0.1.2-1a654c3f21-1390e65bb4.zip/node_modules/eslint-plugin-react-native-globals/", - "packageDependencies": [ - ["eslint-plugin-react-native-globals", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-scope", [ - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-79465cf508.zip/node_modules/eslint-scope/", - "packageDependencies": [ - ["eslint-scope", "npm:5.1.1"], - ["esrecurse", "npm:4.3.0"], - ["estraverse", "npm:4.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-utils", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/eslint-utils-npm-2.1.0-a3a7ebf4fa-a43892372a.zip/node_modules/eslint-utils/", - "packageDependencies": [ - ["eslint-utils", "npm:2.1.0"], - ["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", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-75eaae9006.zip/node_modules/eslint-visitor-keys/", - "packageDependencies": [ - ["eslint-visitor-keys", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["espree", [ - ["npm:7.3.1", { - "packageLocation": "./.yarn/cache/espree-npm-7.3.1-8d8ea5d1e3-ff8e0f7393.zip/node_modules/espree/", - "packageDependencies": [ - ["espree", "npm:7.3.1"], - ["acorn", "npm:7.4.1"], - ["acorn-jsx", "virtual:8d8ea5d1e3376905d0290522290f47c29213c64d936d96293d758a315829a3cf4c6a5b8ffc1cfee36c3db08f700ad3aaf0711cc5d406a7218c275de6d74effa9#npm:5.3.1"], - ["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.4.0", { - "packageLocation": "./.yarn/cache/esquery-npm-1.4.0-f39408b1a7-3293ecc150.zip/node_modules/esquery/", - "packageDependencies": [ - ["esquery", "npm:1.4.0"], - ["estraverse", "npm:5.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["esrecurse", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-2c96302dd5.zip/node_modules/esrecurse/", - "packageDependencies": [ - ["esrecurse", "npm:4.3.0"], - ["estraverse", "npm:5.2.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.2.0", { - "packageLocation": "./.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-7dc1b027ae.zip/node_modules/estraverse/", - "packageDependencies": [ - ["estraverse", "npm:5.2.0"] - ], - "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", - }] - ]], - ["exec-sh", [ - ["npm:0.3.6", { - "packageLocation": "./.yarn/cache/exec-sh-npm-0.3.6-8a29d03ae2-0205697efe.zip/node_modules/exec-sh/", - "packageDependencies": [ - ["exec-sh", "npm:0.3.6"] - ], - "linkType": "HARD", - }] - ]], - ["execa", [ - ["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.2.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.2"], - ["signal-exit", "npm:3.0.3"], - ["strip-final-newline", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/execa-npm-4.1.0-cc675b4189-79bd736acd.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:4.1.0"], - ["cross-spawn", "npm:7.0.3"], - ["get-stream", "npm:5.2.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.2"], - ["signal-exit", "npm:3.0.3"], - ["strip-final-newline", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/execa-npm-5.1.1-191347acf5-4286ade8cd.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:5.1.1"], - ["cross-spawn", "npm:7.0.3"], - ["get-stream", "npm:6.0.1"], - ["human-signals", "npm:2.1.0"], - ["is-stream", "npm:2.0.0"], - ["merge-stream", "npm:2.0.0"], - ["npm-run-path", "npm:4.0.1"], - ["onetime", "npm:5.1.2"], - ["signal-exit", "npm:3.0.7"], - ["strip-final-newline", "npm:2.0.0"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["expect", [ - ["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.3.0"], - ["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", - }] - ]], - ["exponential-backoff", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-369725ac55.zip/node_modules/exponential-backoff/", - "packageDependencies": [ - ["exponential-backoff", "npm:3.1.1"] - ], - "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: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", - }] - ]], - ["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", - }], - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/extsprintf-npm-1.4.0-2b015bcaab-092e011574.zip/node_modules/extsprintf/", - "packageDependencies": [ - ["extsprintf", "npm:1.4.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-diff", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-9c5407d9c4.zip/node_modules/fast-diff/", - "packageDependencies": [ - ["fast-diff", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["fast-glob", [ - ["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.4"], - ["@nodelib/fs.walk", "npm:1.2.6"], - ["glob-parent", "npm:5.1.2"], - ["merge2", "npm:1.4.1"], - ["micromatch", "npm:4.0.4"], - ["picomatch", "npm:2.2.3"] - ], - "linkType": "HARD", - }], - ["npm:3.3.2", { - "packageLocation": "./.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-76c8f75492.zip/node_modules/fast-glob/", - "packageDependencies": [ - ["fast-glob", "npm:3.3.2"], - ["@nodelib/fs.stat", "npm:2.0.4"], - ["@nodelib/fs.walk", "npm:1.2.6"], - ["glob-parent", "npm:5.1.2"], - ["merge2", "npm:1.4.1"], - ["micromatch", "npm:4.0.8"] - ], - "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-xml-parser", [ - ["npm:4.5.0", { - "packageLocation": "./.yarn/cache/fast-xml-parser-npm-4.5.0-353a57f69a-57bd0b080e.zip/node_modules/fast-xml-parser/", - "packageDependencies": [ - ["fast-xml-parser", "npm:4.5.0"], - ["strnum", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["fastq", [ - ["npm:1.11.0", { - "packageLocation": "./.yarn/cache/fastq-npm-1.11.0-840a129ad5-22822313d6.zip/node_modules/fastq/", - "packageDependencies": [ - ["fastq", "npm:1.11.0"], - ["reusify", "npm:1.0.4"] - ], - "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", - }] - ]], - ["figures", [ - ["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:6.0.1", { - "packageLocation": "./.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-af83a41214.zip/node_modules/file-entry-cache/", - "packageDependencies": [ - ["file-entry-cache", "npm:6.0.1"], - ["flat-cache", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["filelist", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/filelist-npm-1.0.2-d98495ab20-f8bf29d317.zip/node_modules/filelist/", - "packageDependencies": [ - ["filelist", "npm:1.0.2"], - ["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", - }], - ["npm:7.1.1", { - "packageLocation": "./.yarn/cache/fill-range-npm-7.1.1-bf491486db-101efdfbbf.zip/node_modules/fill-range/", - "packageDependencies": [ - ["fill-range", "npm:7.1.1"], - ["to-regex-range", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["filter-obj", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/filter-obj-npm-1.1.0-84128fc26d-1049ac0c30.zip/node_modules/filter-obj/", - "packageDependencies": [ - ["filter-obj", "npm:1.1.0"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/find-up-npm-5.0.0-e03e9b796d-cd0b77415b.zip/node_modules/find-up/", - "packageDependencies": [ - ["find-up", "npm:5.0.0"], - ["locate-path", "npm:6.0.0"], - ["path-exists", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["flat", [ - ["npm:5.0.2", { - "packageLocation": "./.yarn/cache/flat-npm-5.0.2-12748102a5-549b3012e9.zip/node_modules/flat/", - "packageDependencies": [ - ["flat", "npm:5.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["flat-cache", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-72d86ccdf8.zip/node_modules/flat-cache/", - "packageDependencies": [ - ["flat-cache", "npm:3.0.4"], - ["flatted", "npm:3.1.1"], - ["rimraf", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["flatted", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/flatted-npm-3.1.1-ffd80d62a2-1065cd7829.zip/node_modules/flatted/", - "packageDependencies": [ - ["flatted", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["flow-enums-runtime", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/flow-enums-runtime-npm-0.0.6-e57295284d-6e266d61de.zip/node_modules/flow-enums-runtime/", - "packageDependencies": [ - ["flow-enums-runtime", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["flow-parser", [ - ["npm:0.246.0", { - "packageLocation": "./.yarn/cache/flow-parser-npm-0.246.0-6e76074a65-3cccdeaa51.zip/node_modules/flow-parser/", - "packageDependencies": [ - ["flow-parser", "npm:0.246.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", - }] - ]], - ["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", - }] - ]], - ["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.30"] - ], - "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.30"] - ], - "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", - }] - ]], - ["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.6"], - ["jsonfile", "npm:4.0.0"], - ["universalify", "npm:0.1.2"] - ], - "linkType": "HARD", - }], - ["npm:9.1.0", { - "packageLocation": "./.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip/node_modules/fs-extra/", - "packageDependencies": [ - ["fs-extra", "npm:9.1.0"], - ["at-least-node", "npm:1.0.0"], - ["graceful-fs", "npm:4.2.6"], - ["jsonfile", "npm:6.1.0"], - ["universalify", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["fs-minipass", [ - ["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-readdir-recursive", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/fs-readdir-recursive-npm-1.1.0-258e230a4b-dec853d741.zip/node_modules/fs-readdir-recursive/", - "packageDependencies": [ - ["fs-readdir-recursive", "npm:1.1.0"] - ], - "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%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:8.0.0"] - ], - "linkType": "HARD", - }], - ["patch:fsevents@npm%3A2.3.3#builtin::version=2.3.3&hash=11e9ea", { - "packageLocation": "./.yarn/unplugged/fsevents-patch-8036bb578f/node_modules/fsevents/", - "packageDependencies": [ - ["fsevents", "patch:fsevents@npm%3A2.3.3#builtin::version=2.3.3&hash=11e9ea"], - ["node-gyp", "npm:8.0.0"] - ], - "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: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", - }] - ]], - ["gensync", [ - ["npm:1.0.0-beta.2", { - "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-d523437689.zip/node_modules/gensync/", - "packageDependencies": [ - ["gensync", "npm:1.0.0-beta.2"] - ], - "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-intrinsic", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-acf1506f25.zip/node_modules/get-intrinsic/", - "packageDependencies": [ - ["get-intrinsic", "npm:1.1.1"], - ["function-bind", "npm:1.1.1"], - ["has", "npm:1.0.3"], - ["has-symbols", "npm:1.0.2"] - ], - "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-pkg-repo", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/get-pkg-repo-npm-1.4.0-2e8b78f4cf-e3f47ce207.zip/node_modules/get-pkg-repo/", - "packageDependencies": [ - ["get-pkg-repo", "npm:1.4.0"], - ["hosted-git-info", "npm:2.8.9"], - ["meow", "npm:3.7.0"], - ["normalize-package-data", "npm:2.5.0"], - ["parse-github-repo-url", "npm:1.4.1"], - ["through2", "npm:2.0.5"] - ], - "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: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.2.0", { - "packageLocation": "./.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-c71c5625f4.zip/node_modules/get-stream/", - "packageDependencies": [ - ["get-stream", "npm:5.2.0"], - ["pump", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/get-stream-npm-6.0.1-83e51a4642-83de1fde5b.zip/node_modules/get-stream/", - "packageDependencies": [ - ["get-stream", "npm:6.0.1"] - ], - "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:8.1.0", { - "packageLocation": "./.yarn/cache/gh-got-npm-8.1.0-7e62a35c76-4b17a39184.zip/node_modules/gh-got/", - "packageDependencies": [ - ["gh-got", "npm:8.1.0"], - ["got", "npm:9.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["git-raw-commits", [ - ["npm:2.0.10", { - "packageLocation": "./.yarn/cache/git-raw-commits-npm-2.0.10-66e3a843dd-8c8769db98.zip/node_modules/git-raw-commits/", - "packageDependencies": [ - ["git-raw-commits", "npm:2.0.10"], - ["dargs", "npm:7.0.0"], - ["lodash", "npm:4.17.21"], - ["meow", "npm:8.1.2"], - ["split2", "npm:3.2.2"], - ["through2", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["git-remote-origin-url", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/git-remote-origin-url-npm-2.0.0-319debe0d1-4faec60289.zip/node_modules/git-remote-origin-url/", - "packageDependencies": [ - ["git-remote-origin-url", "npm:2.0.0"], - ["gitconfiglocal", "npm:1.0.0"], - ["pify", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["git-semver-tags", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/git-semver-tags-npm-4.1.1-93b9747811-8e8aec9f6b.zip/node_modules/git-semver-tags/", - "packageDependencies": [ - ["git-semver-tags", "npm:4.1.1"], - ["meow", "npm:8.1.2"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["git-up", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/git-up-npm-4.0.2-3cd4003c69-1ccbc336df.zip/node_modules/git-up/", - "packageDependencies": [ - ["git-up", "npm:4.0.2"], - ["is-ssh", "npm:1.3.3"], - ["parse-url", "npm:5.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["git-url-parse", [ - ["npm:11.3.0", { - "packageLocation": "./.yarn/cache/git-url-parse-npm-11.3.0-12b198debf-86155163c8.zip/node_modules/git-url-parse/", - "packageDependencies": [ - ["git-url-parse", "npm:11.3.0"], - ["git-up", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["gitconfiglocal", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/gitconfiglocal-npm-1.0.0-905970379d-ef29693899.zip/node_modules/gitconfiglocal/", - "packageDependencies": [ - ["gitconfiglocal", "npm:1.0.0"], - ["ini", "npm:1.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["github-username", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/github-username-npm-5.0.1-83a4b8d1c6-a1cd522e02.zip/node_modules/github-username/", - "packageDependencies": [ - ["github-username", "npm:5.0.1"], - ["gh-got", "npm:8.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["glob", [ - ["npm:7.1.7", { - "packageLocation": "./.yarn/cache/glob-npm-7.1.7-5698ad9c48-352f74f082.zip/node_modules/glob/", - "packageDependencies": [ - ["glob", "npm:7.1.7"], - ["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.2", { - "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.2-021ab32634-82fcaa4ce1.zip/node_modules/glob-parent/", - "packageDependencies": [ - ["glob-parent", "npm:5.1.2"], - ["is-glob", "npm:4.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.8"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/global-dirs-npm-2.1.0-790e02e61c-32e4786552.zip/node_modules/global-dirs/", - "packageDependencies": [ - ["global-dirs", "npm:2.1.0"], - ["ini", "npm:1.3.7"] - ], - "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", - }], - ["npm:13.8.0", { - "packageLocation": "./.yarn/cache/globals-npm-13.8.0-0988f60ed8-de85e5dc89.zip/node_modules/globals/", - "packageDependencies": [ - ["globals", "npm:13.8.0"], - ["type-fest", "npm:0.20.2"] - ], - "linkType": "HARD", - }] - ]], - ["globby", [ - ["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.5"], - ["ignore", "npm:5.1.8"], - ["merge2", "npm:1.4.1"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:11.0.3", { - "packageLocation": "./.yarn/cache/globby-npm-11.0.3-bb0a10f600-f17da0f869.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:11.0.3"], - ["array-union", "npm:2.1.0"], - ["dir-glob", "npm:3.0.1"], - ["fast-glob", "npm:3.2.5"], - ["ignore", "npm:5.1.8"], - ["merge2", "npm:1.4.1"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["got", [ - ["npm:11.7.0", { - "packageLocation": "./.yarn/cache/got-npm-11.7.0-cacb9b44fc-780b4b1d33.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:11.7.0"], - ["@sindresorhus/is", "npm:3.1.2"], - ["@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.4"], - ["cacheable-request", "npm:7.0.1"], - ["decompress-response", "npm:6.0.0"], - ["http2-wrapper", "npm:1.0.3"], - ["lowercase-keys", "npm:2.0.0"], - ["p-cancelable", "npm:2.1.1"], - ["responselike", "npm:2.0.0"] - ], - "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.11", { - "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-99533f7c73.zip/node_modules/graceful-fs/", - "packageDependencies": [ - ["graceful-fs", "npm:4.2.11"] - ], - "linkType": "HARD", - }], - ["npm:4.2.6", { - "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-84d39c7756.zip/node_modules/graceful-fs/", - "packageDependencies": [ - ["graceful-fs", "npm:4.2.6"] - ], - "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.7", { - "packageLocation": "./.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-2df9a6b422.zip/node_modules/handlebars/", - "packageDependencies": [ - ["handlebars", "npm:4.7.7"], - ["minimist", "npm:1.2.5"], - ["neo-async", "npm:2.6.2"], - ["source-map", "npm:0.6.1"], - ["uglify-js", "npm:3.13.6"], - ["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.5", { - "packageLocation": "./.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-01b905cdaa.zip/node_modules/har-validator/", - "packageDependencies": [ - ["har-validator", "npm:5.1.5"], - ["ajv", "npm:6.12.6"], - ["har-schema", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["hard-rejection", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-27bc09d185.zip/node_modules/hard-rejection/", - "packageDependencies": [ - ["hard-rejection", "npm:2.1.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-bigints", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/has-bigints-npm-1.0.1-1b93717a74-1074b644f5.zip/node_modules/has-bigints/", - "packageDependencies": [ - ["has-bigints", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-flag", [ - ["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-symbols", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.2-50e53af115-1b73928752.zip/node_modules/has-symbols/", - "packageDependencies": [ - ["has-symbols", "npm:1.0.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", - }] - ]], - ["hermes-estree", [ - ["npm:0.19.1", { - "packageLocation": "./.yarn/cache/hermes-estree-npm-0.19.1-e23907b22e-389f28ba0d.zip/node_modules/hermes-estree/", - "packageDependencies": [ - ["hermes-estree", "npm:0.19.1"] - ], - "linkType": "HARD", - }], - ["npm:0.23.1", { - "packageLocation": "./.yarn/cache/hermes-estree-npm-0.23.1-b96541fb28-199fdf0c7f.zip/node_modules/hermes-estree/", - "packageDependencies": [ - ["hermes-estree", "npm:0.23.1"] - ], - "linkType": "HARD", - }] - ]], - ["hermes-parser", [ - ["npm:0.19.1", { - "packageLocation": "./.yarn/cache/hermes-parser-npm-0.19.1-ee11958fe7-11cd20b0ee.zip/node_modules/hermes-parser/", - "packageDependencies": [ - ["hermes-parser", "npm:0.19.1"], - ["hermes-estree", "npm:0.19.1"] - ], - "linkType": "HARD", - }], - ["npm:0.23.1", { - "packageLocation": "./.yarn/cache/hermes-parser-npm-0.23.1-031eeefaa0-50d8f2daae.zip/node_modules/hermes-parser/", - "packageDependencies": [ - ["hermes-parser", "npm:0.23.1"], - ["hermes-estree", "npm:0.23.1"] - ], - "linkType": "HARD", - }] - ]], - ["hermes-profile-transformer", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/hermes-profile-transformer-npm-0.0.6-80b3a74e21-51341c6994.zip/node_modules/hermes-profile-transformer/", - "packageDependencies": [ - ["hermes-profile-transformer", "npm:0.0.6"], - ["source-map", "npm:0.7.3"] - ], - "linkType": "HARD", - }] - ]], - ["hosted-git-info", [ - ["npm:2.8.9", { - "packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-cf4dfac9b9.zip/node_modules/hosted-git-info/", - "packageDependencies": [ - ["hosted-git-info", "npm:2.8.9"] - ], - "linkType": "HARD", - }], - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/hosted-git-info-npm-4.0.2-7330924e0c-838315face.zip/node_modules/hosted-git-info/", - "packageDependencies": [ - ["hosted-git-info", "npm:4.0.2"], - ["lru-cache", "npm:6.0.0"] - ], - "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", - }] - ]], - ["htmlparser2", [ - ["npm:7.1.2", { - "packageLocation": "./.yarn/cache/htmlparser2-npm-7.1.2-35aba759f6-8c561e5562.zip/node_modules/htmlparser2/", - "packageDependencies": [ - ["htmlparser2", "npm:7.1.2"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.2"], - ["domutils", "npm:2.8.0"], - ["entities", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["http-cache-semantics", [ - ["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:2.0.0", { - "packageLocation": "./.yarn/cache/http-errors-npm-2.0.0-3f1c503428-505c185dd6.zip/node_modules/http-errors/", - "packageDependencies": [ - ["http-errors", "npm:2.0.0"], - ["depd", "npm:2.0.0"], - ["inherits", "npm:2.0.4"], - ["setprototypeof", "npm:1.2.0"], - ["statuses", "npm:2.0.1"], - ["toidentifier", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["http-proxy-agent", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-6703aeb5c5.zip/node_modules/http-proxy-agent/", - "packageDependencies": [ - ["http-proxy-agent", "npm:4.0.1"], - ["@tootallnate/once", "npm:1.1.2"], - ["agent-base", "npm:6.0.2"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"] - ], - "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.3", { - "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-2fc0140a69.zip/node_modules/http2-wrapper/", - "packageDependencies": [ - ["http2-wrapper", "npm:1.0.3"], - ["quick-lru", "npm:5.1.1"], - ["resolve-alpn", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["https-proxy-agent", [ - ["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:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#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", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/human-signals-npm-2.1.0-f75815481d-70bfd94d27.zip/node_modules/human-signals/", - "packageDependencies": [ - ["human-signals", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["humanize-ms", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-4a08769434.zip/node_modules/humanize-ms/", - "packageDependencies": [ - ["humanize-ms", "npm:1.2.1"], - ["ms", "npm:2.1.3"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["ieee754", [ - ["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", - }] - ]], - ["ignore", [ - ["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", - }] - ]], - ["image-size", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/image-size-npm-1.1.1-4e6d664667-8b2b5f1202.zip/node_modules/image-size/", - "packageDependencies": [ - ["image-size", "npm:1.1.1"], - ["queue", "npm:6.0.2"] - ], - "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.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: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", - }] - ]], - ["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.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.7", { - "packageLocation": "./.yarn/cache/ini-npm-1.3.7-188ee858c0-cf00289cb4.zip/node_modules/ini/", - "packageDependencies": [ - ["ini", "npm:1.3.7"] - ], - "linkType": "HARD", - }], - ["npm:1.3.8", { - "packageLocation": "./.yarn/cache/ini-npm-1.3.8-fb5040b4c0-62189ce7ea.zip/node_modules/ini/", - "packageDependencies": [ - ["ini", "npm:1.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["inquirer", [ - ["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.2"], - ["chalk", "npm:4.1.1"], - ["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.21"], - ["mute-stream", "npm:0.0.8"], - ["run-async", "npm:2.4.1"], - ["rxjs", "npm:6.6.7"], - ["string-width", "npm:4.2.2"], - ["strip-ansi", "npm:6.0.0"], - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["internal-slot", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.3-9e05eea002-2465f832aa.zip/node_modules/internal-slot/", - "packageDependencies": [ - ["internal-slot", "npm:1.0.3"], - ["get-intrinsic", "npm:1.1.1"], - ["has", "npm:1.0.3"], - ["side-channel", "npm:1.0.4"] - ], - "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", - }] - ]], - ["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", [ - ["npm:1.1.5", { - "packageLocation": "./.yarn/cache/ip-npm-1.1.5-af36318aa6-3ad007368c.zip/node_modules/ip/", - "packageDependencies": [ - ["ip", "npm:1.1.5"] - ], - "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-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-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", - }] - ]], - ["is-bigint", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/is-bigint-npm-1.0.2-db0dde4bd4-818680e551.zip/node_modules/is-bigint/", - "packageDependencies": [ - ["is-bigint", "npm:1.0.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.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-boolean-object", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/is-boolean-object-npm-1.1.1-4a132c53e4-9a45d29418.zip/node_modules/is-boolean-object/", - "packageDependencies": [ - ["is-boolean-object", "npm:1.1.1"], - ["call-bind", "npm:1.0.2"] - ], - "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", - }] - ]], - ["is-callable", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/is-callable-npm-1.2.3-2a68c9d549-8180a1c4e2.zip/node_modules/is-callable/", - "packageDependencies": [ - ["is-callable", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["is-ci", [ - ["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-core-module", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/is-core-module-npm-2.4.0-bae19c65cd-caa2b30873.zip/node_modules/is-core-module/", - "packageDependencies": [ - ["is-core-module", "npm:2.4.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.4", { - "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.4-bc85407e70-f159a5cff6.zip/node_modules/is-date-object/", - "packageDependencies": [ - ["is-date-object", "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:2.2.1", { - "packageLocation": "./.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-7dbd6eecfe.zip/node_modules/is-docker/", - "packageDependencies": [ - ["is-docker", "npm:2.2.1"] - ], - "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-git-dirty", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/is-git-dirty-npm-2.0.1-a42f1034ca-8c6e89bfbc.zip/node_modules/is-git-dirty/", - "packageDependencies": [ - ["is-git-dirty", "npm:2.0.1"], - ["execa", "npm:4.1.0"], - ["is-git-repository", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-git-repository", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-git-repository-npm-2.0.0-775ac048b7-3b88d92ecd.zip/node_modules/is-git-repository/", - "packageDependencies": [ - ["is-git-repository", "npm:2.0.0"], - ["execa", "npm:4.1.0"], - ["is-absolute", "npm:1.0.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-installed-globally", [ - ["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.1.0"], - ["is-path-inside", "npm:3.0.3"] - ], - "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-lambda", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-669ea37e8f.zip/node_modules/is-lambda/", - "packageDependencies": [ - ["is-lambda", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-negative-zero", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/is-negative-zero-npm-2.0.1-d8f3dbcfe1-e2160af9a6.zip/node_modules/is-negative-zero/", - "packageDependencies": [ - ["is-negative-zero", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-npm", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/is-npm-npm-5.0.0-2758bcd54b-e424b2040a.zip/node_modules/is-npm/", - "packageDependencies": [ - ["is-npm", "npm:5.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-number-object", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/is-number-object-npm-1.0.5-fb5fdccdde-2725b59408.zip/node_modules/is-number-object/", - "packageDependencies": [ - ["is-number-object", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["is-obj", [ - ["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-path-cwd", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-900f6e8144.zip/node_modules/is-path-cwd/", - "packageDependencies": [ - ["is-path-cwd", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-path-inside", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-b19a293744.zip/node_modules/is-path-inside/", - "packageDependencies": [ - ["is-path-inside", "npm:3.0.3"] - ], - "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", - }] - ]], - ["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.1", { - "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-25520ce8de.zip/node_modules/is-potential-custom-element-name/", - "packageDependencies": [ - ["is-potential-custom-element-name", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-regex", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/is-regex-npm-1.1.3-5a00a17388-1beb14b9f8.zip/node_modules/is-regex/", - "packageDependencies": [ - ["is-regex", "npm:1.1.3"], - ["call-bind", "npm:1.0.2"], - ["has-symbols", "npm:1.0.2"] - ], - "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-ssh", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/is-ssh-npm-1.3.3-dae2e96b9a-bdf2ed8e79.zip/node_modules/is-ssh/", - "packageDependencies": [ - ["is-ssh", "npm:1.3.3"], - ["protocols", "npm:1.4.8"] - ], - "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-string", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/is-string-npm-1.0.6-2e7dbd354f-5eb4860eaf.zip/node_modules/is-string/", - "packageDependencies": [ - ["is-string", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["is-symbol", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-2794e0b9c3.zip/node_modules/is-symbol/", - "packageDependencies": [ - ["is-symbol", "npm:1.0.4"], - ["has-symbols", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-text-path", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-text-path-npm-1.0.1-92c78fe58d-7c46df2e80.zip/node_modules/is-text-path/", - "packageDependencies": [ - ["is-text-path", "npm:1.0.1"], - ["text-extensions", "npm:1.9.0"] - ], - "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-unicode-supported", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-00ca6f5581.zip/node_modules/is-unicode-supported/", - "packageDependencies": [ - ["is-unicode-supported", "npm:0.1.0"] - ], - "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-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-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.2.1"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["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.14.2"], - ["@istanbuljs/schema", "npm:0.1.3"], - ["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.2.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:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["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", - }] - ]], - ["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.2"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["jest", [ - ["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.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.1.0"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-cli", [ - ["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.1"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.6"], - ["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.4.1"], - ["yargs", "npm:15.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["jest-config", [ - ["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.14.2"], - ["@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.1"], - ["deepmerge", "npm:4.2.2"], - ["glob", "npm:7.1.7"], - ["graceful-fs", "npm:4.2.6"], - ["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.4"], - ["pretty-format", "npm:26.6.2"], - ["ts-node", null] - ], - "packagePeers": [ - "@types/ts-node", - "ts-node" - ], - "linkType": "HARD", - }] - ]], - ["jest-diff", [ - ["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.1"], - ["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.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.1"], - ["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.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:15.3.0"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3"] - ], - "linkType": "HARD", - }] - ]], - ["jest-environment-node", [ - ["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:15.3.0"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-6c07eb45c8.zip/node_modules/jest-environment-node/", - "packageDependencies": [ - ["jest-environment-node", "npm:29.7.0"], - ["@jest/environment", "npm:29.7.0"], - ["@jest/fake-timers", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["@types/node", "npm:15.3.0"], - ["jest-mock", "npm:29.7.0"], - ["jest-util", "npm:29.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-get-type", [ - ["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", - }], - ["npm:29.6.3", { - "packageLocation": "./.yarn/cache/jest-get-type-npm-29.6.3-500477292e-cc4aeee753.zip/node_modules/jest-get-type/", - "packageDependencies": [ - ["jest-get-type", "npm:29.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["jest-haste-map", [ - ["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.5"], - ["@types/node", "npm:15.3.0"], - ["anymatch", "npm:3.1.2"], - ["fb-watchman", "npm:2.0.1"], - ["fsevents", "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea"], - ["graceful-fs", "npm:4.2.6"], - ["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.4"], - ["sane", "npm:4.1.0"], - ["walker", "npm:1.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["jest-jasmine2", [ - ["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.14.2"], - ["@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:15.3.0"], - ["chalk", "npm:4.1.1"], - ["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.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.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.1"], - ["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.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.12.13"], - ["@jest/types", "npm:26.6.2"], - ["@types/stack-utils", "npm:2.0.0"], - ["chalk", "npm:4.1.1"], - ["graceful-fs", "npm:4.2.6"], - ["micromatch", "npm:4.0.4"], - ["pretty-format", "npm:26.6.2"], - ["slash", "npm:3.0.0"], - ["stack-utils", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-d314b77d5a.zip/node_modules/jest-message-util/", - "packageDependencies": [ - ["jest-message-util", "npm:29.7.0"], - ["@babel/code-frame", "npm:7.12.13"], - ["@jest/types", "npm:29.6.3"], - ["@types/stack-utils", "npm:2.0.0"], - ["chalk", "npm:4.1.1"], - ["graceful-fs", "npm:4.2.11"], - ["micromatch", "npm:4.0.8"], - ["pretty-format", "npm:29.7.0"], - ["slash", "npm:3.0.0"], - ["stack-utils", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["jest-mock", [ - ["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:15.3.0"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-6a56811389.zip/node_modules/jest-mock/", - "packageDependencies": [ - ["jest-mock", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["@types/node", "npm:15.3.0"], - ["jest-util", "npm:29.7.0"] - ], - "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: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.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.1"], - ["graceful-fs", "npm:4.2.6"], - ["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.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.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:15.3.0"], - ["chalk", "npm:4.1.1"], - ["emittery", "npm:0.7.2"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.6"], - ["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.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.13"], - ["chalk", "npm:4.1.1"], - ["cjs-module-lexer", "npm:0.6.0"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.7"], - ["graceful-fs", "npm:4.2.6"], - ["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.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:15.3.0"], - ["graceful-fs", "npm:4.2.6"] - ], - "linkType": "HARD", - }] - ]], - ["jest-snapshot", [ - ["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.14.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/babel__traverse", "npm:7.11.1"], - ["@types/prettier", "npm:2.2.3"], - ["chalk", "npm:4.1.1"], - ["expect", "npm:26.6.2"], - ["graceful-fs", "npm:4.2.6"], - ["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.5"] - ], - "linkType": "HARD", - }] - ]], - ["jest-util", [ - ["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:15.3.0"], - ["chalk", "npm:4.1.1"], - ["graceful-fs", "npm:4.2.6"], - ["is-ci", "npm:2.0.0"], - ["micromatch", "npm:4.0.4"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-0464478a44.zip/node_modules/jest-util/", - "packageDependencies": [ - ["jest-util", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["@types/node", "npm:15.3.0"], - ["chalk", "npm:4.1.1"], - ["ci-info", "npm:3.9.0"], - ["graceful-fs", "npm:4.2.11"], - ["picomatch", "npm:2.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["jest-validate", [ - ["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.2.0"], - ["chalk", "npm:4.1.1"], - ["jest-get-type", "npm:26.3.0"], - ["leven", "npm:3.1.0"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-6bcea95612.zip/node_modules/jest-validate/", - "packageDependencies": [ - ["jest-validate", "npm:29.7.0"], - ["@jest/types", "npm:29.6.3"], - ["camelcase", "npm:6.3.0"], - ["chalk", "npm:4.1.1"], - ["jest-get-type", "npm:29.6.3"], - ["leven", "npm:3.1.0"], - ["pretty-format", "npm:29.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-watcher", [ - ["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:15.3.0"], - ["ansi-escapes", "npm:4.3.2"], - ["chalk", "npm:4.1.1"], - ["jest-util", "npm:26.6.2"], - ["string-length", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-worker", [ - ["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:15.3.0"], - ["merge-stream", "npm:2.0.0"], - ["supports-color", "npm:7.2.0"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-d6b1955286.zip/node_modules/jest-worker/", - "packageDependencies": [ - ["jest-worker", "npm:29.7.0"], - ["@types/node", "npm:15.3.0"], - ["jest-util", "npm:29.7.0"], - ["merge-stream", "npm:2.0.0"], - ["supports-color", "npm:8.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["jetifier", [ - ["npm:1.6.8", { - "packageLocation": "./.yarn/unplugged/jetifier-npm-1.6.8-940248aabe/node_modules/jetifier/", - "packageDependencies": [ - ["jetifier", "npm:1.6.8"] - ], - "linkType": "HARD", - }] - ]], - ["joi", [ - ["npm:17.13.3", { - "packageLocation": "./.yarn/cache/joi-npm-17.13.3-866dad5bc8-6b4532b95f.zip/node_modules/joi/", - "packageDependencies": [ - ["joi", "npm:17.13.3"], - ["@hapi/hoek", "npm:9.3.0"], - ["@hapi/topo", "npm:5.1.0"], - ["@sideway/address", "npm:4.1.5"], - ["@sideway/formula", "npm:3.0.1"], - ["@sideway/pinpoint", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["js-tokens", [ - ["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.1", { - "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-46b61f8897.zip/node_modules/js-yaml/", - "packageDependencies": [ - ["js-yaml", "npm:3.14.1"], - ["argparse", "npm:1.0.10"], - ["esprima", "npm:4.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", - }] - ]], - ["jsc-android", [ - ["npm:250231.0.0", { - "packageLocation": "./.yarn/unplugged/jsc-android-npm-250231.0.0-8322f50944/node_modules/jsc-android/", - "packageDependencies": [ - ["jsc-android", "npm:250231.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jsc-safe-url", [ - ["npm:0.2.4", { - "packageLocation": "./.yarn/cache/jsc-safe-url-npm-0.2.4-4c5f8d6d7b-cc4b965fb4.zip/node_modules/jsc-safe-url/", - "packageDependencies": [ - ["jsc-safe-url", "npm:0.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["jscodeshift", [ - ["npm:0.14.0", { - "packageLocation": "./.yarn/cache/jscodeshift-npm-0.14.0-76e38c9080-204e73e71e.zip/node_modules/jscodeshift/", - "packageDependencies": [ - ["jscodeshift", "npm:0.14.0"] - ], - "linkType": "SOFT", - }], - ["virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0", { - "packageLocation": "./.yarn/$$virtual/jscodeshift-virtual-a066de45ed/0/cache/jscodeshift-npm-0.14.0-76e38c9080-204e73e71e.zip/node_modules/jscodeshift/", - "packageDependencies": [ - ["jscodeshift", "virtual:39ff8dcc54701ce6315c8aeea4c8aeb4185f5e3820da1df9047d21c3947ca31a5537cf1df709eabf44628154dda3b1aa832b7086825199f41c8605fd90769ba5#npm:0.14.0"], - ["@babel/core", "npm:7.25.2"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/plugin-proposal-class-properties", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.18.6"], - ["@babel/plugin-proposal-optional-chaining", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.14.2"], - ["@babel/plugin-transform-modules-commonjs", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.8"], - ["@babel/preset-env", null], - ["@babel/preset-flow", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.7"], - ["@babel/preset-typescript", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.13.0"], - ["@babel/register", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.24.6"], - ["@types/babel__preset-env", null], - ["babel-core", "virtual:a066de45edd9aa27f9891389163f01b95096d55dcc384431c596e444d3442ad3124e0232eb6b3e6b796e67c8d381a4776942ed12f63acf85f866db8286204229#npm:7.0.0-bridge.0"], - ["chalk", "npm:4.1.2"], - ["flow-parser", "npm:0.246.0"], - ["graceful-fs", "npm:4.2.6"], - ["micromatch", "npm:4.0.8"], - ["neo-async", "npm:2.6.2"], - ["node-dir", "npm:0.1.17"], - ["recast", "npm:0.21.5"], - ["temp", "npm:0.8.4"], - ["write-file-atomic", "npm:2.4.3"] - ], - "packagePeers": [ - "@babel/preset-env", - "@types/babel__preset-env" - ], - "linkType": "HARD", - }] - ]], - ["jsdom", [ - ["npm:16.5.3", { - "packageLocation": "./.yarn/cache/jsdom-npm-16.5.3-a7674d3b6b-02f6e3b5bb.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "npm:16.5.3"] - ], - "linkType": "SOFT", - }], - ["virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3", { - "packageLocation": "./.yarn/$$virtual/jsdom-virtual-96f830aa00/0/cache/jsdom-npm-16.5.3-a7674d3b6b-02f6e3b5bb.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.3"], - ["@types/canvas", null], - ["abab", "npm:2.0.5"], - ["acorn", "npm:8.2.4"], - ["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.1"], - ["nwsapi", "npm:2.2.0"], - ["parse5", "npm:6.0.1"], - ["request", "npm:2.88.2"], - ["request-promise-native", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#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.5.0"], - ["ws", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5"], - ["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-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-parse-even-better-errors", [ - ["npm:2.3.1", { - "packageLocation": "./.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-d89fa7fe57.zip/node_modules/json-parse-even-better-errors/", - "packageDependencies": [ - ["json-parse-even-better-errors", "npm:2.3.1"] - ], - "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", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-7a230bcd92.zip/node_modules/json-schema-traverse/", - "packageDependencies": [ - ["json-schema-traverse", "npm:1.0.0"] - ], - "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:2.2.0", { - "packageLocation": "./.yarn/cache/json5-npm-2.2.0-da49dc7cb5-07b1f90c28.zip/node_modules/json5/", - "packageDependencies": [ - ["json5", "npm:2.2.0"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }], - ["npm:2.2.3", { - "packageLocation": "./.yarn/cache/json5-npm-2.2.3-9962c55073-c6ab786b23.zip/node_modules/json5/", - "packageDependencies": [ - ["json5", "npm:2.2.3"] - ], - "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.6"] - ], - "linkType": "HARD", - }], - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-9419c886ab.zip/node_modules/jsonfile/", - "packageDependencies": [ - ["jsonfile", "npm:6.1.0"], - ["graceful-fs", "npm:4.2.6"], - ["universalify", "npm:2.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", - }] - ]], - ["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", - }] - ]], - ["jsx-ast-utils", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/jsx-ast-utils-npm-3.2.0-c3558dbd96-2a8033e632.zip/node_modules/jsx-ast-utils/", - "packageDependencies": [ - ["jsx-ast-utils", "npm:3.2.0"], - ["array-includes", "npm:3.1.3"], - ["object.assign", "npm:4.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["keyv", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/keyv-npm-3.1.0-81c9ff4454-6bf032ee50.zip/node_modules/keyv/", - "packageDependencies": [ - ["keyv", "npm:3.1.0"], - ["json-buffer", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/keyv-npm-4.0.3-4018fb536e-63527e3d01.zip/node_modules/keyv/", - "packageDependencies": [ - ["keyv", "npm:4.0.3"], - ["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", - }] - ]], - ["latest-version", [ - ["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", - }] - ]], - ["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", - }] - ]], - ["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", - }], - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2f6ddfb0b9.zip/node_modules/levn/", - "packageDependencies": [ - ["levn", "npm:0.4.1"], - ["prelude-ls", "npm:1.2.1"], - ["type-check", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["lighthouse-logger", [ - ["npm:1.4.2", { - "packageLocation": "./.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-a53a2d31fe.zip/node_modules/lighthouse-logger/", - "packageDependencies": [ - ["lighthouse-logger", "npm:1.4.2"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["marky", "npm:1.2.5"] - ], - "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", - }] - ]], - ["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.6"], - ["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.6"], - ["parse-json", "npm:4.0.0"], - ["pify", "npm:3.0.0"], - ["strip-bom", "npm:3.0.0"] - ], - "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", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-4c37963815.zip/node_modules/locate-path/", - "packageDependencies": [ - ["locate-path", "npm:6.0.0"], - ["p-locate", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash", [ - ["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.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.ismatch", [ - ["npm:4.4.0", { - "packageLocation": "./.yarn/cache/lodash.ismatch-npm-4.4.0-e538fd6c3d-f6e3ef9fd3.zip/node_modules/lodash.ismatch/", - "packageDependencies": [ - ["lodash.ismatch", "npm:4.4.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.throttle", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-d9107c7903.zip/node_modules/lodash.throttle/", - "packageDependencies": [ - ["lodash.throttle", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.truncate", [ - ["npm:4.4.2", { - "packageLocation": "./.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-b1b0d7d993.zip/node_modules/lodash.truncate/", - "packageDependencies": [ - ["lodash.truncate", "npm:4.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["log-symbols", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-57be4aeb6a.zip/node_modules/log-symbols/", - "packageDependencies": [ - ["log-symbols", "npm:4.1.0"], - ["chalk", "npm:4.1.1"], - ["is-unicode-supported", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["logkitty", [ - ["npm:0.7.1", { - "packageLocation": "./.yarn/cache/logkitty-npm-0.7.1-222a2102c2-4601bdd127.zip/node_modules/logkitty/", - "packageDependencies": [ - ["logkitty", "npm:0.7.1"], - ["ansi-fragments", "npm:0.2.1"], - ["dayjs", "npm:1.11.13"], - ["yargs", "npm:15.4.1"] - ], - "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.2", { - "packageLocation": "./.yarn/cache/lower-case-npm-2.0.2-151055f1c2-aabaca9cef.zip/node_modules/lower-case/", - "packageDependencies": [ - ["lower-case", "npm:2.0.2"], - ["tslib", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["lowercase-keys", [ - ["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: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", - }] - ]], - ["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: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-fetch-happen", [ - ["npm:8.0.14", { - "packageLocation": "./.yarn/cache/make-fetch-happen-npm-8.0.14-fa5d78adad-0847aca9a3.zip/node_modules/make-fetch-happen/", - "packageDependencies": [ - ["make-fetch-happen", "npm:8.0.14"], - ["agentkeepalive", "npm:4.1.4"], - ["cacache", "npm:15.0.6"], - ["http-cache-semantics", "npm:4.1.0"], - ["http-proxy-agent", "npm:4.0.1"], - ["https-proxy-agent", "npm:5.0.0"], - ["is-lambda", "npm:1.0.1"], - ["lru-cache", "npm:6.0.0"], - ["minipass", "npm:3.1.3"], - ["minipass-collect", "npm:1.0.2"], - ["minipass-fetch", "npm:1.3.3"], - ["minipass-flush", "npm:1.0.5"], - ["minipass-pipeline", "npm:1.2.4"], - ["promise-retry", "npm:2.0.1"], - ["socks-proxy-agent", "npm:5.0.0"], - ["ssri", "npm:8.0.1"] - ], - "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-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", - }], - ["npm:4.2.1", { - "packageLocation": "./.yarn/cache/map-obj-npm-4.2.1-754eda8456-59c2f09ffc.zip/node_modules/map-obj/", - "packageDependencies": [ - ["map-obj", "npm:4.2.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", - }] - ]], - ["marky", [ - ["npm:1.2.5", { - "packageLocation": "./.yarn/cache/marky-npm-1.2.5-007e6cc885-714fbd8da9.zip/node_modules/marky/", - "packageDependencies": [ - ["marky", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["memoize-one", [ - ["npm:5.2.1", { - "packageLocation": "./.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-6b7dab7d8d.zip/node_modules/memoize-one/", - "packageDependencies": [ - ["memoize-one", "npm:5.2.1"] - ], - "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", - }], - ["npm:8.1.2", { - "packageLocation": "./.yarn/cache/meow-npm-8.1.2-bcfe48d4f3-7246c3e824.zip/node_modules/meow/", - "packageDependencies": [ - ["meow", "npm:8.1.2"], - ["@types/minimist", "npm:1.2.1"], - ["camelcase-keys", "npm:6.2.2"], - ["decamelize-keys", "npm:1.1.0"], - ["hard-rejection", "npm:2.1.0"], - ["minimist-options", "npm:4.1.0"], - ["normalize-package-data", "npm:3.0.2"], - ["read-pkg-up", "npm:7.0.1"], - ["redent", "npm:3.0.0"], - ["trim-newlines", "npm:3.0.0"], - ["type-fest", "npm:0.18.1"], - ["yargs-parser", "npm:20.2.7"] - ], - "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", - }] - ]], - ["metro", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-npm-0.80.12-22fc2f7367-1179e68039.zip/node_modules/metro/", - "packageDependencies": [ - ["metro", "npm:0.80.12"], - ["@babel/code-frame", "npm:7.12.13"], - ["@babel/core", "npm:7.25.2"], - ["@babel/generator", "npm:7.25.6"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"], - ["accepts", "npm:1.3.8"], - ["chalk", "npm:4.1.1"], - ["ci-info", "npm:2.0.0"], - ["connect", "npm:3.7.0"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["denodeify", "npm:1.2.1"], - ["error-stack-parser", "npm:2.1.4"], - ["flow-enums-runtime", "npm:0.0.6"], - ["graceful-fs", "npm:4.2.6"], - ["hermes-parser", "npm:0.23.1"], - ["image-size", "npm:1.1.1"], - ["invariant", "npm:2.2.4"], - ["jest-worker", "npm:29.7.0"], - ["jsc-safe-url", "npm:0.2.4"], - ["lodash.throttle", "npm:4.1.1"], - ["metro-babel-transformer", "npm:0.80.12"], - ["metro-cache", "npm:0.80.12"], - ["metro-cache-key", "npm:0.80.12"], - ["metro-config", "npm:0.80.12"], - ["metro-core", "npm:0.80.12"], - ["metro-file-map", "npm:0.80.12"], - ["metro-resolver", "npm:0.80.12"], - ["metro-runtime", "npm:0.80.12"], - ["metro-source-map", "npm:0.80.12"], - ["metro-symbolicate", "npm:0.80.12"], - ["metro-transform-plugins", "npm:0.80.12"], - ["metro-transform-worker", "npm:0.80.12"], - ["mime-types", "npm:2.1.35"], - ["nullthrows", "npm:1.1.1"], - ["serialize-error", "npm:2.1.0"], - ["source-map", "npm:0.5.7"], - ["strip-ansi", "npm:6.0.0"], - ["throat", "npm:5.0.0"], - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"], - ["yargs", "npm:17.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["metro-babel-transformer", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-babel-transformer-npm-0.80.12-181bafda20-41d322d0b9.zip/node_modules/metro-babel-transformer/", - "packageDependencies": [ - ["metro-babel-transformer", "npm:0.80.12"], - ["@babel/core", "npm:7.25.2"], - ["flow-enums-runtime", "npm:0.0.6"], - ["hermes-parser", "npm:0.23.1"], - ["nullthrows", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["metro-cache", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-cache-npm-0.80.12-711aaffee1-343eb1f183.zip/node_modules/metro-cache/", - "packageDependencies": [ - ["metro-cache", "npm:0.80.12"], - ["exponential-backoff", "npm:3.1.1"], - ["flow-enums-runtime", "npm:0.0.6"], - ["metro-core", "npm:0.80.12"] - ], - "linkType": "HARD", - }] - ]], - ["metro-cache-key", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-cache-key-npm-0.80.12-38ad08be54-97beb3d1e0.zip/node_modules/metro-cache-key/", - "packageDependencies": [ - ["metro-cache-key", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["metro-config", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-config-npm-0.80.12-2cfceb58bb-473e5cbfde.zip/node_modules/metro-config/", - "packageDependencies": [ - ["metro-config", "npm:0.80.12"], - ["connect", "npm:3.7.0"], - ["cosmiconfig", "npm:5.2.1"], - ["flow-enums-runtime", "npm:0.0.6"], - ["jest-validate", "npm:29.7.0"], - ["metro", "npm:0.80.12"], - ["metro-cache", "npm:0.80.12"], - ["metro-core", "npm:0.80.12"], - ["metro-runtime", "npm:0.80.12"] - ], - "linkType": "HARD", - }] - ]], - ["metro-core", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-core-npm-0.80.12-ff30cce463-aed1237f23.zip/node_modules/metro-core/", - "packageDependencies": [ - ["metro-core", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"], - ["lodash.throttle", "npm:4.1.1"], - ["metro-resolver", "npm:0.80.12"] - ], - "linkType": "HARD", - }] - ]], - ["metro-file-map", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-file-map-npm-0.80.12-b1afc5df14-f335aade44.zip/node_modules/metro-file-map/", - "packageDependencies": [ - ["metro-file-map", "npm:0.80.12"], - ["anymatch", "npm:3.1.2"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["fb-watchman", "npm:2.0.1"], - ["flow-enums-runtime", "npm:0.0.6"], - ["fsevents", "patch:fsevents@npm%3A2.3.3#builtin::version=2.3.3&hash=11e9ea"], - ["graceful-fs", "npm:4.2.6"], - ["invariant", "npm:2.2.4"], - ["jest-worker", "npm:29.7.0"], - ["micromatch", "npm:4.0.8"], - ["node-abort-controller", "npm:3.1.1"], - ["nullthrows", "npm:1.1.1"], - ["walker", "npm:1.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["metro-minify-terser", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-minify-terser-npm-0.80.12-7e0e86c5f6-12ba071b0d.zip/node_modules/metro-minify-terser/", - "packageDependencies": [ - ["metro-minify-terser", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"], - ["terser", "npm:5.33.0"] - ], - "linkType": "HARD", - }] - ]], - ["metro-react-native-babel-preset", [ - ["npm:0.66.0", { - "packageLocation": "./.yarn/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-fb689698d9.zip/node_modules/metro-react-native-babel-preset/", - "packageDependencies": [ - ["metro-react-native-babel-preset", "npm:0.66.0"] - ], - "linkType": "SOFT", - }], - ["virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0", { - "packageLocation": "./.yarn/$$virtual/metro-react-native-babel-preset-virtual-e00a56a58e/0/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-fb689698d9.zip/node_modules/metro-react-native-babel-preset/", - "packageDependencies": [ - ["metro-react-native-babel-preset", "virtual:17fcf3e10ac8bd39c0d9fbfd6746294981268b395dfd85bce8d98da8da52c944c5f28eb8dfef7a699de6a22e8b6433c00645ce4ce7f24e391fb2903a4454c638#npm:0.66.0"], - ["@babel/core", "npm:7.14.2"], - ["@babel/plugin-proposal-class-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-proposal-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-optional-catch-binding", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-proposal-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-syntax-dynamic-import", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-export-default-from", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/plugin-syntax-flow", "virtual:8acc9c694b6eded950b925aff782d8aecec0f05372f5ba72936b47f7251ccae227615f553fb1eb7625267f0d050e86339bd7d11ffacf7b5e1c67254498223817#npm:7.12.13"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.8.3"], - ["@babel/plugin-transform-arrow-functions", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-async-to-generator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-block-scoping", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-classes", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-computed-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-destructuring", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.17"], - ["@babel/plugin-transform-exponentiation-operator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-flow-strip-types", "virtual:9b3bb9c4c80694812bd24dac18bc87809035a42e2f0ea6e99b4b5c4feaa1ffe8d5c5a16e1eb61a6ac1520f5243e666390ad664e0e0e51eea0fef108722414282#npm:7.13.0"], - ["@babel/plugin-transform-for-of", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-function-name", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-modules-commonjs", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.0"], - ["@babel/plugin-transform-object-assign", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/plugin-transform-parameters", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.14.2"], - ["@babel/plugin-transform-react-display-name", "virtual:a4937c06c86e2e042def06cbc9853334b47667349aa84bdd59da2842786c795a36e4e43548a74acbc2d3da3590ef011f57937c49ab90e5db400bc32cc1498347#npm:7.14.2"], - ["@babel/plugin-transform-react-jsx", "virtual:7cc7fc7e39931b0f5fedec38525a1a6a4807e64c3f1e3487554c835cdbc9892968243d1b6627dc35ddeef8bcd428995494b624e95eb125fae3c03cfcc60a4d1c#npm:7.13.12"], - ["@babel/plugin-transform-react-jsx-self", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.12.13"], - ["@babel/plugin-transform-react-jsx-source", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"], - ["@babel/plugin-transform-regenerator", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.15"], - ["@babel/plugin-transform-runtime", "virtual:e00a56a58ea129f9f65aaa50bbf0f1b790348241a4ad27ea682e945bb0949c25192eebf4e7cad795c5f80f283f3158209d52c7d91c973644572e4a2ceffddbb9#npm:7.14.2"], - ["@babel/plugin-transform-shorthand-properties", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-spread", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-sticky-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/plugin-transform-template-literals", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.13.0"], - ["@babel/plugin-transform-typescript", "virtual:3bdad18642ba18161a6ef6cdf8b4a7906e6b99a0a2480d5932659d01453589d3334d0fbeee525c4e4294721a63b138132fd8ca7c0627d3730c83c531a15125c1#npm:7.13.0"], - ["@babel/plugin-transform-unicode-regex", "virtual:a3a40d63ff654c07f58822cc98a84bed2432beced29b1c1fb2fb1f0efefd4b17804503e61f60502d3a877c0b2d52e503dc4aa8d2651927d40c98ff8bc41f4e93#npm:7.12.13"], - ["@babel/template", "npm:7.12.13"], - ["@types/babel__core", null], - ["react-refresh", "npm:0.4.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["metro-resolver", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-resolver-npm-0.80.12-de2c2a6cdf-b169f56f93.zip/node_modules/metro-resolver/", - "packageDependencies": [ - ["metro-resolver", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["metro-runtime", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-runtime-npm-0.80.12-8e7410ce37-3a530f80f5.zip/node_modules/metro-runtime/", - "packageDependencies": [ - ["metro-runtime", "npm:0.80.12"], - ["@babel/runtime", "npm:7.25.6"], - ["flow-enums-runtime", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["metro-source-map", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-source-map-npm-0.80.12-be9e4ab885-1d03767505.zip/node_modules/metro-source-map/", - "packageDependencies": [ - ["metro-source-map", "npm:0.80.12"], - ["@babel/traverse", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"], - ["flow-enums-runtime", "npm:0.0.6"], - ["invariant", "npm:2.2.4"], - ["metro-symbolicate", "npm:0.80.12"], - ["nullthrows", "npm:1.1.1"], - ["ob1", "npm:0.80.12"], - ["source-map", "npm:0.5.7"], - ["vlq", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["metro-symbolicate", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-symbolicate-npm-0.80.12-e606a89ac8-17d69840c1.zip/node_modules/metro-symbolicate/", - "packageDependencies": [ - ["metro-symbolicate", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"], - ["invariant", "npm:2.2.4"], - ["metro-source-map", "npm:0.80.12"], - ["nullthrows", "npm:1.1.1"], - ["source-map", "npm:0.5.7"], - ["through2", "npm:2.0.5"], - ["vlq", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["metro-transform-plugins", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-transform-plugins-npm-0.80.12-07eb90f0b6-ddb710bf28.zip/node_modules/metro-transform-plugins/", - "packageDependencies": [ - ["metro-transform-plugins", "npm:0.80.12"], - ["@babel/core", "npm:7.25.2"], - ["@babel/generator", "npm:7.25.6"], - ["@babel/template", "npm:7.12.13"], - ["@babel/traverse", "npm:7.25.6"], - ["flow-enums-runtime", "npm:0.0.6"], - ["nullthrows", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["metro-transform-worker", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/metro-transform-worker-npm-0.80.12-382c009c6c-3531171f63.zip/node_modules/metro-transform-worker/", - "packageDependencies": [ - ["metro-transform-worker", "npm:0.80.12"], - ["@babel/core", "npm:7.25.2"], - ["@babel/generator", "npm:7.25.6"], - ["@babel/parser", "npm:7.25.6"], - ["@babel/types", "npm:7.25.6"], - ["flow-enums-runtime", "npm:0.0.6"], - ["metro", "npm:0.80.12"], - ["metro-babel-transformer", "npm:0.80.12"], - ["metro-cache", "npm:0.80.12"], - ["metro-cache-key", "npm:0.80.12"], - ["metro-minify-terser", "npm:0.80.12"], - ["metro-source-map", "npm:0.80.12"], - ["metro-transform-plugins", "npm:0.80.12"], - ["nullthrows", "npm:1.1.1"] - ], - "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.4", { - "packageLocation": "./.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-bc522ad93c.zip/node_modules/micromatch/", - "packageDependencies": [ - ["micromatch", "npm:4.0.4"], - ["braces", "npm:3.0.2"], - ["picomatch", "npm:2.2.3"] - ], - "linkType": "HARD", - }], - ["npm:4.0.8", { - "packageLocation": "./.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-fcd1ab59af.zip/node_modules/micromatch/", - "packageDependencies": [ - ["micromatch", "npm:4.0.8"], - ["braces", "npm:3.0.3"], - ["picomatch", "npm:2.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["microtime", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/unplugged/microtime-npm-3.0.0-eb762146b0/node_modules/microtime/", - "packageDependencies": [ - ["microtime", "npm:3.0.0"], - ["node-addon-api", "npm:1.7.2"], - ["node-gyp", "npm:8.0.0"], - ["node-gyp-build", "npm:3.9.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", - }], - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/mime-npm-2.6.0-88b89d8de0-844542a865.zip/node_modules/mime/", - "packageDependencies": [ - ["mime", "npm:2.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", - }], - ["npm:1.47.0", { - "packageLocation": "./.yarn/cache/mime-db-npm-1.47.0-a85d74ef62-f5f9220dd5.zip/node_modules/mime-db/", - "packageDependencies": [ - ["mime-db", "npm:1.47.0"] - ], - "linkType": "HARD", - }], - ["npm:1.52.0", { - "packageLocation": "./.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-cfa3f12a40.zip/node_modules/mime-db/", - "packageDependencies": [ - ["mime-db", "npm:1.52.0"] - ], - "linkType": "HARD", - }], - ["npm:1.53.0", { - "packageLocation": "./.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-367523ca82.zip/node_modules/mime-db/", - "packageDependencies": [ - ["mime-db", "npm:1.53.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", - }], - ["npm:2.1.30", { - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.30-500b101efd-c7ca8a9980.zip/node_modules/mime-types/", - "packageDependencies": [ - ["mime-types", "npm:2.1.30"], - ["mime-db", "npm:1.47.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.35", { - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-1cbad57696.zip/node_modules/mime-types/", - "packageDependencies": [ - ["mime-types", "npm:2.1.35"], - ["mime-db", "npm:1.52.0"] - ], - "linkType": "HARD", - }] - ]], - ["mimic-fn", [ - ["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: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", - }] - ]], - ["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", - }], - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/minimatch-npm-3.1.2-9405269906-1a7584a6de.zip/node_modules/minimatch/", - "packageDependencies": [ - ["minimatch", "npm:3.1.2"], - ["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", - }], - ["npm:1.2.8", { - "packageLocation": "./.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-e3f8b422f9.zip/node_modules/minimist/", - "packageDependencies": [ - ["minimist", "npm:1.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["minimist-options", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-51f1aba56f.zip/node_modules/minimist-options/", - "packageDependencies": [ - ["minimist-options", "npm:4.1.0"], - ["arrify", "npm:1.0.1"], - ["is-plain-obj", "npm:1.1.0"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["minipass", [ - ["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-fetch", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/minipass-fetch-npm-1.3.3-6dd11d4b13-cc93f86391.zip/node_modules/minipass-fetch/", - "packageDependencies": [ - ["minipass-fetch", "npm:1.3.3"], - ["encoding", "npm:0.1.13"], - ["minipass", "npm:3.1.3"], - ["minipass-sized", "npm:1.0.3"], - ["minizlib", "npm:2.1.2"] - ], - "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", - }] - ]], - ["minipass-sized", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-747cb22e8a.zip/node_modules/minipass-sized/", - "packageDependencies": [ - ["minipass-sized", "npm:1.0.3"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["minizlib", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-5a45b57b34.zip/node_modules/minizlib/", - "packageDependencies": [ - ["minizlib", "npm:2.1.2"], - ["minipass", "npm:3.1.3"], - ["yallist", "npm:4.0.0"] - ], - "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.6", { - "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-d564a43d5d.zip/node_modules/mkdirp/", - "packageDependencies": [ - ["mkdirp", "npm:0.5.6"], - ["minimist", "npm:1.2.8"] - ], - "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", - }] - ]], - ["modify-values", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/modify-values-npm-1.0.1-9b2377e166-55165ae8b4.zip/node_modules/modify-values/", - "packageDependencies": [ - ["modify-values", "npm:1.0.1"] - ], - "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.2", { - "packageLocation": "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-9b65fb709b.zip/node_modules/ms/", - "packageDependencies": [ - ["ms", "npm:2.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.1.3", { - "packageLocation": "./.yarn/cache/ms-npm-2.1.3-81ff3cfac1-6e721e648a.zip/node_modules/ms/", - "packageDependencies": [ - ["ms", "npm:2.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["mute-stream", [ - ["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", - }] - ]], - ["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", - }] - ]], - ["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.3", { - "packageLocation": "./.yarn/cache/negotiator-npm-0.6.3-9d50e36171-5899e1bf5c.zip/node_modules/negotiator/", - "packageDependencies": [ - ["negotiator", "npm:0.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["neo-async", [ - ["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", - }] - ]], - ["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.4", { - "packageLocation": "./.yarn/cache/no-case-npm-3.0.4-12884c3d98-84db4909ca.zip/node_modules/no-case/", - "packageDependencies": [ - ["no-case", "npm:3.0.4"], - ["lower-case", "npm:2.0.2"], - ["tslib", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["nocache", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/nocache-npm-3.0.4-9393fdc373-62766a62c6.zip/node_modules/nocache/", - "packageDependencies": [ - ["nocache", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["node-abort-controller", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-a3ce38ce30.zip/node_modules/node-abort-controller/", - "packageDependencies": [ - ["node-abort-controller", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["node-addon-api", [ - ["npm:1.7.2", { - "packageLocation": "./.yarn/unplugged/node-addon-api-npm-1.7.2-c341ccaeb6/node_modules/node-addon-api/", - "packageDependencies": [ - ["node-addon-api", "npm:1.7.2"], - ["node-gyp", "npm:8.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-dir", [ - ["npm:0.1.17", { - "packageLocation": "./.yarn/cache/node-dir-npm-0.1.17-e25963e120-80c61dbf8d.zip/node_modules/node-dir/", - "packageDependencies": [ - ["node-dir", "npm:0.1.17"], - ["minimatch", "npm:3.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-fetch", [ - ["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", - }], - ["npm:2.7.0", { - "packageLocation": "./.yarn/cache/node-fetch-npm-2.7.0-587d57004e-0f9852fee4.zip/node_modules/node-fetch/", - "packageDependencies": [ - ["node-fetch", "npm:2.7.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0", { - "packageLocation": "./.yarn/$$virtual/node-fetch-virtual-aeed957619/0/cache/node-fetch-npm-2.7.0-587d57004e-0f9852fee4.zip/node_modules/node-fetch/", - "packageDependencies": [ - ["node-fetch", "virtual:4fc9353fbf2f10857fbaec70c302e66990db165eaff8a2c1432cc1769309fe86c1f2dc2da2449f41e81bbc0197bee588b91575672b46bba970715cd321dccf45#npm:2.7.0"], - ["@types/encoding", null], - ["encoding", null], - ["whatwg-url", "npm:5.0.0"] - ], - "packagePeers": [ - "@types/encoding", - "encoding" - ], - "linkType": "HARD", - }] - ]], - ["node-forge", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/node-forge-npm-1.3.1-f31fd566cc-cbb7d3386b.zip/node_modules/node-forge/", - "packageDependencies": [ - ["node-forge", "npm:1.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["node-gyp", [ - ["npm:8.0.0", { - "packageLocation": "./.yarn/unplugged/node-gyp-npm-8.0.0-a27599670d/node_modules/node-gyp/", - "packageDependencies": [ - ["node-gyp", "npm:8.0.0"], - ["env-paths", "npm:2.2.1"], - ["glob", "npm:7.1.7"], - ["graceful-fs", "npm:4.2.6"], - ["make-fetch-happen", "npm:8.0.14"], - ["nopt", "npm:5.0.0"], - ["npmlog", "npm:4.1.2"], - ["rimraf", "npm:3.0.2"], - ["semver", "npm:7.3.5"], - ["tar", "npm:6.1.0"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-gyp-build", [ - ["npm:3.9.0", { - "packageLocation": "./.yarn/cache/node-gyp-build-npm-3.9.0-b5d3188708-d95a4a8cb4.zip/node_modules/node-gyp-build/", - "packageDependencies": [ - ["node-gyp-build", "npm:3.9.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-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: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.5"], - ["shellwords", "npm:0.1.1"], - ["uuid", "npm:8.3.2"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-releases", [ - ["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", - }], - ["npm:2.0.18", { - "packageLocation": "./.yarn/cache/node-releases-npm-2.0.18-51abc46668-e2b4744c04.zip/node_modules/node-releases/", - "packageDependencies": [ - ["node-releases", "npm:2.0.18"] - ], - "linkType": "HARD", - }] - ]], - ["node-stream-zip", [ - ["npm:1.15.0", { - "packageLocation": "./.yarn/cache/node-stream-zip-npm-1.15.0-47adb9fcfb-4a207c1f7b.zip/node_modules/node-stream-zip/", - "packageDependencies": [ - ["node-stream-zip", "npm:1.15.0"] - ], - "linkType": "HARD", - }] - ]], - ["nopt", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/nopt-npm-5.0.0-304b40fbfe-e1523158fc.zip/node_modules/nopt/", - "packageDependencies": [ - ["nopt", "npm:5.0.0"], - ["abbrev", "npm:1.1.1"] - ], - "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.9"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["semver", "npm:5.7.1"], - ["validate-npm-package-license", "npm:3.0.4"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/normalize-package-data-npm-3.0.2-4ca0cf04d6-a1053ccfe0.zip/node_modules/normalize-package-data/", - "packageDependencies": [ - ["normalize-package-data", "npm:3.0.2"], - ["hosted-git-info", "npm:4.0.2"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["semver", "npm:7.3.5"], - ["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-url", [ - ["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", - }] - ]], - ["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: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", - }] - ]], - ["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", - }] - ]], - ["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", - }] - ]], - ["ob1", [ - ["npm:0.80.12", { - "packageLocation": "./.yarn/cache/ob1-npm-0.80.12-b815aaa055-e9fe0bf133.zip/node_modules/ob1/", - "packageDependencies": [ - ["ob1", "npm:0.80.12"], - ["flow-enums-runtime", "npm:0.0.6"] - ], - "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.10.3", { - "packageLocation": "./.yarn/cache/object-inspect-npm-1.10.3-5aa499f036-f5d21d86db.zip/node_modules/object-inspect/", - "packageDependencies": [ - ["object-inspect", "npm:1.10.3"] - ], - "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-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.2", { - "packageLocation": "./.yarn/cache/object.assign-npm-4.1.2-d52edada1c-a5855cc6db.zip/node_modules/object.assign/", - "packageDependencies": [ - ["object.assign", "npm:4.1.2"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["has-symbols", "npm:1.0.2"], - ["object-keys", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["object.entries", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/object.entries-npm-1.1.3-204f993709-89eec6d43b.zip/node_modules/object.entries/", - "packageDependencies": [ - ["object.entries", "npm:1.1.3"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["has", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["object.fromentries", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.4-cc608f8739-9e02d109f6.zip/node_modules/object.fromentries/", - "packageDependencies": [ - ["object.fromentries", "npm:2.0.4"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["has", "npm:1.0.3"] - ], - "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.3", { - "packageLocation": "./.yarn/cache/object.values-npm-1.1.3-dd86635500-31111fe8b8.zip/node_modules/object.values/", - "packageDependencies": [ - ["object.values", "npm:1.1.3"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["has", "npm:1.0.3"] - ], - "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", - }], - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/on-finished-npm-2.4.1-907af70f88-ed2f28508d.zip/node_modules/on-finished/", - "packageDependencies": [ - ["on-finished", "npm:2.4.1"], - ["ee-first", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["on-headers", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/on-headers-npm-1.0.2-e7cd3ea25e-51e75c8075.zip/node_modules/on-headers/", - "packageDependencies": [ - ["on-headers", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["once", [ - ["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:5.1.2", { - "packageLocation": "./.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e425f6caeb.zip/node_modules/onetime/", - "packageDependencies": [ - ["onetime", "npm:5.1.2"], - ["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", - }], - ["npm:7.4.2", { - "packageLocation": "./.yarn/cache/open-npm-7.4.2-a378c23959-07545fa768.zip/node_modules/open/", - "packageDependencies": [ - ["open", "npm:7.4.2"], - ["is-docker", "npm:2.2.1"], - ["is-wsl", "npm:2.2.0"] - ], - "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", - }], - ["npm:0.9.1", { - "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-577e397aae-bdf5683f98.zip/node_modules/optionator/", - "packageDependencies": [ - ["optionator", "npm:0.9.1"], - ["deep-is", "npm:0.1.3"], - ["fast-levenshtein", "npm:2.0.6"], - ["levn", "npm:0.4.1"], - ["prelude-ls", "npm:1.2.1"], - ["type-check", "npm:0.4.0"], - ["word-wrap", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["ora", [ - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/ora-npm-5.1.0-0f7ce18b2d-53aad8d299.zip/node_modules/ora/", - "packageDependencies": [ - ["ora", "npm:5.1.0"], - ["chalk", "npm:4.1.1"], - ["cli-cursor", "npm:3.1.0"], - ["cli-spinners", "npm:2.6.0"], - ["is-interactive", "npm:1.0.0"], - ["log-symbols", "npm:4.1.0"], - ["mute-stream", "npm:0.0.8"], - ["strip-ansi", "npm:6.0.0"], - ["wcwidth", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:5.4.1", { - "packageLocation": "./.yarn/cache/ora-npm-5.4.1-4f0343adb7-589ac687d6.zip/node_modules/ora/", - "packageDependencies": [ - ["ora", "npm:5.4.1"], - ["bl", "npm:4.1.0"], - ["chalk", "npm:4.1.1"], - ["cli-cursor", "npm:3.1.0"], - ["cli-spinners", "npm:2.9.2"], - ["is-interactive", "npm:1.0.0"], - ["is-unicode-supported", "npm:0.1.0"], - ["log-symbols", "npm:4.1.0"], - ["strip-ansi", "npm:6.0.0"], - ["wcwidth", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["os-name", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/os-name-npm-4.0.0-a24c30b783-6f0d404e34.zip/node_modules/os-name/", - "packageDependencies": [ - ["os-name", "npm:4.0.0"], - ["macos-release", "npm:2.4.1"], - ["windows-release", "npm:4.0.0"] - ], - "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", - }] - ]], - ["p-cancelable", [ - ["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.1.1", { - "packageLocation": "./.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-0ce643f3c9.zip/node_modules/p-cancelable/", - "packageDependencies": [ - ["p-cancelable", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["p-each-series", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-d5a0896eb7.zip/node_modules/p-each-series/", - "packageDependencies": [ - ["p-each-series", "npm:2.2.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-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.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", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-a233d775c8.zip/node_modules/p-locate/", - "packageDependencies": [ - ["p-locate", "npm:5.0.0"], - ["p-limit", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-map", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-4677ae07c7-d51e630d72.zip/node_modules/p-map/", - "packageDependencies": [ - ["p-map", "npm:4.0.0"], - ["aggregate-error", "npm:3.1.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: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.1"], - ["registry-url", "npm:5.1.0"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["param-case", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/param-case-npm-3.0.4-cfb242ad97-879358f671.zip/node_modules/param-case/", - "packageDependencies": [ - ["param-case", "npm:3.0.4"], - ["dot-case", "npm:3.0.4"], - ["tslib", "npm:2.2.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-github-repo-url", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/parse-github-repo-url-npm-1.4.1-a6f5f1254e-9ee4bc572b.zip/node_modules/parse-github-repo-url/", - "packageDependencies": [ - ["parse-github-repo-url", "npm:1.4.1"] - ], - "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.1.0", { - "packageLocation": "./.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-5e09955194.zip/node_modules/parse-json/", - "packageDependencies": [ - ["parse-json", "npm:5.1.0"], - ["@babel/code-frame", "npm:7.12.13"], - ["error-ex", "npm:1.3.2"], - ["json-parse-even-better-errors", "npm:2.3.1"], - ["lines-and-columns", "npm:1.1.6"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/parse-json-npm-5.2.0-00a63b1199-65b1e494a5.zip/node_modules/parse-json/", - "packageDependencies": [ - ["parse-json", "npm:5.2.0"], - ["@babel/code-frame", "npm:7.12.13"], - ["error-ex", "npm:1.3.2"], - ["json-parse-even-better-errors", "npm:2.3.1"], - ["lines-and-columns", "npm:1.1.6"] - ], - "linkType": "HARD", - }] - ]], - ["parse-path", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/parse-path-npm-4.0.3-6d729a9baf-efc641ae5b.zip/node_modules/parse-path/", - "packageDependencies": [ - ["parse-path", "npm:4.0.3"], - ["is-ssh", "npm:1.3.3"], - ["protocols", "npm:1.4.8"], - ["qs", "npm:6.10.1"], - ["query-string", "npm:6.14.1"] - ], - "linkType": "HARD", - }] - ]], - ["parse-url", [ - ["npm:5.0.2", { - "packageLocation": "./.yarn/cache/parse-url-npm-5.0.2-ebef68506c-412d3851bd.zip/node_modules/parse-url/", - "packageDependencies": [ - ["parse-url", "npm:5.0.2"], - ["is-ssh", "npm:1.3.3"], - ["normalize-url", "npm:3.3.0"], - ["parse-path", "npm:4.0.3"], - ["protocols", "npm:1.4.8"] - ], - "linkType": "HARD", - }] - ]], - ["parse5", [ - ["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", - }] - ]], - ["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", - }] - ]], - ["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-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-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.6"], - ["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", - }] - ]], - ["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", - }] - ]], - ["performance-testing", [ - ["workspace:packages/performance-testing", { - "packageLocation": "./packages/performance-testing/", - "packageDependencies": [ - ["performance-testing", "workspace:packages/performance-testing"], - ["@native-html/transient-render-engine", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#workspace:packages/transient-render-engine"], - ["benchmark", "npm:2.1.4"], - ["lodash", "npm:4.17.21"], - ["microtime", "npm:3.0.0"], - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"] - ], - "linkType": "SOFT", - }] - ]], - ["picocolors", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-8ffaa062d8.zip/node_modules/picocolors/", - "packageDependencies": [ - ["picocolors", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["picomatch", [ - ["npm:2.2.3", { - "packageLocation": "./.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-f8c9323bc3.zip/node_modules/picomatch/", - "packageDependencies": [ - ["picomatch", "npm:2.2.3"] - ], - "linkType": "HARD", - }], - ["npm:2.3.1", { - "packageLocation": "./.yarn/cache/picomatch-npm-2.3.1-c782cfd986-5e3bbbf6a7.zip/node_modules/picomatch/", - "packageDependencies": [ - ["picomatch", "npm:2.3.1"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:4.0.6", { - "packageLocation": "./.yarn/cache/pirates-npm-4.0.6-a8ec571a43-1c8546420a.zip/node_modules/pirates/", - "packageDependencies": [ - ["pirates", "npm:4.0.6"] - ], - "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", - }] - ]], - ["platform", [ - ["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", - }] - ]], - ["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-value-parser", [ - ["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", - }] - ]], - ["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", - }], - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-bc1649f521.zip/node_modules/prelude-ls/", - "packageDependencies": [ - ["prelude-ls", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["prepend-file", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/prepend-file-npm-2.0.0-396312303b-aaa45de1fa.zip/node_modules/prepend-file/", - "packageDependencies": [ - ["prepend-file", "npm:2.0.0"], - ["path-exists", "npm:4.0.0"], - ["temp-write", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["prepend-http", [ - ["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.3.0", { - "packageLocation": "./.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-652640cc8b.zip/node_modules/prettier/", - "packageDependencies": [ - ["prettier", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["prettier-linter-helpers", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-6d698b9c8d.zip/node_modules/prettier-linter-helpers/", - "packageDependencies": [ - ["prettier-linter-helpers", "npm:1.0.0"], - ["fast-diff", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["pretty-format", [ - ["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.3.0"], - ["react-is", "npm:17.0.2"] - ], - "linkType": "HARD", - }], - ["npm:29.7.0", { - "packageLocation": "./.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-0ab8b31239.zip/node_modules/pretty-format/", - "packageDependencies": [ - ["pretty-format", "npm:29.7.0"], - ["@jest/schemas", "npm:29.6.3"], - ["ansi-styles", "npm:5.2.0"], - ["react-is", "npm:18.3.1"] - ], - "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:8.3.0", { - "packageLocation": "./.yarn/cache/promise-npm-8.3.0-fbfb957417-5f143ccbf7.zip/node_modules/promise/", - "packageDependencies": [ - ["promise", "npm:8.3.0"], - ["asap", "npm:2.0.6"] - ], - "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:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/promise-inflight-virtual-f8ad9d313c/0/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/", - "packageDependencies": [ - ["promise-inflight", "virtual:a8e1454dc86b2e862189e6c7558c296d3e67652cb7e2ca17ddada1020ff86c2e9274f967b519bed24d3daaa8a3b1f9d4ac5ad4c0932dd839e470a7c77b57bb40#npm:1.0.1"], - ["bluebird", null] - ], - "packagePeers": [ - "bluebird" - ], - "linkType": "HARD", - }] - ]], - ["promise-retry", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-325e99d059.zip/node_modules/promise-retry/", - "packageDependencies": [ - ["promise-retry", "npm:2.0.1"], - ["err-code", "npm:2.0.3"], - ["retry", "npm:0.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["prompts", [ - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/prompts-npm-2.4.1-dd3df3be17-705eae8c35.zip/node_modules/prompts/", - "packageDependencies": [ - ["prompts", "npm:2.4.1"], - ["kleur", "npm:3.0.3"], - ["sisteransi", "npm:1.0.5"] - ], - "linkType": "HARD", - }], - ["npm:2.4.2", { - "packageLocation": "./.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-ccd7f7f8df.zip/node_modules/prompts/", - "packageDependencies": [ - ["prompts", "npm:2.4.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", - }] - ]], - ["protocols", [ - ["npm:1.4.8", { - "packageLocation": "./.yarn/cache/protocols-npm-1.4.8-f05b04a69f-7d3189138e.zip/node_modules/protocols/", - "packageDependencies": [ - ["protocols", "npm:1.4.8"] - ], - "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", - }] - ]], - ["pump", [ - ["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", - }] - ]], - ["punycode", [ - ["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.1.1", { - "packageLocation": "./.yarn/cache/pupa-npm-2.1.1-fb256825ba-b300d979e1.zip/node_modules/pupa/", - "packageDependencies": [ - ["pupa", "npm:2.1.1"], - ["escape-goat", "npm:2.1.1"] - ], - "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.10.1", { - "packageLocation": "./.yarn/cache/qs-npm-6.10.1-12d3ab7795-25e50a9107.zip/node_modules/qs/", - "packageDependencies": [ - ["qs", "npm:6.10.1"], - ["side-channel", "npm:1.0.4"] - ], - "linkType": "HARD", - }], - ["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", - }] - ]], - ["query-string", [ - ["npm:6.14.1", { - "packageLocation": "./.yarn/cache/query-string-npm-6.14.1-dad16e37e6-5d651ac420.zip/node_modules/query-string/", - "packageDependencies": [ - ["query-string", "npm:6.14.1"], - ["decode-uri-component", "npm:0.2.0"], - ["filter-obj", "npm:1.1.0"], - ["split-on-first", "npm:1.1.0"], - ["strict-uri-encode", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["querystring", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/querystring-npm-0.2.1-15cb60859d-59d27ec60e.zip/node_modules/querystring/", - "packageDependencies": [ - ["querystring", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["queue", [ - ["npm:6.0.2", { - "packageLocation": "./.yarn/cache/queue-npm-6.0.2-ebbcf599cf-07e7c28203.zip/node_modules/queue/", - "packageDependencies": [ - ["queue", "npm:6.0.2"], - ["inherits", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["queue-microtask", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-0f88d794d4.zip/node_modules/queue-microtask/", - "packageDependencies": [ - ["queue-microtask", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["quick-lru", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-91847e4b07.zip/node_modules/quick-lru/", - "packageDependencies": [ - ["quick-lru", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["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", - }] - ]], - ["ramda", [ - ["npm:0.27.2", { - "packageLocation": "./.yarn/cache/ramda-npm-0.27.2-5f4ede0eb9-ecddbb398a.zip/node_modules/ramda/", - "packageDependencies": [ - ["ramda", "npm:0.27.2"] - ], - "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", - }] - ]], - ["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.8"], - ["minimist", "npm:1.2.5"], - ["strip-json-comments", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["react", [ - ["npm:17.0.2", { - "packageLocation": "./.yarn/cache/react-npm-17.0.2-99ba37d931-7d0dfebafe.zip/node_modules/react/", - "packageDependencies": [ - ["react", "npm:17.0.2"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["react-devtools-core", [ - ["npm:5.3.1", { - "packageLocation": "./.yarn/cache/react-devtools-core-npm-5.3.1-57e06d278c-bfb47a22a3.zip/node_modules/react-devtools-core/", - "packageDependencies": [ - ["react-devtools-core", "npm:5.3.1"], - ["shell-quote", "npm:1.8.1"], - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"] - ], - "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.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", - }], - ["npm:18.3.1", { - "packageLocation": "./.yarn/cache/react-is-npm-18.3.1-370a81e1e9-b04c47c01c.zip/node_modules/react-is/", - "packageDependencies": [ - ["react-is", "npm:18.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["react-native", [ - ["npm:0.74.5", { - "packageLocation": "./.yarn/unplugged/react-native-virtual-ae095fdbcb/node_modules/react-native/", - "packageDependencies": [ - ["react-native", "npm:0.74.5"] - ], - "linkType": "SOFT", - }], - ["virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5", { - "packageLocation": "./.yarn/unplugged/react-native-virtual-ae095fdbcb/node_modules/react-native/", - "packageDependencies": [ - ["react-native", "virtual:36381c22eb5de01c3d981c8d960660c2b4277af6300e0899b737dedc516ae9724a99e7a443bbdef3fc64be8cb5f87dc16f98a23524464ba70d85dc38ab0ea121#npm:0.74.5"], - ["@jest/create-cache-key-function", "npm:29.7.0"], - ["@react-native-community/cli", "npm:13.6.9"], - ["@react-native-community/cli-platform-android", "npm:13.6.9"], - ["@react-native-community/cli-platform-ios", "npm:13.6.9"], - ["@react-native/assets-registry", "npm:0.74.87"], - ["@react-native/codegen", "virtual:31567c2937e97a7b05aa372de0d98e1e3d9f109e9ddfa89ba986aa7b01bb63fc2081bb7dd1aeb05d227ed1fbd11fb438b0be27c79482e59bc4a578e82fa2b3b9#npm:0.74.87"], - ["@react-native/community-cli-plugin", "npm:0.74.87"], - ["@react-native/gradle-plugin", "npm:0.74.87"], - ["@react-native/js-polyfills", "npm:0.74.87"], - ["@react-native/normalize-colors", "npm:0.74.87"], - ["@react-native/virtualized-lists", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:0.74.87"], - ["@types/react", null], - ["@types/types__react", null], - ["abort-controller", "npm:3.0.0"], - ["anser", "npm:1.4.10"], - ["ansi-regex", "npm:5.0.0"], - ["base64-js", "npm:1.5.1"], - ["chalk", "npm:4.1.1"], - ["event-target-shim", "npm:5.0.1"], - ["flow-enums-runtime", "npm:0.0.6"], - ["invariant", "npm:2.2.4"], - ["jest-environment-node", "npm:29.7.0"], - ["jsc-android", "npm:250231.0.0"], - ["memoize-one", "npm:5.2.1"], - ["metro-runtime", "npm:0.80.12"], - ["metro-source-map", "npm:0.80.12"], - ["mkdirp", "npm:0.5.6"], - ["nullthrows", "npm:1.1.1"], - ["pretty-format", "npm:26.6.2"], - ["promise", "npm:8.3.0"], - ["react", null], - ["react-devtools-core", "npm:5.3.1"], - ["react-refresh", "npm:0.14.2"], - ["react-shallow-renderer", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0"], - ["regenerator-runtime", "npm:0.13.11"], - ["scheduler", "npm:0.24.0-canary-efb381bbf-20230505"], - ["stacktrace-parser", "npm:0.1.10"], - ["whatwg-fetch", "npm:3.6.20"], - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"], - ["yargs", "npm:17.7.2"] - ], - "packagePeers": [ - "@types/react", - "@types/types__react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-refresh", [ - ["npm:0.14.2", { - "packageLocation": "./.yarn/cache/react-refresh-npm-0.14.2-95df341b4d-04c24a94d8.zip/node_modules/react-refresh/", - "packageDependencies": [ - ["react-refresh", "npm:0.14.2"] - ], - "linkType": "HARD", - }], - ["npm:0.4.3", { - "packageLocation": "./.yarn/cache/react-refresh-npm-0.4.3-9a91aa5898-9b1de50592.zip/node_modules/react-refresh/", - "packageDependencies": [ - ["react-refresh", "npm:0.4.3"] - ], - "linkType": "HARD", - }] - ]], - ["react-shallow-renderer", [ - ["npm:16.15.0", { - "packageLocation": "./.yarn/cache/react-shallow-renderer-npm-16.15.0-cf95219885-aee13814b6.zip/node_modules/react-shallow-renderer/", - "packageDependencies": [ - ["react-shallow-renderer", "npm:16.15.0"] - ], - "linkType": "SOFT", - }], - ["virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0", { - "packageLocation": "./.yarn/$$virtual/react-shallow-renderer-virtual-a0e01b2da2/0/cache/react-shallow-renderer-npm-16.15.0-cf95219885-aee13814b6.zip/node_modules/react-shallow-renderer/", - "packageDependencies": [ - ["react-shallow-renderer", "virtual:ae095fdbcbd64346ce3cf1e33fcd8981eb8836551944a1d9da62b7cb294b7cb42326f8ad4ac22097b5af384b48b7424d855a284e6563d15edbb684149f498924#npm:16.15.0"], - ["@types/react", null], - ["object-assign", "npm:4.1.1"], - ["react", null], - ["react-is", "npm:18.3.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "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.2.0"], - ["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:3.0.0", { - "packageLocation": "./.yarn/cache/read-pkg-up-npm-3.0.0-3d7faf047f-3ef50bea6d.zip/node_modules/read-pkg-up/", - "packageDependencies": [ - ["read-pkg-up", "npm:3.0.0"], - ["find-up", "npm:2.1.0"], - ["read-pkg", "npm:3.0.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", - }], - ["npm:3.6.2", { - "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-235f34af4e.zip/node_modules/readable-stream/", - "packageDependencies": [ - ["readable-stream", "npm:3.6.2"], - ["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.6"], - ["micromatch", "npm:3.1.10"], - ["readable-stream", "npm:2.3.7"] - ], - "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.3"] - ], - "linkType": "HARD", - }] - ]], - ["readline", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/readline-npm-1.3.0-c1788eeabc-1638f45209.zip/node_modules/readline/", - "packageDependencies": [ - ["readline", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["recast", [ - ["npm:0.21.5", { - "packageLocation": "./.yarn/cache/recast-npm-0.21.5-8dcd3e46d3-c9dbad5d8e.zip/node_modules/recast/", - "packageDependencies": [ - ["recast", "npm:0.21.5"], - ["ast-types", "npm:0.15.2"], - ["esprima", "npm:4.0.1"], - ["source-map", "npm:0.6.1"], - ["tslib", "npm:2.7.0"] - ], - "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.20.0#builtin::version=1.20.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", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/redent-npm-3.0.0-31892f4906-78c8aa0a10.zip/node_modules/redent/", - "packageDependencies": [ - ["redent", "npm:3.0.0"], - ["indent-string", "npm:4.0.0"], - ["strip-indent", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["regenerate", [ - ["npm:1.4.2", { - "packageLocation": "./.yarn/cache/regenerate-npm-1.4.2-b296c5b63a-54275a99ef.zip/node_modules/regenerate/", - "packageDependencies": [ - ["regenerate", "npm:1.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["regenerate-unicode-properties", [ - ["npm:10.2.0", { - "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-40f8f65e69.zip/node_modules/regenerate-unicode-properties/", - "packageDependencies": [ - ["regenerate-unicode-properties", "npm:10.2.0"], - ["regenerate", "npm:1.4.2"] - ], - "linkType": "HARD", - }], - ["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.2"] - ], - "linkType": "HARD", - }] - ]], - ["regenerator-runtime", [ - ["npm:0.13.11", { - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-b7c850f325.zip/node_modules/regenerator-runtime/", - "packageDependencies": [ - ["regenerator-runtime", "npm:0.13.11"] - ], - "linkType": "HARD", - }], - ["npm:0.13.8", { - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.8-0450f887d6-20178f5753.zip/node_modules/regenerator-runtime/", - "packageDependencies": [ - ["regenerator-runtime", "npm:0.13.8"] - ], - "linkType": "HARD", - }], - ["npm:0.14.1", { - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-945c5856b2.zip/node_modules/regenerator-runtime/", - "packageDependencies": [ - ["regenerator-runtime", "npm:0.14.1"] - ], - "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.14.0"] - ], - "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", - }] - ]], - ["regexp.prototype.flags", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.3.1-f0c34f894f-967e462a83.zip/node_modules/regexp.prototype.flags/", - "packageDependencies": [ - ["regexp.prototype.flags", "npm:1.3.1"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["regexpp", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/regexpp-npm-3.1.0-94a1868d49-69d0ce6b44.zip/node_modules/regexpp/", - "packageDependencies": [ - ["regexpp", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["regexpu-core", [ - ["npm:4.7.1", { - "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-a4d25a11cb.zip/node_modules/regexpu-core/", - "packageDependencies": [ - ["regexpu-core", "npm:4.7.1"], - ["regenerate", "npm:1.4.2"], - ["regenerate-unicode-properties", "npm:8.2.0"], - ["regjsgen", "npm:0.5.2"], - ["regjsparser", "npm:0.6.9"], - ["unicode-match-property-ecmascript", "npm:1.0.4"], - ["unicode-match-property-value-ecmascript", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:5.3.2", { - "packageLocation": "./.yarn/cache/regexpu-core-npm-5.3.2-89effc52a2-7da18c0a32.zip/node_modules/regexpu-core/", - "packageDependencies": [ - ["regexpu-core", "npm:5.3.2"], - ["@babel/regjsgen", "npm:0.8.0"], - ["regenerate", "npm:1.4.2"], - ["regenerate-unicode-properties", "npm:10.2.0"], - ["regjsparser", "npm:0.9.1"], - ["unicode-match-property-ecmascript", "npm:2.0.0"], - ["unicode-match-property-value-ecmascript", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["registry-auth-token", [ - ["npm:4.2.1", { - "packageLocation": "./.yarn/cache/registry-auth-token-npm-4.2.1-200e2be697-10ca9caeea.zip/node_modules/registry-auth-token/", - "packageDependencies": [ - ["registry-auth-token", "npm:4.2.1"], - ["rc", "npm:1.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["registry-url", [ - ["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.9", { - "packageLocation": "./.yarn/cache/regjsparser-npm-0.6.9-4fe5869344-ad533fe6ce.zip/node_modules/regjsparser/", - "packageDependencies": [ - ["regjsparser", "npm:0.6.9"], - ["jsesc", "npm:0.5.0"] - ], - "linkType": "HARD", - }], - ["npm:0.9.1", { - "packageLocation": "./.yarn/cache/regjsparser-npm-0.9.1-47cd7c2ee2-822c1a4e34.zip/node_modules/regjsparser/", - "packageDependencies": [ - ["regjsparser", "npm:0.9.1"], - ["jsesc", "npm:0.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["release-config", [ - ["workspace:packages/release-config", { - "packageLocation": "./packages/release-config/", - "packageDependencies": [ - ["release-config", "workspace:packages/release-config"] - ], - "linkType": "SOFT", - }] - ]], - ["release-it", [ - ["patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A.", { - "packageLocation": "./.yarn/cache/release-it-patch-4c65437ec8-ae8acf9872.zip/node_modules/release-it/", - "packageDependencies": [ - ["release-it", "patch:release-it@npm%3A14.0.4#patches/release-it.patch::version=14.0.4&hash=703bfd&locator=core%40workspace%3A."], - ["@iarna/toml", "npm:2.2.5"], - ["@octokit/rest", "npm:18.0.6"], - ["async-retry", "npm:1.3.1"], - ["chalk", "npm:4.1.0"], - ["cosmiconfig", "npm:7.0.0"], - ["debug", "virtual:4c65437ec8a73b5da90307695a11dba836273a981aedac66a347069b9fee1593434325a3318288f83033c53b08a591678c4fe5b1f1003342e1ccdf54592189ab#npm:4.2.0"], - ["deprecated-obj", "npm:2.0.0"], - ["execa", "npm:4.0.3"], - ["find-up", "npm:5.0.0"], - ["form-data", "npm:3.0.0"], - ["git-url-parse", "npm:11.3.0"], - ["globby", "npm:11.0.1"], - ["got", "npm:11.7.0"], - ["import-cwd", "npm:3.0.0"], - ["inquirer", "npm:7.3.3"], - ["is-ci", "npm:2.0.0"], - ["lodash", "npm:4.17.20"], - ["mime-types", "npm:2.1.27"], - ["ora", "npm:5.1.0"], - ["os-name", "npm:4.0.0"], - ["parse-json", "npm:5.1.0"], - ["semver", "npm:7.3.2"], - ["shelljs", "npm:0.8.4"], - ["update-notifier", "npm:5.0.0"], - ["url-join", "npm:4.0.1"], - ["uuid", "npm:8.3.1"], - ["yaml", "npm:1.10.0"], - ["yargs-parser", "npm:20.2.1"] - ], - "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.4", { - "packageLocation": "./.yarn/cache/repeat-element-npm-1.1.4-7e649ab5b1-44db955082.zip/node_modules/repeat-element/", - "packageDependencies": [ - ["repeat-element", "npm:1.1.4"] - ], - "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", - }] - ]], - ["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.11.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.5"], - ["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.30"], - ["oauth-sign", "npm:0.9.0"], - ["performance-now", "npm:2.1.0"], - ["qs", "npm:6.5.2"], - ["safe-buffer", "npm:5.2.1"], - ["tough-cookie", "npm:2.5.0"], - ["tunnel-agent", "npm:0.6.0"], - ["uuid", "npm:3.4.0"] - ], - "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:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4", { - "packageLocation": "./.yarn/$$virtual/request-promise-core-virtual-b91c886633/0/cache/request-promise-core-npm-1.1.4-cb9fff6c90-7c9c90bf00.zip/node_modules/request-promise-core/", - "packageDependencies": [ - ["request-promise-core", "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#npm:1.1.4"], - ["@types/request", null], - ["lodash", "npm:4.17.21"], - ["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:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9", { - "packageLocation": "./.yarn/$$virtual/request-promise-native-virtual-767bea4895/0/cache/request-promise-native-npm-1.0.9-6ae8e592e8-532570f005.zip/node_modules/request-promise-native/", - "packageDependencies": [ - ["request-promise-native", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:1.0.9"], - ["@types/request", null], - ["request", "npm:2.88.2"], - ["request-promise-core", "virtual:767bea4895a3ed98d0bcda3e93d9b873920209fe315595ec00c94f23ce16d0781cf6b7a5a1404cca07eb4124876f73d41343e3e9031f07485c94e2bc5ca7d8be#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", - }] - ]], - ["resolve", [ - ["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.4.0"], - ["path-parse", "npm:1.0.6"] - ], - "linkType": "HARD", - }], - ["patch:resolve@npm%3A2.0.0-next.3#builtin::version=2.0.0-next.3&hash=3388aa", { - "packageLocation": "./.yarn/cache/resolve-patch-14562169ef-a36d174b5e.zip/node_modules/resolve/", - "packageDependencies": [ - ["resolve", "patch:resolve@npm%3A2.0.0-next.3#builtin::version=2.0.0-next.3&hash=3388aa"], - ["is-core-module", "npm:2.4.0"], - ["path-parse", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-alpn", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.1.2-cb74069612-18a00b3423.zip/node_modules/resolve-alpn/", - "packageDependencies": [ - ["resolve-alpn", "npm:1.1.2"] - ], - "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-global", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/resolve-global-npm-1.0.0-9097e8a466-337635c53b.zip/node_modules/resolve-global/", - "packageDependencies": [ - ["resolve-global", "npm:1.0.0"], - ["global-dirs", "npm:0.1.1"] - ], - "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", - }] - ]], - ["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: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.2"], - ["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", - }] - ]], - ["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.7"] - ], - "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.7"] - ], - "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.2.0", { - "packageLocation": "./.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-3d12f0251a.zip/node_modules/run-parallel/", - "packageDependencies": [ - ["run-parallel", "npm:1.2.0"], - ["queue-microtask", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["rxjs", [ - ["npm:6.6.7", { - "packageLocation": "./.yarn/cache/rxjs-npm-6.6.7-055046ea3c-1146975cbd.zip/node_modules/rxjs/", - "packageDependencies": [ - ["rxjs", "npm:6.6.7"], - ["tslib", "npm:1.14.1"] - ], - "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.6"], - ["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", - }] - ]], - ["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", - }] - ]], - ["scheduler", [ - ["npm:0.24.0-canary-efb381bbf-20230505", { - "packageLocation": "./.yarn/cache/scheduler-npm-0.24.0-canary-efb381bbf-20230505-6f74d88bd1-509277acc5.zip/node_modules/scheduler/", - "packageDependencies": [ - ["scheduler", "npm:0.24.0-canary-efb381bbf-20230505"], - ["loose-envify", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["selfsigned", [ - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/selfsigned-npm-2.4.1-1ca1b883c5-ee320d74d9.zip/node_modules/selfsigned/", - "packageDependencies": [ - ["selfsigned", "npm:2.4.1"], - ["@types/node-forge", "npm:1.3.11"], - ["node-forge", "npm:1.3.1"] - ], - "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:6.3.1", { - "packageLocation": "./.yarn/cache/semver-npm-6.3.1-bcba31fdbe-7c627af982.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:6.3.1"] - ], - "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", - }], - ["npm:7.3.5", { - "packageLocation": "./.yarn/cache/semver-npm-7.3.5-618cf5db6a-c53624ddf4.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:7.3.5"], - ["lru-cache", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.6.3", { - "packageLocation": "./.yarn/cache/semver-npm-7.6.3-57e82c14d5-d9e99b5768.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:7.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["semver-diff", [ - ["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", - }] - ]], - ["send", [ - ["npm:0.19.0", { - "packageLocation": "./.yarn/cache/send-npm-0.19.0-4297594770-01adf870a9.zip/node_modules/send/", - "packageDependencies": [ - ["send", "npm:0.19.0"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["depd", "npm:2.0.0"], - ["destroy", "npm:1.2.0"], - ["encodeurl", "npm:1.0.2"], - ["escape-html", "npm:1.0.3"], - ["etag", "npm:1.8.1"], - ["fresh", "npm:0.5.2"], - ["http-errors", "npm:2.0.0"], - ["mime", "npm:1.6.0"], - ["ms", "npm:2.1.3"], - ["on-finished", "npm:2.4.1"], - ["range-parser", "npm:1.2.1"], - ["statuses", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["serialize-error", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/serialize-error-npm-2.1.0-51bc0e0932-3aab305b2e.zip/node_modules/serialize-error/", - "packageDependencies": [ - ["serialize-error", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["serve-static", [ - ["npm:1.16.2", { - "packageLocation": "./.yarn/cache/serve-static-npm-1.16.2-5d8e560aec-dca6f35731.zip/node_modules/serve-static/", - "packageDependencies": [ - ["serve-static", "npm:1.16.2"], - ["encodeurl", "npm:2.0.0"], - ["escape-html", "npm:1.0.3"], - ["parseurl", "npm:1.3.3"], - ["send", "npm:0.19.0"] - ], - "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-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", - }] - ]], - ["setprototypeof", [ - ["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", - }] - ]], - ["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", - }] - ]], - ["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.8.1", { - "packageLocation": "./.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-b984c6a9c5.zip/node_modules/shell-quote/", - "packageDependencies": [ - ["shell-quote", "npm:1.8.1"] - ], - "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.7"], - ["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", - }] - ]], - ["side-channel", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-84258ce3ed.zip/node_modules/side-channel/", - "packageDependencies": [ - ["side-channel", "npm:1.0.4"], - ["call-bind", "npm:1.0.2"], - ["get-intrinsic", "npm:1.1.1"], - ["object-inspect", "npm:1.10.3"] - ], - "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", - }], - ["npm:3.0.7", { - "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a7f02d991d.zip/node_modules/signal-exit/", - "packageDependencies": [ - ["signal-exit", "npm:3.0.7"] - ], - "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: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: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", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-f411aa0518.zip/node_modules/slice-ansi/", - "packageDependencies": [ - ["slice-ansi", "npm:4.0.0"], - ["ansi-styles", "npm:4.3.0"], - ["astral-regex", "npm:2.0.0"], - ["is-fullwidth-code-point", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["smart-buffer", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/smart-buffer-npm-4.1.0-2a8829a5b4-00a23d82a2.zip/node_modules/smart-buffer/", - "packageDependencies": [ - ["smart-buffer", "npm:4.1.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", - }] - ]], - ["socks", [ - ["npm:2.6.1", { - "packageLocation": "./.yarn/cache/socks-npm-2.6.1-09133d0d22-9a5735cf9b.zip/node_modules/socks/", - "packageDependencies": [ - ["socks", "npm:2.6.1"], - ["ip", "npm:1.1.5"], - ["smart-buffer", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["socks-proxy-agent", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/socks-proxy-agent-npm-5.0.0-0416dc71b7-3d6d5e4425.zip/node_modules/socks-proxy-agent/", - "packageDependencies": [ - ["socks-proxy-agent", "npm:5.0.0"], - ["agent-base", "npm:6.0.2"], - ["debug", "virtual:5dffae5dceca8d383e37ce1404983ff3eaf566153fb551aede58a16b625356caee63d9240a4386c2b8b44a2ff32b72c5d4444045ea31775b520ccbc9788f7985#npm:4.3.2"], - ["socks", "npm:2.6.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", - }] - ]], - ["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.1"], - ["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", - }], - ["npm:0.5.21", { - "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-b4eba15575.zip/node_modules/source-map-support/", - "packageDependencies": [ - ["source-map-support", "npm:0.5.21"], - ["buffer-from", "npm:1.1.1"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["source-map-url", [ - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/source-map-url-npm-0.4.1-747a1f6eba-ed94966781.zip/node_modules/source-map-url/", - "packageDependencies": [ - ["source-map-url", "npm:0.4.1"] - ], - "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.7"] - ], - "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.7"] - ], - "linkType": "HARD", - }] - ]], - ["spdx-license-ids", [ - ["npm:3.0.7", { - "packageLocation": "./.yarn/cache/spdx-license-ids-npm-3.0.7-f2c686cec2-21e38ec5dd.zip/node_modules/spdx-license-ids/", - "packageDependencies": [ - ["spdx-license-ids", "npm:3.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["split", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/split-npm-1.0.1-88871d88a2-ed6bb44fd1.zip/node_modules/split/", - "packageDependencies": [ - ["split", "npm:1.0.1"], - ["through", "npm:2.3.8"] - ], - "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", - }] - ]], - ["split2", [ - ["npm:3.2.2", { - "packageLocation": "./.yarn/cache/split2-npm-3.2.2-4ccd21b4f7-04bf20af25.zip/node_modules/split2/", - "packageDependencies": [ - ["split2", "npm:3.2.2"], - ["readable-stream", "npm:3.6.0"] - ], - "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", - }] - ]], - ["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:8.0.1", { - "packageLocation": "./.yarn/cache/ssri-npm-8.0.1-a369e72ce2-d45f9a1d56.zip/node_modules/ssri/", - "packageDependencies": [ - ["ssri", "npm:8.0.1"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["stack-utils", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.3-e255395afd-65fe92891b.zip/node_modules/stack-utils/", - "packageDependencies": [ - ["stack-utils", "npm:2.0.3"], - ["escape-string-regexp", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.6-2be1099696-d1a7769dc4.zip/node_modules/stack-utils/", - "packageDependencies": [ - ["stack-utils", "npm:2.0.6"], - ["escape-string-regexp", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["stackframe", [ - ["npm:1.3.4", { - "packageLocation": "./.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-83baf181bc.zip/node_modules/stackframe/", - "packageDependencies": [ - ["stackframe", "npm:1.3.4"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/statuses-npm-2.0.1-81d2b97fee-d0d3024dd1.zip/node_modules/statuses/", - "packageDependencies": [ - ["statuses", "npm:2.0.1"] - ], - "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", - }] - ]], - ["strict-uri-encode", [ - ["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-length", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/string-length-npm-4.0.2-675173c7a2-e27dd1b5d7.zip/node_modules/string-length/", - "packageDependencies": [ - ["string-length", "npm:4.0.2"], - ["char-regex", "npm:1.0.2"], - ["strip-ansi", "npm:6.0.0"] - ], - "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.2", { - "packageLocation": "./.yarn/cache/string-width-npm-4.2.2-aa12d6b759-d42484f5fd.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:4.2.2"], - ["emoji-regex", "npm:8.0.0"], - ["is-fullwidth-code-point", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.2.3", { - "packageLocation": "./.yarn/cache/string-width-npm-4.2.3-2c27177bae-748c979889.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:4.2.3"], - ["emoji-regex", "npm:8.0.0"], - ["is-fullwidth-code-point", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["string.prototype.matchall", [ - ["npm:4.0.4", { - "packageLocation": "./.yarn/cache/string.prototype.matchall-npm-4.0.4-6ac02f3358-e19b26a14a.zip/node_modules/string.prototype.matchall/", - "packageDependencies": [ - ["string.prototype.matchall", "npm:4.0.4"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.18.0"], - ["has-symbols", "npm:1.0.2"], - ["internal-slot", "npm:1.0.3"], - ["regexp.prototype.flags", "npm:1.3.1"], - ["side-channel", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["string.prototype.trimend", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.4-a656b8fe24-ea8793bee1.zip/node_modules/string.prototype.trimend/", - "packageDependencies": [ - ["string.prototype.trimend", "npm:1.0.4"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["string.prototype.trimstart", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.4-b31f5e7c85-dd2c994af9.zip/node_modules/string.prototype.trimstart/", - "packageDependencies": [ - ["string.prototype.trimstart", "npm:1.0.4"], - ["call-bind", "npm:1.0.2"], - ["define-properties", "npm:1.1.3"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-9d3061240b.zip/node_modules/strip-ansi/", - "packageDependencies": [ - ["strip-ansi", "npm:6.0.1"], - ["ansi-regex", "npm:5.0.1"] - ], - "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-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", - }] - ]], - ["strnum", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-8b73ef3de2.zip/node_modules/strnum/", - "packageDependencies": [ - ["strnum", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["sudo-prompt", [ - ["npm:9.2.1", { - "packageLocation": "./.yarn/cache/sudo-prompt-npm-9.2.1-673cc9fe7b-38d71802c1.zip/node_modules/sudo-prompt/", - "packageDependencies": [ - ["sudo-prompt", "npm:9.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["supports-color", [ - ["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:7.2.0", { - "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-8e57067c39.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:7.2.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:2.2.0", { - "packageLocation": "./.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-91af5f206c.zip/node_modules/supports-hyperlinks/", - "packageDependencies": [ - ["supports-hyperlinks", "npm:2.2.0"], - ["has-flag", "npm:4.0.0"], - ["supports-color", "npm:7.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", - }] - ]], - ["table", [ - ["npm:6.7.1", { - "packageLocation": "./.yarn/cache/table-npm-6.7.1-7d70e55c6d-66107046b7.zip/node_modules/table/", - "packageDependencies": [ - ["table", "npm:6.7.1"], - ["ajv", "npm:8.4.0"], - ["lodash.clonedeep", "npm:4.5.0"], - ["lodash.truncate", "npm:4.4.2"], - ["slice-ansi", "npm:4.0.0"], - ["string-width", "npm:4.2.2"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["tar", [ - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/tar-npm-6.1.0-21d6116ed9-d1d988eceb.zip/node_modules/tar/", - "packageDependencies": [ - ["tar", "npm:6.1.0"], - ["chownr", "npm:2.0.0"], - ["fs-minipass", "npm:2.1.0"], - ["minipass", "npm:3.1.3"], - ["minizlib", "npm:2.1.2"], - ["mkdirp", "npm:1.0.4"], - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["temp", [ - ["npm:0.8.4", { - "packageLocation": "./.yarn/cache/temp-npm-0.8.4-d7c7d71d12-80459e3e7d.zip/node_modules/temp/", - "packageDependencies": [ - ["temp", "npm:0.8.4"], - ["rimraf", "npm:2.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["temp-dir", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/temp-dir-npm-1.0.0-5828254ce3-4cc703b6ac.zip/node_modules/temp-dir/", - "packageDependencies": [ - ["temp-dir", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/temp-dir-npm-2.0.0-e8af180805-d7816d1ce5.zip/node_modules/temp-dir/", - "packageDependencies": [ - ["temp-dir", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["temp-write", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/temp-write-npm-4.0.0-19edc9e6b7-1cf422f33e.zip/node_modules/temp-write/", - "packageDependencies": [ - ["temp-write", "npm:4.0.0"], - ["graceful-fs", "npm:4.2.6"], - ["is-stream", "npm:2.0.0"], - ["make-dir", "npm:3.1.0"], - ["temp-dir", "npm:1.0.0"], - ["uuid", "npm:3.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["term-size", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/unplugged/term-size-npm-2.2.1-77ce7141d0/node_modules/term-size/", - "packageDependencies": [ - ["term-size", "npm:2.2.1"] - ], - "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.2"], - ["supports-hyperlinks", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["terser", [ - ["npm:5.33.0", { - "packageLocation": "./.yarn/cache/terser-npm-5.33.0-58f8b7f7c3-99acb73015.zip/node_modules/terser/", - "packageDependencies": [ - ["terser", "npm:5.33.0"], - ["@jridgewell/source-map", "npm:0.3.6"], - ["acorn", "npm:8.12.1"], - ["commander", "npm:2.20.3"], - ["source-map-support", "npm:0.5.21"] - ], - "linkType": "HARD", - }] - ]], - ["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.3"], - ["glob", "npm:7.1.7"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["text-extensions", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/text-extensions-npm-1.9.0-87655d768f-fecf1f4962.zip/node_modules/text-extensions/", - "packageDependencies": [ - ["text-extensions", "npm:1.9.0"] - ], - "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", - }] - ]], - ["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:4.0.2", { - "packageLocation": "./.yarn/cache/through2-npm-4.0.2-da7b2da443-5a844792cf.zip/node_modules/through2/", - "packageDependencies": [ - ["through2", "npm:4.0.2"], - ["readable-stream", "npm:3.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["tmp", [ - ["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-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", - }] - ]], - ["toidentifier", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.1-f759712599-2b5c573af9.zip/node_modules/toidentifier/", - "packageDependencies": [ - ["toidentifier", "npm:1.0.1"] - ], - "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: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:0.0.3", { - "packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-37bdfff7c5.zip/node_modules/tr46/", - "packageDependencies": [ - ["tr46", "npm:0.0.3"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/trim-newlines-npm-3.0.0-ccf666d8fc-51bfbec001.zip/node_modules/trim-newlines/", - "packageDependencies": [ - ["trim-newlines", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["trim-off-newlines", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/trim-off-newlines-npm-1.0.1-1a87bef78d-c590b9e8c1.zip/node_modules/trim-off-newlines/", - "packageDependencies": [ - ["trim-off-newlines", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["ts-toolbelt", [ - ["npm:6.15.5", { - "packageLocation": "./.yarn/cache/ts-toolbelt-npm-6.15.5-e42f89942f-d2f585ee34.zip/node_modules/ts-toolbelt/", - "packageDependencies": [ - ["ts-toolbelt", "npm:6.15.5"] - ], - "linkType": "HARD", - }] - ]], - ["tslib", [ - ["npm:1.14.1", { - "packageLocation": "./.yarn/cache/tslib-npm-1.14.1-102499115e-f44fe7f216.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:1.14.1"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/tslib-npm-2.2.0-e83a07daa5-2d35468c47.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:2.2.0"] - ], - "linkType": "HARD", - }], - ["npm:2.7.0", { - "packageLocation": "./.yarn/cache/tslib-npm-2.7.0-21668f5c21-c78b4ccfd8.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:2.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["tsutils", [ - ["npm:3.21.0", { - "packageLocation": "./.yarn/cache/tsutils-npm-3.21.0-347e6636c5-a10e746258.zip/node_modules/tsutils/", - "packageDependencies": [ - ["tsutils", "npm:3.21.0"] - ], - "linkType": "SOFT", - }], - ["virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0", { - "packageLocation": "./.yarn/$$virtual/tsutils-virtual-5ad95fbe75/0/cache/tsutils-npm-3.21.0-347e6636c5-a10e746258.zip/node_modules/tsutils/", - "packageDependencies": [ - ["tsutils", "virtual:23c4f6f2ba5039047ed28ad4fedd9ce955e9a11de5d81b38b475793b68a779591849519a7671f6a101c282764ea9392469557812d361cbb53f281244cbb4cfd8#npm:3.21.0"], - ["@types/typescript", null], - ["tslib", "npm:1.14.1"], - ["typescript", null] - ], - "packagePeers": [ - "@types/typescript", - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0", { - "packageLocation": "./.yarn/$$virtual/tsutils-virtual-847be56701/0/cache/tsutils-npm-3.21.0-347e6636c5-a10e746258.zip/node_modules/tsutils/", - "packageDependencies": [ - ["tsutils", "virtual:4f763673f9be94e140299afb19c292c229cabeb0ef094d1ab030fa08f9cb242082402a88470307c27dc39fc3d51855e31defabcfc587d0d925e8a7e5cef8da12#npm:3.21.0"], - ["@types/typescript", null], - ["tslib", "npm:1.14.1"], - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "packagePeers": [ - "@types/typescript", - "typescript" - ], - "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.2.1"] - ], - "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", - }] - ]], - ["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", - }], - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-6c2e1ce339.zip/node_modules/type-check/", - "packageDependencies": [ - ["type-check", "npm:0.4.0"], - ["prelude-ls", "npm:1.2.1"] - ], - "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.18.1", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.18.1-47b079775d-0d6d338e72.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.18.1"] - ], - "linkType": "HARD", - }], - ["npm:0.20.2", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.20.2-b36432617f-1f887bc615.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.20.2"] - ], - "linkType": "HARD", - }], - ["npm:0.21.3", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-bbe5f5c60e.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.21.3"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["typescript", [ - ["patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e", { - "packageLocation": "./.yarn/cache/typescript-patch-70a7929abf-3be4431759.zip/node_modules/typescript/", - "packageDependencies": [ - ["typescript", "patch:typescript@npm%3A4.2.4#builtin::version=4.2.4&hash=a45b0e"] - ], - "linkType": "HARD", - }] - ]], - ["uglify-js", [ - ["npm:3.13.6", { - "packageLocation": "./.yarn/cache/uglify-js-npm-3.13.6-6adc32f008-73138b2253.zip/node_modules/uglify-js/", - "packageDependencies": [ - ["uglify-js", "npm:3.13.6"] - ], - "linkType": "HARD", - }] - ]], - ["unbox-primitive", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/unbox-primitive-npm-1.0.1-50b9fde246-aa944f1ecf.zip/node_modules/unbox-primitive/", - "packageDependencies": [ - ["unbox-primitive", "npm:1.0.1"], - ["function-bind", "npm:1.1.1"], - ["has-bigints", "npm:1.0.1"], - ["has-symbols", "npm:1.0.2"], - ["which-boxed-primitive", "npm:1.0.2"] - ], - "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", - }] - ]], - ["undici-types", [ - ["npm:5.26.5", { - "packageLocation": "./.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-55e14a0109.zip/node_modules/undici-types/", - "packageDependencies": [ - ["undici-types", "npm:5.26.5"] - ], - "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", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-2.0.1-80cef17f3b-d954a08db4.zip/node_modules/unicode-canonical-property-names-ecmascript/", - "packageDependencies": [ - ["unicode-canonical-property-names-ecmascript", "npm:2.0.1"] - ], - "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", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-2.0.0-97a00fd52c-b765c34572.zip/node_modules/unicode-match-property-ecmascript/", - "packageDependencies": [ - ["unicode-match-property-ecmascript", "npm:2.0.0"], - ["unicode-canonical-property-names-ecmascript", "npm:2.0.1"], - ["unicode-property-aliases-ecmascript", "npm:2.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", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-f4353ad64d.zip/node_modules/unicode-match-property-value-ecmascript/", - "packageDependencies": [ - ["unicode-match-property-value-ecmascript", "npm:2.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", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-d2b231cda6.zip/node_modules/unicode-property-aliases-ecmascript/", - "packageDependencies": [ - ["unicode-property-aliases-ecmascript", "npm:2.1.0"] - ], - "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", - }] - ]], - ["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: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", - }] - ]], - ["universal-user-agent", [ - ["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:2.0.0", { - "packageLocation": "./.yarn/cache/universalify-npm-2.0.0-03b8b418a8-36bfbdc97b.zip/node_modules/universalify/", - "packageDependencies": [ - ["universalify", "npm:2.0.0"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["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-browserslist-db", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-57e532c4a2.zip/node_modules/update-browserslist-db/", - "packageDependencies": [ - ["update-browserslist-db", "npm:1.1.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0", { - "packageLocation": "./.yarn/$$virtual/update-browserslist-db-virtual-e5d722ea57/0/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-57e532c4a2.zip/node_modules/update-browserslist-db/", - "packageDependencies": [ - ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"], - ["@types/browserslist", null], - ["browserslist", "npm:4.23.3"], - ["escalade", "npm:3.2.0"], - ["picocolors", "npm:1.1.0"] - ], - "packagePeers": [ - "@types/browserslist", - "browserslist" - ], - "linkType": "HARD", - }] - ]], - ["update-notifier", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/update-notifier-npm-5.0.0-4b1bd931c5-241e08952d.zip/node_modules/update-notifier/", - "packageDependencies": [ - ["update-notifier", "npm:5.0.0"], - ["boxen", "npm:4.2.0"], - ["chalk", "npm:4.1.1"], - ["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:5.0.0"], - ["is-yarn-global", "npm:0.3.0"], - ["latest-version", "npm:5.1.0"], - ["pupa", "npm:2.1.1"], - ["semver", "npm:7.3.5"], - ["semver-diff", "npm:3.1.1"], - ["xdg-basedir", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["uri-js", [ - ["npm:4.4.1", { - "packageLocation": "./.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7d8ae8e2d7.zip/node_modules/uri-js/", - "packageDependencies": [ - ["uri-js", "npm:4.4.1"], - ["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-join", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/url-join-npm-4.0.1-e1f4415722-278de41c66.zip/node_modules/url-join/", - "packageDependencies": [ - ["url-join", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["url-parse-lax", [ - ["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", - }] - ]], - ["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", - }] - ]], - ["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", - }] - ]], - ["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.1", { - "packageLocation": "./.yarn/cache/uuid-npm-8.3.1-8a5b02e900-6a5d07c556.zip/node_modules/uuid/", - "packageDependencies": [ - ["uuid", "npm:8.3.1"] - ], - "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.3.0", { - "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b56f83d9ff.zip/node_modules/v8-compile-cache/", - "packageDependencies": [ - ["v8-compile-cache", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["v8-to-istanbul", [ - ["npm:7.1.2", { - "packageLocation": "./.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-ff653089c9.zip/node_modules/v8-to-istanbul/", - "packageDependencies": [ - ["v8-to-istanbul", "npm:7.1.2"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["convert-source-map", "npm:1.7.0"], - ["source-map", "npm:0.7.3"] - ], - "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", - }] - ]], - ["validate-npm-package-name", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/validate-npm-package-name-npm-3.0.0-e44c263962-3c5a5b154a.zip/node_modules/validate-npm-package-name/", - "packageDependencies": [ - ["validate-npm-package-name", "npm:3.0.0"], - ["builtins", "npm:1.0.3"] - ], - "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", - }] - ]], - ["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.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["vlq", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/vlq-npm-1.0.1-2ab4a14841-a15c2b8ed4.zip/node_modules/vlq/", - "packageDependencies": [ - ["vlq", "npm:1.0.1"] - ], - "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", - }] - ]], - ["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", - }] - ]], - ["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", - }] - ]], - ["webidl-conversions", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-25ef547ff1.zip/node_modules/webidl-conversions/", - "packageDependencies": [ - ["webidl-conversions", "npm:3.0.1"] - ], - "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", - }] - ]], - ["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.6.20", { - "packageLocation": "./.yarn/cache/whatwg-fetch-npm-3.6.20-a6f79b98c4-e557141d88.zip/node_modules/whatwg-fetch/", - "packageDependencies": [ - ["whatwg-fetch", "npm:3.6.20"] - ], - "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:5.0.0", { - "packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-55eca009f5.zip/node_modules/whatwg-url/", - "packageDependencies": [ - ["whatwg-url", "npm:5.0.0"], - ["tr46", "npm:0.0.3"], - ["webidl-conversions", "npm:3.0.1"] - ], - "linkType": "HARD", - }], - ["npm:8.5.0", { - "packageLocation": "./.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-a070c4be45.zip/node_modules/whatwg-url/", - "packageDependencies": [ - ["whatwg-url", "npm:8.5.0"], - ["lodash", "npm:4.17.21"], - ["tr46", "npm:2.0.2"], - ["webidl-conversions", "npm:6.1.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-boxed-primitive", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-771ef43357.zip/node_modules/which-boxed-primitive/", - "packageDependencies": [ - ["which-boxed-primitive", "npm:1.0.2"], - ["is-bigint", "npm:1.0.2"], - ["is-boolean-object", "npm:1.1.1"], - ["is-number-object", "npm:1.0.5"], - ["is-string", "npm:1.0.6"], - ["is-symbol", "npm:1.0.4"] - ], - "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: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.2"] - ], - "linkType": "HARD", - }] - ]], - ["windows-release", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/windows-release-npm-4.0.0-0487118638-6e285986c3.zip/node_modules/windows-release/", - "packageDependencies": [ - ["windows-release", "npm:4.0.0"], - ["execa", "npm:4.1.0"] - ], - "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", - }] - ]], - ["wrap-ansi", [ - ["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.3.0"], - ["string-width", "npm:4.2.2"], - ["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.3.0"], - ["string-width", "npm:4.2.2"], - ["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-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.6"], - ["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:6.2.3", { - "packageLocation": "./.yarn/cache/ws-npm-6.2.3-0647b230b5-4acb99198f.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:6.2.3"] - ], - "linkType": "SOFT", - }], - ["npm:7.4.5", { - "packageLocation": "./.yarn/cache/ws-npm-7.4.5-5c28d7e14e-20731aa107.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:7.4.5"] - ], - "linkType": "SOFT", - }], - ["npm:7.5.10", { - "packageLocation": "./.yarn/cache/ws-npm-7.5.10-878ccb886b-767c77f6bc.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:7.5.10"] - ], - "linkType": "SOFT", - }], - ["virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-2fa0f0d753/0/cache/ws-npm-7.5.10-878ccb886b-767c77f6bc.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:22fc2f7367183a16d27909c2538ead9f8f3c65b4b1f0253fa3c92898d1e6bf4684c76ec3079043ab5da5258e5d659c88bda3d1159cc38bcad6a3336aaeda3fd0#npm:7.5.10"], - ["@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:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-4be6937734/0/cache/ws-npm-7.4.5-5c28d7e14e-20731aa107.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:96f830aa00e802bc5a154b8d3361f6261e39d08e377c906761083bf0dd084f2a41a9375c987f6fb155fcbbdd63ddf1061595aa30ca4ee8bdf024a2171b18287e#npm:7.4.5"], - ["@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:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-aeec6fb9cb/0/cache/ws-npm-6.2.3-0647b230b5-4acb99198f.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:9b87028c1ac30f0cd0b8d227a28971ba92f60a1d2490036953c065b5838d9872b9c9cc0d113a1d16b98d1f02d331230f090fa080f57f2b5962dccf626e63f52e#npm:6.2.3"], - ["@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", - }] - ]], - ["xdg-basedir", [ - ["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", - }] - ]], - ["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.3", { - "packageLocation": "./.yarn/cache/y18n-npm-4.0.3-ced95acdbc-e6d08e9d14.zip/node_modules/y18n/", - "packageDependencies": [ - ["y18n", "npm:4.0.3"] - ], - "linkType": "HARD", - }], - ["npm:5.0.8", { - "packageLocation": "./.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-56275bfa72.zip/node_modules/y18n/", - "packageDependencies": [ - ["y18n", "npm:5.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["yallist", [ - ["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", - }], - ["npm:1.10.2", { - "packageLocation": "./.yarn/cache/yaml-npm-1.10.2-0e780aebdf-8d72062ea3.zip/node_modules/yaml/", - "packageDependencies": [ - ["yaml", "npm:1.10.2"] - ], - "linkType": "HARD", - }], - ["npm:2.5.1", { - "packageLocation": "./.yarn/cache/yaml-npm-2.5.1-8b2871f510-f3dadeb361.zip/node_modules/yaml/", - "packageDependencies": [ - ["yaml", "npm:2.5.1"] - ], - "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.2"], - ["which-module", "npm:2.0.0"], - ["y18n", "npm:4.0.3"], - ["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.2"], - ["y18n", "npm:5.0.8"], - ["yargs-parser", "npm:20.2.7"] - ], - "linkType": "HARD", - }], - ["npm:17.7.2", { - "packageLocation": "./.yarn/cache/yargs-npm-17.7.2-80b62638e1-382d0ed9f7.zip/node_modules/yargs/", - "packageDependencies": [ - ["yargs", "npm:17.7.2"], - ["cliui", "npm:8.0.1"], - ["escalade", "npm:3.1.1"], - ["get-caller-file", "npm:2.0.5"], - ["require-directory", "npm:2.1.1"], - ["string-width", "npm:4.2.3"], - ["y18n", "npm:5.0.8"], - ["yargs-parser", "npm:21.1.1"] - ], - "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.1", { - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.1-b1a18008ef-c4945ade7d.zip/node_modules/yargs-parser/", - "packageDependencies": [ - ["yargs-parser", "npm:20.2.1"] - ], - "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", - }], - ["npm:21.1.1", { - "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-192567f8d6.zip/node_modules/yargs-parser/", - "packageDependencies": [ - ["yargs-parser", "npm:21.1.1"] - ], - "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", - }] - ]] - ] - }, {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(); - })); -} - -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; -} - -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} - -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; - } - } - - let updated = false; - - if (destinationStat === null) { - prelayout.push(async () => destinationFs.mkdirPromise(destination, { - mode: sourceStat.mode - })); - updated = true; - } - - 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; - } - } - - return updated; -} - -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; -} - -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; - } - } - - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/FakeFS.ts - - - -class FakeFS { - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - - async *genTraversePromise(init, { - stableSort = false - } = {}) { - const stack = [init]; - - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - - 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 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; - } else { - await new Promise(resolve => setTimeout(resolve, t * 100)); - continue; - } - } 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; - } - } - - 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); - } - } - } - } - - 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; - } - } - - if (chmod != null) this.chmodSync(subPath, chmod); - - 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); - } - } - } - } - - 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`)})`); - } - - const mode = stat.mode & 0o777; - this.chmodSync(destination, mode); - } - - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - - async changeFileBufferPromise(p, content) { - let current = Buffer.alloc(0); - - try { - current = await this.readFilePromise(p); - } catch (error) {// ignore errors, no big deal - } - - if (Buffer.compare(current, content) === 0) return; - await this.writeFilePromise(p, content); - } - - async changeFileTextPromise(p, content, { - automaticNewlines - } = {}) { - let current = ``; - - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) {// ignore errors, no big deal - } - - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) return; - await this.writeFilePromise(p, normalizedContent); - } - - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - - changeFileBufferSync(p, content) { - let current = Buffer.alloc(0); - - try { - current = this.readFileSync(p); - } catch (error) {// ignore errors, no big deal - } - - if (Buffer.compare(current, content) === 0) return; - this.writeFileSync(p, content); - } - - changeFileTextSync(p, content, { - automaticNewlines = false - } = {}) { - let current = ``; - - try { - current = this.readFileSync(p, `utf8`); - } catch (error) {// ignore errors, no big deal - } - - 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; - } - - 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; - } - } - } - - 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 - } - } - } - - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - - async writeJsonPromise(p, data) { - return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)}\n`); - } - - writeJsonSync(p, data) { - return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}\n`); - } - - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) p = result; - - if (this.lutimesPromise) { - await this.lutimesPromise(p, stat.atime, stat.mtime); - } else if (!stat.isSymbolicLink()) { - await this.utimesPromise(p, stat.atime, stat.mtime); - } - } - - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) p = result; - - 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); - } - -} - -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`; -} - -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 - }); -} - -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 - - - - -class NodeFS extends BasePortableFakeFS { - constructor(realFs = (external_fs_default())) { - super(); - this.realFs = realFs; // @ts-expect-error - - 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)); - } - }); - } - - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - - 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)); - } - }); - } - - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - - 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); - } - }; - } - -} -// 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); - } - } - - 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); - } - } - - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - - closeSync(fd) { - this.baseFs.closeSync(fd); - } - - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - - async statPromise(p) { - return this.baseFs.statPromise(this.mapToBase(p)); - } - - statSync(p) { - return this.baseFs.statSync(this.mapToBase(p)); - } - - async lstatPromise(p) { - return this.baseFs.lstatPromise(this.mapToBase(p)); - } - - lstatSync(p) { - return this.baseFs.lstatSync(this.mapToBase(p)); - } - - 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); - } - - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - - async symlinkPromise(target, p, type) { - return this.baseFs.symlinkPromise(this.mapToBase(target), this.mapToBase(p), type); - } - - symlinkSync(target, p, type) { - return this.baseFs.symlinkSync(this.mapToBase(target), this.mapToBase(p), type); - } - - 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); - } - } - -} -// 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; - } - -} -// 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 *[Symbol.asyncIterator]() { - try { - let dirent; // eslint-disable-next-line no-cond-assign - - while ((dirent = await this.read()) !== null) { - yield dirent; - } - } finally { - await this.close(); - } - } - - read(cb) { - const dirent = this.readSync(); - if (typeof cb !== `undefined`) return cb(null, dirent); - return Promise.resolve(dirent); - } - - readSync() { - this.throwIfClosed(); - return this.nextDirent(); - } - - close(cb) { - this.closeSync(); - if (typeof cb !== `undefined`) return cb(null); - return Promise.resolve(); - } - - closeSync() { - var _a, _b; - - this.throwIfClosed(); - (_b = (_a = this.opts).onClose) === null || _b === void 0 ? void 0 : _b.call(_a); - this.closed = true; - } - -} -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; - } - -} -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; - } - -} -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 toUnixTimestamp(time) { - if (typeof time === `string` && String(+time) === time) return +time; - - if (Number.isFinite(time)) { - if (time < 0) { - return Date.now() / 1000; - } else { - return time; - } - } // convert to 123.456 UNIX timestamp - - - if ((0,external_util_namespaceObject.isDate)(time)) return time.getTime() / 1000; - throw new Error(`Invalid time`); -} - -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]); - } - - if (typeof source === `string`) { - const { - baseFs = new NodeFS() - } = pathOptions; - this.baseFs = baseFs; - this.path = source; - } else { - this.path = null; - this.baseFs = null; - } - - 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(); - } - } - - const errPtr = this.libzip.malloc(4); - - try { - let flags = 0; - if (typeof source === `string` && pathOptions.create) flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE; - - if (opts.readOnly) { - flags |= this.libzip.ZIP_RDONLY; - this.readOnly = true; - } - - 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; - } - } - - 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); - } - - this.listings.set(PortablePath.root, new Set()); - const entryCount = this.libzip.getNumEntries(this.zip, 0); - - 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); - } - } - - this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); - if (this.symlinkCount === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.ready = true; - } - - 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; - } - - getExtractHint(hints) { - for (const fileName of this.entries.keys()) { - const ext = this.pathUtils.extname(fileName); - - if (hints.relevantExtensions.has(ext)) { - return true; - } - } - - return false; - } - - getAllFiles() { - return Array.from(this.entries.keys()); - } - - getRealPath() { - if (!this.path) throw new Error(`ZipFS don't have real paths when loaded from a buffer`); - return this.path; - } - - getBufferAndClose() { - this.prepareClose(); - if (!this.lzSource) throw new Error(`ZipFS was not created from a Buffer`); - - try { - // 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; - } - } - - prepareClose() { - if (!this.ready) throw EBUSY(`archive closed, close`); - unwatchAllFiles(this); - } - - saveAndClose() { - if (!this.path || !this.baseFs) throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); - this.prepareClose(); - - 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; - } - - 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(); - }, - - 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); - } - } 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; - } - - 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); - } - - let resolvedP; - - try { - resolvedP = this.resolveFilename(`stat '${p}'`, p); - } catch (error) { - return false; - } - - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } - - async accessPromise(p, mode) { - return this.accessSync(p, mode); - } - - 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}'`); - - 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 - }); - } - - 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--; - } - } - - 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)); - } - } - - 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; - } - } - - 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; - } - } - - 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); - } - - return source; - } - - allocateSource(content) { - const { - buffer, - byteLength - } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true); - - if (source === 0) { - this.libzip.free(buffer); - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - - return source; - } - - setFileSource(p, content) { - const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); - const target = ppath.relative(PortablePath.root, p); - const lzSource = this.allocateSource(content); - - 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)); - } - } - - 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 - - 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); - - 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; - } - - 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; - } - - 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; - } - break; - - default: - { - ({ - persistent = true - } = a); - } - break; - } - - if (!persistent) return { - on: () => {}, - close: () => {} - }; - const interval = setInterval(() => {}, 24 * 60 * 60 * 1000); - return { - on: () => {}, - close: () => { - clearInterval(interval); - } - }; - } - - watchFile(p, a, b) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - return watchFile(this, resolvedP, a, b); - } - - 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 = /.*?(? { - 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); - } - } - - 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; - - 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); - } - } - - 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; - - 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); - } - - 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); - } - - 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` - }); - } - - 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(); - } - } - } - -} -// 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_); - -// 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]; - } - }; - /** 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; - } - /** 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; - } - /** 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 - }; - }; - } -} -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(); - }); -} - -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); - } - -} -// 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. - */ - -function getIssuerModule(parent) { - let issuer = parent; - - while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) issuer = issuer.parent; - - return issuer || null; -} -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+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/IwBBIGsiASQAIAEgADYCGCAB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CyAAIAFBf2oiAWoiAi0AAEEvRw0ACyACC6kBAQN/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/KNAScAQYAIC5QFTm8gZXJyb3IATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAU2VlayBlcnJvcgBSZWFkIGVycm9yAFdyaXRlIGVycm9yAENSQyBlcnJvcgBDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQATm8gc3VjaCBmaWxlAEZpbGUgYWxyZWFkeSBleGlzdHMAQ2FuJ3Qgb3BlbiBmaWxlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAFpsaWIgZXJyb3IATWFsbG9jIGZhaWx1cmUARW50cnkgaGFzIGJlZW4gY2hhbmdlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABQcmVtYXR1cmUgZW5kIG9mIGZpbGUASW52YWxpZCBhcmd1bWVudABOb3QgYSB6aXAgYXJjaGl2ZQBJbnRlcm5hbCBlcnJvcgBaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQAQ2FuJ3QgcmVtb3ZlIGZpbGUARW50cnkgaGFzIGJlZW4gZGVsZXRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFJlYWQtb25seSBhcmNoaXZlAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAFJlc291cmNlIHN0aWxsIGluIHVzZQBUZWxsIGVycm9yAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAEGhDQuAAQQAAAkEAAAvBAAATgQAAGkEAAB0BAAAfwQAAIsEAACVBAAAtwQAAMQEAADYBAAA6AQAAAkFAAAUBQAAIwUAADoFAABbBQAAcQUAAIIFAACUBQAAowUAALwFAADOBQAA5QUAAAUGAAAXBgAALAYAAEQGAABcBgAAcgYAAH0GAAAgAEG4DgsRAQAAAAEAAAABAAAAAQAAAAEAQdwOCwkBAAAAAQAAAAIAQYgPCwEBAEGoDwsBAQBBtA8LkkWWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAAQTEbGYJiNjLDUy0rBMVsZEX0d32Gp1pWx5ZBTwiK2chJu8LRiujv+svZ9OMMT7WsTX6utY4tg57PHJiHURLCShAj2VPTcPR4kkHvYVXXri4U5rU317WYHJaEgwVZmBuCGKkAm9v6LbCayzapXV135hxsbP/fP0HUng5azaIkhJXjFZ+MIEayp2F3qb6m4ejx59Dz6CSD3sNlssXaqq5dXeufRkQozGtvaf1wdq5rMTnvWiogLAkHC204HBLzNkbfsgddxnFUcO0wZWv09/Mqu7bCMaJ1kRyJNKAHkPu8nxe6jYQOed6pJTjvsjz/efNzvkjoan0bxUE8Kt5YBU958ER+YumHLU/CxhxU2wGKFZRAuw6Ng+gjpsLZOL8NxaA4TPS7IY+nlgrOlo0TCQDMXEgx10WLYvpuylPhd1Rdu7oVbKCj1j+NiJcOlpFQmNfeEanMx9L64eyTy/r1XNdich3meWvetVRAn4RPWVgSDhYZIxUP2nA4JJtBIz2na/1l5lrmfCUJy1dkONBOo66RAeKfihghzKczYP28Kq/hJK3u0D+0LYMSn2yyCYarJEjJ6hVT0ClGfvtod2Xi9nk/L7dIJDZ0GwkdNSoSBPK8U0uzjUhScN5leTHvfmD+8+bnv8L9/nyR0NU9oMvM+jaKg7sHkZp4VLyxOWWnqEuYgzsKqZgiyfq1CYjLrhBPXe9fDmz0Rs0/2W2MDsJ0QxJa8wIjQerBcGzBgEF32EfXNpcG5i2OxbUApYSEG7waikFxW7taaJjod0PZ2WxaHk8tFV9+NgycLRsn3RwAPhIAmLlTMYOgkGKui9FTtZIWxfTdV/TvxJSnwu/Vltn26bwHrqiNHLdr3jGcKu8qhe15a8qsSHDTbxtd+C4qRuHhNt5moAfFf2NU6FQiZfNN5fOyAqTCqRtnkYQwJqCfKbiuxeT5n979Oszz1nv96M+8a6mA/VqymT4Jn7J/OISrsCQcLPEVBzUyRioec3cxB7ThcEj10GtRNoNGeneyXWNO1/rLD+bh0sy1zPmNhNfgShKWrwsjjbbIcKCdiUG7hEZdIwMHbDgaxD8VMYUODihCmE9nA6lUfsD6eVWBy2JMH8U4gV70I5idpw6z3JYVqhsAVOVaMU/8mWJi19hTec4XT+FJVn76UJUt13vUHMxiE4qNLVK7ljSR6Lsf0NmgBuzzfl6twmVHbpFIbC+gU3XoNhI6qQcJI2pUJAgrZT8R5HmnlqVIvI9mG5GkJyqKveC8y/KhjdDrYt79wCPv5tm94bwU/NCnDT+DiiZ+spE/uSTQcPgVy2k7RuZCenf9W7VrZdz0Wn7FNwlT7nY4SPexrgm48J8SoTPMP4py/SSTAAAAADdqwgFu1IQDWb5GAtyoCQfrwssGsnyNBIUWTwW4URMOjzvRD9aFlw3h71UMZPkaCVOT2AgKLZ4KPUdcC3CjJhxHyeQdHneiHykdYB6sCy8bm2HtGsLfqxj1tWkZyPI1Ev+Y9xOmJrERkUxzEBRaPBUjMP4Ueo64Fk3kehfgRk041yyPOY6SyTu5+As6PO5EPwuEhj5SOsA8ZVACPVgXXjZvfZw3NsPaNQGpGDSEv1cxs9WVMOpr0zLdAREzkOVrJKePqSX+Me8nyVstJkxNYiN7J6AiIpnmIBXzJCEotHgqH966K0Zg/ClxCj4o9BxxLcN2syyayPUuraI3L8CNmnD351hxrlkec5kz3HIcJZN3K09RdnLxF3RFm9V1eNyJfk+2S38WCA19IWLPfKR0gHmTHkJ4yqAEev3KxnuwLrxsh0R+bd76OG/pkPpubIa1a1vsd2oCUjFoNTjzaQh/r2I/FW1jZqsrYVHB6WDU16Zl471kZLoDImaNaeBnIMvXSBehFUlOH1NLeXWRSvxj3k/LCRxOkrdaTKXdmE2YmsRGr/AGR/ZOQEXBJIJERDLNQXNYD0Aq5klCHYyLQ1Bo8VRnAjNVPrx1VwnWt1aMwPhTu6o6UuIUfFDVfr5R6DniWt9TIFuG7WZZsYekWDSR610D+ylcWkVvXm0vrV+AGzXht3H34O7PseLZpXPjXLM85mvZ/ucyZ7jlBQ165DhKJu8PIOTuVp6i7GH0YO3k4i/o04jt6Yo2q+u9XGnq8LgT/cfS0fyebJf+qQZV/ywQGvobetj7QsSe+XWuXPhI6QDzf4PC8iY9hPARV0bxlEEJ9KMry/X6lY33zf9P9mBdeNlXN7rYDon82jnjPtu89XHei5+z39Ih9d3lSzfc2Axr1+9mqda22O/UgbIt1QSkYtAzzqDRanDm010aJNIQ/l7FJ5ScxH4q2sZJQBjHzFZXwvs8lcOigtPBlegRwKivTcufxY/KxnvJyPERC8l0B0TMQ22GzRrTwM8tuQLOQJavkXf8bZAuQiuSGSjpk5w+pparVGSX8uoilcWA4JT4x7yfz61+npYTOJyhefqdJG+1mBMFd5lKuzGbfdHzmjA1iY0HX0uMXuENjmmLz4/snYCK2/dCi4JJBIm1I8aIiGSag78OWILmsB6A0drcgVTMk4RjplGFOhgXhw1y1Yag0OKpl7ogqM4EZqr5bqSrfHjrrksSKa8SrG+tJcatrBiB8acv6zOmdlV1pEE/t6XEKfig80M6oar9fKOdl76i0HPEtecZBrS+p0C2ic2CtwzbzbI7sQ+zYg9JsVVli7BoIte7X0gVugb2U7gxnJG5tIrevIPgHL3aXlq/7TSYvgAAAABlZ7y4i8gJqu6vtRJXl2KPMvDeN9xfayW5ONed7yi0xYpPCH1k4L1vAYcB17i/1krd2GryM3ff4FYQY1ifVxlQ+jCl6BSfEPpx+KxCyMB7362nx2dDCHJ1Jm/OzXB/rZUVGBEt+7ekP57QGIcn6M8aQo9zoqwgxrDJR3oIPq8yoFvIjhi1ZzsK0ACHsmk4UC8MX+yX4vBZhYeX5T3Rh4ZltOA63VpPj88/KDN3hhDk6uN3WFIN2O1AaL9R+KH4K/DEn5dIKjAiWk9XnuL2b0l/kwj1x32nQNUYwPxtTtCfNSu3I43FGJafoH8qJxlH/bp8IEECko/0EPfoSKg9WBSbWD+oI7aQHTHT96GJas92FA+oyqzhB3++hGDDBtJwoF63FxzmWbip9DzfFUyF58LR4IB+aQ4vy3trSHfDog8Ny8dosXMpxwRhTKC42fWYb0SQ/9P8flBm7hs32lZNJ7kOKEAFtsbvsKSjiAwcGrDbgX/XZzmReNIr9B9ukwP3JjtmkJqDiD8vke1YkylUYES0MQf4DN+oTR66z/Gm7N+S/om4LkZnF5tUAnAn7LtI8HHeL0zJMID521XnRWOcoD9r+ceD0xdoNsFyD4p5yzdd5K5Q4VxA/1ROJZjo9nOIi64W7zcW+ECCBJ0nPrwkH+khQXhVma/X4IvKsFwzO7ZZ7V7R5VWwflBH1Rns/2whO2IJRofa5+kyyIKOjnDUnu0osflRkF9W5II6MVg6gwmPp+ZuMx8IwYYNbaY6taThQL3BhvwFLylJF0pO9a/zdiIylhGeini+K5gd2ZcgS8n0eC6uSMDAAf3SpWZBahxelvd5OSpPl5afXfLxI+UFGWtNYH7X9Y7RYufrtt5fUo4JwjfptXrZRgBovCG80Oox34iPVmMwYfnWIgSeapq9pr0H2MEBvzZutK1TCQgVmk5yHf8pzqURhnu3dOHHD83ZEJKovqwqRhEZOCN2pYB1ZsbYEAF6YP6uz3KbyXPKIvGkV0eWGO+pOa39zF4RRQbuTXZjifHOjSZE3OhB+GRReS/5NB6TQdqxJlO/1prr6cb5s4yhRQtiDvAZB2lMob5RmzzbNieENZmSllD+Li6ZuVQm/N7onhJxXYx3FuE0zi42qatJihFF5j8DIIGDu3aR4OMT9lxb/VnpSZg+VfEhBoJsRGE+1KrOi8bPqTd+OEF/1l0mw26ziXZ81u7KxG/WHVkKsaHh5B4U84F5qEvXacsTsg53q1yhwrk5xn4BgP6pnOWZFSQLNqA2blEcjqcWZobCcdo+LN5vLEm505TwgQQJlea4sXtJDaMeLrEbSD7SQy1ZbvvD9tvpppFnUR+psMx6zgx0lGG5ZvEGBd4AAAAAdwcwlu4OYSyZCVG6B23EGXBq9I/pY6U1nmSVow7biDJ53Lik4NXpHpfS2YgJtkwrfrF8vee4LQeQvx2RHbcQZGqwIPLzuXFIhL5B3hra1H1t3eTr9NS1UYPThccTbJhWZGuowP1i+XqKZcnsFAFcT2MGbNn6Dz1jjQgN9TtuIMhMaRBe1WBB5KJncXI8A+TRSwTUR9INhf2lCrVrNbWo+kKymGzbu8nWrLz5QDLYbONF31x13NYNz6vRPVkm2TCsUd4AOsjXUYC/0GEWIbT0tVazxCPPupWZuL2lDygCuJ5fBYgIxgzZsrEL6SQvb3yHWGhMEcFhHau2Zi09dtxBkAHbcQaY0iC879UQKnGxhYkGtrUfn7/kpei41DN4B8miDwD5NJYJqI7hDpgYf2oNuwhtPS2RZGyX5mNcAWtrUfQcbGFihWUw2PJiAE5sBpXtGwGle4II9MH1D8RXZbDZxhK36VCLvrjq/LmIfGLdHd8V2i1JjNN88/vUTGVNsmFYOrVRzqO8AHTUuzDiSt+lQT3Yldek0cRt09b0+0Np6Wo0btn8rWeIRtpguNBEBC1zMwMd5aoKTF/dDXzJUAVxPCcCQaq+CxAQyQwghldotSUgb4WzuWbUCc5h5J9e3vkOKdnJmLDQmCLH16i0WbM9Fy60DYG3vVw7wLpsre24gyCav7O2A7biDHSx0prq1Uc5ndJ3rwTbJhVz3BaD42MLEpRkO4QNbWo+empaqOQOzwuTCf+dCgCuJ30HnrHwD5NEhwij0h4B8mhpBsL+92JXXYBlZ8sZbDZxbmsG5/7UG3aJ0yvgENp6WmfdSsz5ud9vjr7v+Re3vkNgsI7V1taj6KHRk3442MLET9/yUtG7Z/GmvFdnP7UG3UiyNkvYDSvarwobTDYDSvZBBHpg32Dvw6hn31Uxbo7vRmm+ecths4y8ZoMaJW/SoFJo4jbMDHeVuwtHAyICFrlVBSYvxbo7vrK9CygrtFqSXLNqBMLX/6e10M8xLNmei1verh2bZMKw7GPyJnVqo5wCbZMKnAkGqesONj9yB2eFBQBXE5W/SoLiuHoUe7Errgy2GziS0o6b5dW+DXzc77cL298hhtPS1PHU4kJo3bP4H9qDboG+Fs32uSZbb7B34Ri3R3eICFrm/w9qcGYGO8oRAQtcj2We//hirmlha//TFmzPRaAK4njXDdLuTgSDVDkDs8KnZyZh0GAW90lpR00+bnfbrtFqStnWWtxA3wtmN9g78Km8rlPeu57FR7LPfzC1/+m9vfIcyrrCilOzkzAktKOmutA2Bc3XBpNU3lcpI9lnv7Nmei7EYUq4XWgbAipvK5S0C743wwyOoVoF3xstAu+NAAAAABkbMUEyNmKCKy1Tw2RsxQR9d/RFVlqnhk9BlsfI2YoI0cK7Sfrv6Irj9NnLrLVPDLWufk2egy2Oh5gcz0rCElFT2SMQePRw02HvQZIurtdVN7XmFByYtdcFg4SWghuYWZsAqRiwLfrbqTbLmuZ3XV3/bGwc1EE/381aDp6VhCSijJ8V46eyRiC+qXdh8ejhpujz0OfD3oMk2sWyZV1drqpERp/rb2vMKHZw/Wk5MWuuICpa7wsHCSwSHDht30Y288ZdB7LtcFRx9GtlMLsq8/eiMcK2iRyRdZAHoDQXn7z7DoSNuiWp3nk8su84c/N5/2roSL5BxRt9WN4qPPB5TwXpYn5Ewk8th9tUHMaUFYoBjQ67QKYj6IO/ONnCOKDFDSG79EwKlqePE42WzlzMAAlF1zFIbvpii3fhU8q6u11Uo6BsFYiNP9aRlg6X3teYUMfMqRHs4frS9frLk3Ji11xreeYdQFS13llPhJ8WDhJYDxUjGSQ4cNo9I0GbZf1rp3zmWuZXywklTtA4ZAGRrqMYip/iM6fMISq8/WCtJOGvtD/Q7p8Sgy2GCbJsyUgkq9BTFer7fkYp4mV3aC8/efY2JEi3HQkbdAQSKjVLU7zyUkiNs3ll3nBgfu8x5+bz/v79wr/V0JF8zMugPYOKNvqakQe7sbxUeKinZTk7g5hLIpipCgm1+skQrsuIX+9dT0b0bA5t2T/NdMIOjPNaEkPqQSMCwWxwwdh3QYCXNtdHji3mBqUAtcW8G4SEcUGKGmhau1tDd+iYWmzZ2RUtTx4MNn5fJxstnD4AHN25mAASoIMxU4uuYpCStVPR3fTFFsTv9FfvwqeU9tmW1a4HvOm3HI2onDHea4Uq7yrKa3nt03BIrPhdG2/hRiouZt424X/FB6BU6FRjTfNlIgKy8+UbqcKkMISRZymfoCbkxa64/d6f+dbzzDrP6P17gKlrvJmyWv2ynwk+q4Q4fywcJLA1BxXxHipGMgcxd3NIcOG0UWvQ9XpGgzZjXbJ3y/rXTtLh5g/5zLXM4NeEja+WEkq2jSMLnaBwyIS7QYkDI11GGjhsBzEVP8QoDg6FZ0+YQn5UqQNVefrATGLLgYE4xR+YI/Resw6nnaoVltzlVAAb/E8xWtdiYpnOeVPYSeFPF1D6flZ71y2VYswc1C2NihM0lrtSH7vokQag2dBefvPsR2XCrWxIkW51U6AvOhI26CMJB6kIJFRqET9lK5aneeSPvEilpJEbZr2KKifyy7zg69CNocD93mLZ5u8jFLzhvQ2n0PwmioM/P5GyfnDQJLlpyxX4QuZGO1v9d3rcZWu1xX5a9O5TCTf3SDh2uAmusaESn/CKP8wzkyT9cgAAAAABwmo3A4TUbgJGvlkHCajcBsvC6wSNfLIFTxaFDhNRuA/RO48Nl4XWDFXv4Qka+WQI2JNTCp4tCgtcRz0cJqNwHeTJRx+idx4eYB0pGy8LrBrtYZsYq9/CGWm19RI18sgT95j/EbEmphBzTJEVPFoUFP4wIxa4jnoXeuRNOE1G4DmPLNc7yZKOOgv4uT9E7jw+hoQLPMA6Uj0CUGU2XhdYN5x9bzXawzY0GKkBMVe/hDCV1bMy02vqMxEB3SRr5ZAlqY+nJ+8x/iYtW8kjYk1MIqAneyDmmSIhJPMVKni0KCu63h8p/GBGKD4KcS1xHPQss3bDLvXImi83oq1wmo3AcVjn93MeWa5y3DOZd5MlHHZRTyt0F/FyddWbRX6J3Hh/S7ZPfQ0IFnzPYiF5gHSkeEIek3oEoMp7xsr9bLwusG1+RIdvOPrebvqQ6Wu1hmxqd+xbaDFSAmnzODVir38IY20VP2Erq2Zg6cFRZabX1GRkveNmIgO6Z+BpjUjXyyBJFaEXS1MfTkqRdXlP3mP8ThwJy0xat5JNmN2lRsSamEcG8K9FQE72RIIkwUHNMkRAD1hzQknmKkOLjB1U8WhQVTMCZ1d1vD5Wt9YJU/jAjFI6qrtQfBTiUb5+1VriOehbIFPfWWbthlikh7Fd65E0XCn7A15vRVpfrS9t4TUbgOD3cbfisc/u43Ol2eY8s1zn/tlr5bhnMuR6DQXvJko47uQgD+yinlbtYPRh6C/i5OntiNPrqzaK6mlcvf0TuPD80dLH/pdsnv9VBqn6GhAs+9h6G/mexEL4XK518wDpSPLCg3/whD0m8UZXEfQJQZT1yyuj942V+vZP/83ZeF1g2Lo3V9r8iQ7bPuM53nH1vN+zn4vd9SHS3DdL5ddrDNjWqWbv1O/YttUtsoHQYqQE0aDOM9PmcGrSJBpdxV7+EMSclCfG2ip+xxhAScJXVszDlTz7wdOCosAR6JXLTa+oyo/Fn8jJe8bJCxHxzEQHdM2GbUPPwNMazgK5LZGvlkCQbfx3kitCLpPpKBmWpj6cl2RUq5Ui6vKU4IDFn7zH+J5+rc+cOBOWnfp5oZi1bySZdwUTmzG7Sprz0X2NiTUwjEtfB44N4V6Pz4tpioCd7ItC99uJBEmCiMYjtYOaZIiCWA6/gB6w5oHc2tGEk8xUhVGmY4cXGDqG1XINqeLQoKggupeqZgTOq6Ru+a7reHyvKRJLrW+sEqytxiWn8YEYpjPrL6R1VXaltz9BoPgpxKE6Q/OjfP2qor6XnbXEc9C0BhnntkCnvreCzYmyzdsMsw+xO7FJD2Kwi2VVu9ciaLoVSF+4U/YGuZGcMbzeirS9HOCDv1pe2r6YNO0AAAAAuLxnZaoJyIsSta/uj2KXVzfe8DIla1/cndc4ucW0KO99CE+Kb73gZNcBhwFK1r+48mrY3eDfdzNYYxBWUBlXn+ilMPr6EJ8UQqz4cd97wMhnx6etdXIIQ83ObyaVrX9wLREYFT+kt/uHGNCeGs/oJ6Jzj0KwxiCsCHpHyaAyrz4YjshbCjtntbKHANAvUDhpl+xfDIVZ8OI95ZeHZYaH0d064LTPj09adzMoP+rkEIZSWHfjQO3YDfhRv2jwK/ihSJefxFoiMCrinldPf0lv9sf1CJPVQKd9bfzAGDWf0E6NI7crn5YYxScqf6C6/UcZAkEgfBD0j5KoSOj3mxRYPSOoP1gxHZC2iaH30xR2z2qsyqgPvn8H4QbDYIReoHDS5hwXt/SpuFlMFd880cLnhWl+gOB7yy8Ow3dIa8sND6JzsWjHYQTHKdm4oExEb5j1/NP/kO5mUH5W2jcbDrknTbYFQCiksO/GHAyIo4HbsBo5Z9d/K9J4kZNuH/Q7JvcDg5qQZpEvP4gpk1jttERgVAz4BzEeTajfpvHPuv6S3+xGLriJVJsXZ+wncAJx8Ei7yUwv3tv5gDBjRedVaz+gnNODx/nBNmgXeYoPcuRdN8tc4VCuTlT/QPbomCWui4hzFjfvFgSCQPi8PiedIekfJJlVeEGL4NevM1ywyu1ZtjtV5dFeR1B+sP/sGdViOyFs2odGCcgy6edwjo6CKO2e1JBR+bGC5FZfOlgxOqePCYMfM27mDYbBCLU6pm29QOGkBfyGwRdJKS+v9U5KMiJ284qeEZaYK754IJfZHXj0yUvASK4u0v0BwGpBZqX3ll4cTyo5eV2flpflI/HyTWsZBfXXfmDnYtGOX96268IJjlJ6tek3aABG2dC8IbyI3zHqMGNWjyLW+WGaap4EB72mvb8BwdittG42FQgJUx1yTpqlzin/t3uGEQ/H4XSSENnNKqy+qDgZEUaApXYj2MZmdWB6ARByz67+ynPJm1ek8SLvGJZH/a05qUURXsx2Te4GzvGJY9xEJo1k+EHo+S95UUGTHjRTJrHa65rWv7P5xukLRaGMGfAOYqFMaQc8m1G+hCc225aSmTUuLv5QJlS5mZ7o3vyMXXESNOEWd6k2Ls4RikmrAz/mRbuDgSDj4JF2W1z2E0npWf3xVT6YbIIGIdQ+YUTGi86qfjepz9Z/QThuwyZdfHaJs8TK7tZZHdZv4aGxCvMUHuRLqHmBE8tp16t3DrK5wqFcAX7GOZyp/oAkFZnlNqA2C44cUW6GZhanPtpxwixv3iyU07lJCQSB8LG45pWjDUl7G7EuHkPSPkj7blkt6dv2w1FnkabMsKkfdAzOema5YZTeBQbxAAA6JjsmZSZmJmMmYCYiINglyyXZJUImQCZqJmsmPCa6JcQllSE8ILYApwCsJaghkSGTIZIhkCEfIpQhsiW8JSAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgACI8cA/ADpAOIA5ADgAOUA5wDqAOsA6ADvAO4A7ADEAMUAyQDmAMYA9AD2APIA+wD5AP8A1gDcAKIAowClAKcgkgHhAO0A8wD6APEA0QCqALoAvwAQI6wAvQC8AKEAqwC7AJElkiWTJQIlJCVhJWIlViVVJWMlUSVXJV0lXCVbJRAlFCU0JSwlHCUAJTwlXiVfJVolVCVpJWYlYCVQJWwlZyVoJWQlZSVZJVglUiVTJWslaiUYJQwliCWEJYwlkCWAJbED3wCTA8ADowPDA7UAxAOmA5gDqQO0Ax4ixgO1AykiYSKxAGUiZCIgIyEj9wBIIrAAGSK3ABoifyCyAKAloAAAAAAAAABQSwYGAFBLBgcAUEsFBgBQSwMEAFBLAQIAQUUAbmVlZCBkaWN0aW9uYXJ5AHN0cmVhbSBlbmQAAGZpbGUgZXJyb3IAc3RyZWFtIGVycm9yAGRhdGEgZXJyb3IAaW5zdWZmaWNpZW50IG1lbW9yeQBidWZmZXIgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AQdDUAAsm0ikAAOIpAADtKQAA7ikAAPkpAAAGKgAAESoAACUqAAAyKgAA7SkAQYHVAAu2EAECAwQEBQUGBgYGBwcHBwgICAgICAgICQkJCQkJCQkKCgoKCgoKCgoKCgoKCgoKCwsLCwsLCwsLCwsLCwsLCwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwAAEBESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGBkZGRkZGRkZGRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0AAQIDBAUGBwgICQkKCgsLDAwMDA0NDQ0ODg4ODw8PDxAQEBAQEBAQERERERERERESEhISEhISEhMTExMTExMTFBQUFBQUFBQUFBQUFBQUFBUVFRUVFRUVFRUVFRUVFRUWFhYWFhYWFhYWFhYWFhYWFxcXFxcXFxcXFxcXFxcXFxgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxscwC0AAMAyAAABAQAAHgEAAA8AAABAMgAAQDMAAAAAAAAeAAAADwAAAAAAAADAMwAAAAAAABMAAAAHAAAAAAAAAAwACACMAAgATAAIAMwACAAsAAgArAAIAGwACADsAAgAHAAIAJwACABcAAgA3AAIADwACAC8AAgAfAAIAPwACAACAAgAggAIAEIACADCAAgAIgAIAKIACABiAAgA4gAIABIACACSAAgAUgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+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(); - }; - }); - 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) >>> - 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 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; - } - 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 { - 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]); - } - }; - }; - 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 diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs deleted file mode 100644 index e5a54290..00000000 --- a/.pnp.loader.mjs +++ /dev/null @@ -1,2126 +0,0 @@ -/* eslint-disable */ -// @ts-nocheck - -import fs from 'fs'; -import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; -import path from 'path'; -import { createHash } from 'crypto'; -import { EOL } from 'os'; -import esmModule, { createRequire, isBuiltin } from 'module'; -import assert from 'assert'; - -const SAFE_TIME = 456789e3; - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const npath = Object.create(path); -const ppath = Object.create(path.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path.posix.resolve(...segments); - } else { - return path.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.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\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} -async function copyFolder(prelayout, postlayout, 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; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - 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) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } 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 void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - 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; - } - } - createdDirectory ??= subPath; - 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); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - 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; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - 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); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - 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`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - 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 = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch (error) { - return Date.now() - startTime < 500; - } - try { - 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 (error2) { - } - } - if (Date.now() - startTime < 60 * 1e3) { - 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; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch (error) { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -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); - } - } - 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); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - 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); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - 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); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, 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); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs) { - super(); - this.realFs = realFs; - } - 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) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - 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, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - 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 fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - 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)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - 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)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - 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 lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(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) => { - 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 rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(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) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - 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, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } 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); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, 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); - } - }; - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - 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`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - 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)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - 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) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; -const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; -const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; -const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs.existsSync(jsonPath)) - return null; - return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); -} - -async function tryReadFile$1(path2) { - try { - return await fs.promises.readFile(path2, `utf8`); - } catch (error) { - if (error.code === `ENOENT`) - return null; - throw error; - } -} -function tryParseURL(str, base) { - try { - return new URL(str, base); - } catch { - return null; - } -} -let entrypointPath = null; -function setEntrypointPath(file) { - entrypointPath = file; -} -function getFileFormat(filepath) { - const ext = path.extname(filepath); - switch (ext) { - case `.mjs`: { - return `module`; - } - case `.cjs`: { - return `commonjs`; - } - case `.wasm`: { - throw new Error( - `Unknown file extension ".wasm" for ${filepath}` - ); - } - case `.json`: { - return `json`; - } - case `.js`: { - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - return pkg.data.type ?? `commonjs`; - } - default: { - if (entrypointPath !== filepath) - return null; - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - if (pkg.data.type === `module`) - return null; - return pkg.data.type ?? `commonjs`; - } - } -} - -async function load$1(urlString, context, nextLoad) { - const url = tryParseURL(urlString); - if (url?.protocol !== `file:`) - return nextLoad(urlString, context, nextLoad); - const filePath = fileURLToPath(url); - const format = getFileFormat(filePath); - if (!format) - return nextLoad(urlString, context, nextLoad); - if (format === `json`) { - if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { - if (context.importAttributes?.type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); - err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; - throw err; - } - } else { - const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; - if (type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); - err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; - throw err; - } - } - } - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - const pathToSend = pathToFileURL( - npath.fromPortablePath( - VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) - ) - ).href; - process.send({ - "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend - }); - } - return { - format, - source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), - shortCircuit: true - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), - fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -let findPnpApi = esmModule.findPnpApi; -if (!findPnpApi) { - const require = createRequire(import.meta.url); - const pnpApi = require(`./.pnp.cjs`); - pnpApi.setup(); - findPnpApi = esmModule.findPnpApi; -} -const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; -const isRelativeRegexp = /^\.{0,2}\//; -function tryReadFile(filePath) { - try { - return fs.readFileSync(filePath, `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } -} -async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { - const resolved = packageImportsResolve({ - name: specifier, - base: pathToFileURL(issuer), - conditions: new Set(context.conditions), - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return { url: resolved.href, shortCircuit: true }; - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolve$1(resolved, context, nextResolve); - } -} -async function resolve$1(originalSpecifier, context, nextResolve) { - if (!findPnpApi || isBuiltin(originalSpecifier)) - return nextResolve(originalSpecifier, context, nextResolve); - let specifier = originalSpecifier; - const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); - if (url) { - if (url.protocol !== `file:`) - return nextResolve(originalSpecifier, context, nextResolve); - specifier = fileURLToPath(url); - } - const { parentURL, conditions = [] } = context; - const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); - const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); - if (!pnpapi) - return nextResolve(originalSpecifier, context, nextResolve); - if (specifier.startsWith(`#`)) - return resolvePrivateRequest(specifier, issuer, context, nextResolve); - const dependencyNameMatch = specifier.match(pathRegExp); - let allowLegacyResolve = false; - if (dependencyNameMatch) { - const [, dependencyName, subPath] = dependencyNameMatch; - if (subPath === `` && dependencyName !== `pnpapi`) { - const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); - if (resolved) { - const content = await tryReadFile$1(resolved); - if (content) { - const pkg = JSON.parse(content); - allowLegacyResolve = pkg.exports == null; - } - } - } - } - let result; - try { - result = pnpapi.resolveRequest(specifier, issuer, { - conditions: new Set(conditions), - // TODO: Handle --experimental-specifier-resolution=node - extensions: allowLegacyResolve ? void 0 : [] - }); - } catch (err) { - if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) - err.code = `ERR_MODULE_NOT_FOUND`; - throw err; - } - if (!result) - throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); - const resultURL = pathToFileURL(result); - if (url) { - resultURL.search = url.search; - resultURL.hash = url.hash; - } - if (!parentURL) - setEntrypointPath(fileURLToPath(resultURL)); - return { - url: resultURL.href, - shortCircuit: true - }; -} - -if (!HAS_LAZY_LOADED_TRANSLATORS) { - const binding = process.binding(`fs`); - const originalReadFile = binding.readFileUtf8 || binding.readFileSync; - if (originalReadFile) { - binding[originalReadFile.name] = function(...args) { - try { - return fs.readFileSync(args[0], { - encoding: `utf8`, - // @ts-expect-error - The docs says it needs to be a string but - // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags - // which says it can be a number which matches the implementation. - flag: args[1] - }); - } catch { - } - return originalReadFile.apply(this, args); - }; - } else { - const binding2 = process.binding(`fs`); - const originalfstat = binding2.fstat; - const ZIP_MASK = 4278190080; - const ZIP_MAGIC = 704643072; - binding2.fstat = function(...args) { - const [fd, useBigint, req] = args; - if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { - try { - const stats = fs.fstatSync(fd); - return new Float64Array([ - stats.dev, - stats.mode, - stats.nlink, - stats.uid, - stats.gid, - stats.rdev, - stats.blksize, - stats.ino, - stats.size, - stats.blocks - // atime sec - // atime ns - // mtime sec - // mtime ns - // ctime sec - // ctime ns - // birthtime sec - // birthtime ns - ]); - } catch { - } - } - return originalfstat.apply(this, args); - }; - } -} - -const resolve = resolve$1; -const load = load$1; - -export { load, resolve }; diff --git a/.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-f345152537.zip b/.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-f345152537.zip deleted file mode 100644 index 6e57c134..00000000 Binary files a/.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-f345152537.zip and /dev/null differ diff --git a/.yarn/cache/@babel-cli-npm-7.13.16-b5bfaba1af-91a8837315.zip b/.yarn/cache/@babel-cli-npm-7.13.16-b5bfaba1af-91a8837315.zip deleted file mode 100644 index bd7ee07a..00000000 Binary files a/.yarn/cache/@babel-cli-npm-7.13.16-b5bfaba1af-91a8837315.zip and /dev/null differ diff --git a/.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-d243f0b1e4.zip b/.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-d243f0b1e4.zip deleted file mode 100644 index bd9ef1f7..00000000 Binary files a/.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-d243f0b1e4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-f8f90562df.zip b/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-f8f90562df.zip deleted file mode 100644 index f9600fd7..00000000 Binary files a/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-f8f90562df.zip and /dev/null differ diff --git a/.yarn/cache/@babel-code-frame-npm-7.24.7-315a600a58-4812e94885.zip b/.yarn/cache/@babel-code-frame-npm-7.24.7-315a600a58-4812e94885.zip deleted file mode 100644 index 5eb87a30..00000000 Binary files a/.yarn/cache/@babel-code-frame-npm-7.24.7-315a600a58-4812e94885.zip and /dev/null differ diff --git a/.yarn/cache/@babel-compat-data-npm-7.14.0-150bea01c2-f095a55924.zip b/.yarn/cache/@babel-compat-data-npm-7.14.0-150bea01c2-f095a55924.zip deleted file mode 100644 index ae47035f..00000000 Binary files a/.yarn/cache/@babel-compat-data-npm-7.14.0-150bea01c2-f095a55924.zip and /dev/null differ diff --git a/.yarn/cache/@babel-compat-data-npm-7.25.4-213b9c835f-d37a8936cc.zip b/.yarn/cache/@babel-compat-data-npm-7.25.4-213b9c835f-d37a8936cc.zip deleted file mode 100644 index 8b58b6ef..00000000 Binary files a/.yarn/cache/@babel-compat-data-npm-7.25.4-213b9c835f-d37a8936cc.zip and /dev/null differ diff --git a/.yarn/cache/@babel-core-npm-7.14.2-1f05a9f0fb-139bba9bb7.zip b/.yarn/cache/@babel-core-npm-7.14.2-1f05a9f0fb-139bba9bb7.zip deleted file mode 100644 index fb139529..00000000 Binary files a/.yarn/cache/@babel-core-npm-7.14.2-1f05a9f0fb-139bba9bb7.zip and /dev/null differ diff --git a/.yarn/cache/@babel-core-npm-7.25.2-341930f809-0d6ec10ff4.zip b/.yarn/cache/@babel-core-npm-7.25.2-341930f809-0d6ec10ff4.zip deleted file mode 100644 index 3ce1ed06..00000000 Binary files a/.yarn/cache/@babel-core-npm-7.25.2-341930f809-0d6ec10ff4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-generator-npm-7.14.2-f5d8a12b3c-0687144963.zip b/.yarn/cache/@babel-generator-npm-7.14.2-f5d8a12b3c-0687144963.zip deleted file mode 100644 index 48dfd00d..00000000 Binary files a/.yarn/cache/@babel-generator-npm-7.14.2-f5d8a12b3c-0687144963.zip and /dev/null differ diff --git a/.yarn/cache/@babel-generator-npm-7.25.6-3bdca6c59f-541e4fbb6e.zip b/.yarn/cache/@babel-generator-npm-7.25.6-3bdca6c59f-541e4fbb6e.zip deleted file mode 100644 index 39afbe46..00000000 Binary files a/.yarn/cache/@babel-generator-npm-7.25.6-3bdca6c59f-541e4fbb6e.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.12.13-0c70b1f2c0-c85c2cf08c.zip b/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.12.13-0c70b1f2c0-c85c2cf08c.zip deleted file mode 100644 index c7a06d3d..00000000 Binary files a/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.12.13-0c70b1f2c0-c85c2cf08c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.24.7-537c5e8bf3-a9017bfc1c.zip b/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.24.7-537c5e8bf3-a9017bfc1c.zip deleted file mode 100644 index 80b09b74..00000000 Binary files a/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.24.7-537c5e8bf3-a9017bfc1c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.12.13-28972fa4d7-798177396a.zip b/.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.12.13-28972fa4d7-798177396a.zip deleted file mode 100644 index 306269b0..00000000 Binary files a/.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.12.13-28972fa4d7-798177396a.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip b/.yarn/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip deleted file mode 100644 index 81b2a50e..00000000 Binary files a/.yarn/cache/@babel-helper-compilation-targets-npm-7.13.16-e8eed91d8d-45d558095a.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-compilation-targets-npm-7.25.2-27e0232144-eccb2d7592.zip b/.yarn/cache/@babel-helper-compilation-targets-npm-7.25.2-27e0232144-eccb2d7592.zip deleted file mode 100644 index 478a61de..00000000 Binary files a/.yarn/cache/@babel-helper-compilation-targets-npm-7.25.2-27e0232144-eccb2d7592.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip b/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip deleted file mode 100644 index f4e0d019..00000000 Binary files a/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.14.2-67e56343de-5d8383fb38.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-47218da9fd.zip b/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-47218da9fd.zip deleted file mode 100644 index 384ba7f3..00000000 Binary files a/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.4-125644448f-47218da9fd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip b/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip deleted file mode 100644 index 15c5c25b..00000000 Binary files a/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.17-69d34b414e-824b834944.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-33dd627eef.zip b/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-33dd627eef.zip deleted file mode 100644 index 15603cc0..00000000 Binary files a/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.25.2-35b05e1e79-33dd627eef.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip b/.yarn/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip deleted file mode 100644 index ee13eaad..00000000 Binary files a/.yarn/cache/@babel-helper-define-polyfill-provider-npm-0.2.0-f66c36439a-466c8be282.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-environment-visitor-npm-7.24.7-9a965bf523-079d86e657.zip b/.yarn/cache/@babel-helper-environment-visitor-npm-7.24.7-9a965bf523-079d86e657.zip deleted file mode 100644 index 8fe4b856..00000000 Binary files a/.yarn/cache/@babel-helper-environment-visitor-npm-7.24.7-9a965bf523-079d86e657.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.13.0-b191ec8b33-538f22a40b.zip b/.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.13.0-b191ec8b33-538f22a40b.zip deleted file mode 100644 index 951a1d27..00000000 Binary files a/.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.13.0-b191ec8b33-538f22a40b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-42256b1174.zip b/.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-42256b1174.zip deleted file mode 100644 index 59c4ff87..00000000 Binary files a/.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-42256b1174.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-847ef9f4d4.zip b/.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-847ef9f4d4.zip deleted file mode 100644 index a31f6016..00000000 Binary files a/.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-847ef9f4d4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-hoist-variables-npm-7.13.16-315a8140fb-02bc248458.zip b/.yarn/cache/@babel-helper-hoist-variables-npm-7.13.16-315a8140fb-02bc248458.zip deleted file mode 100644 index 60d03f17..00000000 Binary files a/.yarn/cache/@babel-helper-hoist-variables-npm-7.13.16-315a8140fb-02bc248458.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-3ab2c9becd.zip b/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-3ab2c9becd.zip deleted file mode 100644 index 51a3ad44..00000000 Binary files a/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-3ab2c9becd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.24.8-6042e98e38-ac878761cf.zip b/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.24.8-6042e98e38-ac878761cf.zip deleted file mode 100644 index c667bd76..00000000 Binary files a/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.24.8-6042e98e38-ac878761cf.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-4884d769a4.zip b/.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-4884d769a4.zip deleted file mode 100644 index 13b4ae53..00000000 Binary files a/.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-4884d769a4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-module-imports-npm-7.24.7-f60e66adbf-df8bfb2bb1.zip b/.yarn/cache/@babel-helper-module-imports-npm-7.24.7-f60e66adbf-df8bfb2bb1.zip deleted file mode 100644 index 39f15939..00000000 Binary files a/.yarn/cache/@babel-helper-module-imports-npm-7.24.7-f60e66adbf-df8bfb2bb1.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-482c215163.zip b/.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-482c215163.zip deleted file mode 100644 index 62cf5a8a..00000000 Binary files a/.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-482c215163.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-a3bcf7815f.zip b/.yarn/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-a3bcf7815f.zip deleted file mode 100644 index 9a78cb4a..00000000 Binary files a/.yarn/cache/@babel-helper-module-transforms-npm-7.25.2-2c8d511580-a3bcf7815f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-9925679d67.zip b/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-9925679d67.zip deleted file mode 100644 index 12bbacfd..00000000 Binary files a/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-9925679d67.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.24.7-59b5fb050d-da7a7f2d1b.zip b/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.24.7-59b5fb050d-da7a7f2d1b.zip deleted file mode 100644 index 167c7649..00000000 Binary files a/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.24.7-59b5fb050d-da7a7f2d1b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip b/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip deleted file mode 100644 index 14e851b8..00000000 Binary files a/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-plugin-utils-npm-7.24.8-a288f101a7-adbc9fc114.zip b/.yarn/cache/@babel-helper-plugin-utils-npm-7.24.8-a288f101a7-adbc9fc114.zip deleted file mode 100644 index 057f7963..00000000 Binary files a/.yarn/cache/@babel-helper-plugin-utils-npm-7.24.8-a288f101a7-adbc9fc114.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.13.0-fd0debe079-40589d8829.zip b/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.13.0-fd0debe079-40589d8829.zip deleted file mode 100644 index 9007c5b1..00000000 Binary files a/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.13.0-fd0debe079-40589d8829.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6b1ab73a06.zip b/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6b1ab73a06.zip deleted file mode 100644 index e8a9d335..00000000 Binary files a/.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.25.0-0f64f09501-6b1ab73a06.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-replace-supers-npm-7.13.12-dcea88adef-2fb2156afe.zip b/.yarn/cache/@babel-helper-replace-supers-npm-7.13.12-dcea88adef-2fb2156afe.zip deleted file mode 100644 index f9534665..00000000 Binary files a/.yarn/cache/@babel-helper-replace-supers-npm-7.13.12-dcea88adef-2fb2156afe.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-97c6c17780.zip b/.yarn/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-97c6c17780.zip deleted file mode 100644 index 43100c0e..00000000 Binary files a/.yarn/cache/@babel-helper-replace-supers-npm-7.25.0-7aaa2ff595-97c6c17780.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-afd0a8d1c7.zip b/.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-afd0a8d1c7.zip deleted file mode 100644 index a633ff97..00000000 Binary files a/.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-afd0a8d1c7.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-simple-access-npm-7.24.7-beddd00b0e-5083e19018.zip b/.yarn/cache/@babel-helper-simple-access-npm-7.24.7-beddd00b0e-5083e19018.zip deleted file mode 100644 index 58d04f48..00000000 Binary files a/.yarn/cache/@babel-helper-simple-access-npm-7.24.7-beddd00b0e-5083e19018.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-8f38c769fd.zip b/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-8f38c769fd.zip deleted file mode 100644 index 87520603..00000000 Binary files a/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-8f38c769fd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.24.7-f573fe40ee-784a6fdd25.zip b/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.24.7-f573fe40ee-784a6fdd25.zip deleted file mode 100644 index 19c15e3d..00000000 Binary files a/.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.24.7-f573fe40ee-784a6fdd25.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-adc8954a0b.zip b/.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-adc8954a0b.zip deleted file mode 100644 index 9c12591d..00000000 Binary files a/.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-adc8954a0b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-string-parser-npm-7.24.8-133b2e71e1-6d1bf8f27d.zip b/.yarn/cache/@babel-helper-string-parser-npm-7.24.8-133b2e71e1-6d1bf8f27d.zip deleted file mode 100644 index 4c1be956..00000000 Binary files a/.yarn/cache/@babel-helper-string-parser-npm-7.24.8-133b2e71e1-6d1bf8f27d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-f994098bab.zip b/.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-f994098bab.zip deleted file mode 100644 index ba782eb0..00000000 Binary files a/.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-f994098bab.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-validator-identifier-npm-7.24.7-748889c8d2-86875063f5.zip b/.yarn/cache/@babel-helper-validator-identifier-npm-7.24.7-748889c8d2-86875063f5.zip deleted file mode 100644 index 02188105..00000000 Binary files a/.yarn/cache/@babel-helper-validator-identifier-npm-7.24.7-748889c8d2-86875063f5.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-940e7b78dc.zip b/.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-940e7b78dc.zip deleted file mode 100644 index d7e983a3..00000000 Binary files a/.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-940e7b78dc.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-validator-option-npm-7.24.8-e093ef5016-a52442dfa7.zip b/.yarn/cache/@babel-helper-validator-option-npm-7.24.8-e093ef5016-a52442dfa7.zip deleted file mode 100644 index bbaa9491..00000000 Binary files a/.yarn/cache/@babel-helper-validator-option-npm-7.24.8-e093ef5016-a52442dfa7.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-wrap-function-npm-7.13.0-f4714c52ae-dab4018cd2.zip b/.yarn/cache/@babel-helper-wrap-function-npm-7.13.0-f4714c52ae-dab4018cd2.zip deleted file mode 100644 index ad790af8..00000000 Binary files a/.yarn/cache/@babel-helper-wrap-function-npm-7.13.0-f4714c52ae-dab4018cd2.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helper-wrap-function-npm-7.25.0-c85147a474-08724128b9.zip b/.yarn/cache/@babel-helper-wrap-function-npm-7.25.0-c85147a474-08724128b9.zip deleted file mode 100644 index e3320659..00000000 Binary files a/.yarn/cache/@babel-helper-wrap-function-npm-7.25.0-c85147a474-08724128b9.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-b11da6ac31.zip b/.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-b11da6ac31.zip deleted file mode 100644 index 93b6b408..00000000 Binary files a/.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-b11da6ac31.zip and /dev/null differ diff --git a/.yarn/cache/@babel-helpers-npm-7.25.6-6722375514-43abc8d017.zip b/.yarn/cache/@babel-helpers-npm-7.25.6-6722375514-43abc8d017.zip deleted file mode 100644 index 74ac93c4..00000000 Binary files a/.yarn/cache/@babel-helpers-npm-7.25.6-6722375514-43abc8d017.zip and /dev/null differ diff --git a/.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-5aae226c0d.zip b/.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-5aae226c0d.zip deleted file mode 100644 index 4d0f07f6..00000000 Binary files a/.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-5aae226c0d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-highlight-npm-7.24.7-d792bd8d9f-69b73f38cd.zip b/.yarn/cache/@babel-highlight-npm-7.24.7-d792bd8d9f-69b73f38cd.zip deleted file mode 100644 index 9df46bf3..00000000 Binary files a/.yarn/cache/@babel-highlight-npm-7.24.7-d792bd8d9f-69b73f38cd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-parser-npm-7.14.2-f5dde901a5-0c32f278c8.zip b/.yarn/cache/@babel-parser-npm-7.14.2-f5dde901a5-0c32f278c8.zip deleted file mode 100644 index 2a4160ba..00000000 Binary files a/.yarn/cache/@babel-parser-npm-7.14.2-f5dde901a5-0c32f278c8.zip and /dev/null differ diff --git a/.yarn/cache/@babel-parser-npm-7.25.6-3cb198940b-830aab7211.zip b/.yarn/cache/@babel-parser-npm-7.25.6-3cb198940b-830aab7211.zip deleted file mode 100644 index 58cc8bfb..00000000 Binary files a/.yarn/cache/@babel-parser-npm-7.25.6-3cb198940b-830aab7211.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-4064a70fcd.zip b/.yarn/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-4064a70fcd.zip deleted file mode 100644 index c4ce1d48..00000000 Binary files a/.yarn/cache/@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-npm-7.13.12-3109124366-4064a70fcd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-1ac72b48a6.zip b/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-1ac72b48a6.zip deleted file mode 100644 index e9607767..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.14.2-76ff7efbf1-1ac72b48a6.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-111109ee11.zip b/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-111109ee11.zip deleted file mode 100644 index 49a4fa08..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.20.7-14b8ab2230-111109ee11.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip b/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip deleted file mode 100644 index 233e72f1..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.13.0-ed71c3af60-e3cdfacb2d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-49a78a2773.zip b/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-49a78a2773.zip deleted file mode 100644 index 2ded5708..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.18.6-5f5c2d730f-49a78a2773.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-4760d5966d.zip b/.yarn/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-4760d5966d.zip deleted file mode 100644 index bd9f712b..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-class-static-block-npm-7.13.11-066e5b8f3a-4760d5966d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-24b407acd7.zip b/.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-24b407acd7.zip deleted file mode 100644 index b0dfa59e..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.14.2-b737c4317d-24b407acd7.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip b/.yarn/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip deleted file mode 100644 index 06d36fa1..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-export-default-from-npm-7.12.13-a3a1d673db-8232814734.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e34fc6b926.zip b/.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e34fc6b926.zip deleted file mode 100644 index 0d11b802..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.14.2-b86015c9fd-e34fc6b926.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-2db971b41f.zip b/.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-2db971b41f.zip deleted file mode 100644 index d380c227..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.14.2-92029fe0dc-2db971b41f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-a31ca07a75.zip b/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-a31ca07a75.zip deleted file mode 100644 index 0344d2b2..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.14.2-e30bfff1f2-a31ca07a75.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-cdd7b8136c.zip b/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-cdd7b8136c.zip deleted file mode 100644 index 17e1ecca..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.20.7-14484768d8-cdd7b8136c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-4d0ca4f000.zip b/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-4d0ca4f000.zip deleted file mode 100644 index b0ad4ced..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.14.2-b8b8372571-4d0ca4f000.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-949c9ddcde.zip b/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-949c9ddcde.zip deleted file mode 100644 index b37b2d7c..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.18.6-cf22ea8526-949c9ddcde.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-19d0bc6e29.zip b/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-19d0bc6e29.zip deleted file mode 100644 index c59a78c4..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.14.2-810f6e0a0b-19d0bc6e29.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-f370ea584c.zip b/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-f370ea584c.zip deleted file mode 100644 index 78205289..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.18.6-cfcd55888a-f370ea584c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-bf7cd2d704.zip b/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-bf7cd2d704.zip deleted file mode 100644 index 7d146d28..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.14.2-ba7e65c3f5-bf7cd2d704.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-cb0f8f2ff9.zip b/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-cb0f8f2ff9.zip deleted file mode 100644 index 8ceed8a0..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.20.7-0bc581aa09-cb0f8f2ff9.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip b/.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip deleted file mode 100644 index 87650706..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.14.2-47fd34d2e3-b848a30f24.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip b/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip deleted file mode 100644 index 19801764..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.14.2-f396a70429-8148120646.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-522cd133af.zip b/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-522cd133af.zip deleted file mode 100644 index edc9bb36..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.21.0-cdbb1b2888-522cd133af.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-3c8cdc29b3.zip b/.yarn/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-3c8cdc29b3.zip deleted file mode 100644 index c389bad5..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-private-methods-npm-7.13.0-42ab96c60d-3c8cdc29b3.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-b29a2c137a.zip b/.yarn/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-b29a2c137a.zip deleted file mode 100644 index 12ef845f..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-private-property-in-object-npm-7.14.0-62e0eff5d3-b29a2c137a.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-c93f96c65f.zip b/.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-c93f96c65f.zip deleted file mode 100644 index 9ce24606..00000000 Binary files a/.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.13-6c91d43106-c93f96c65f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip b/.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip deleted file mode 100644 index bc3c60f0..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip b/.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip deleted file mode 100644 index 0134ce90..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip b/.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip deleted file mode 100644 index 7bddd9a6..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-dc115af594.zip b/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-dc115af594.zip deleted file mode 100644 index 7f25559f..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.12.13-ad2df1dffc-dc115af594.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-ce307af83c.zip b/.yarn/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-ce307af83c.zip deleted file mode 100644 index a41ecb49..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-ce307af83c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip b/.yarn/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip deleted file mode 100644 index f8098fea..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-export-default-from-npm-7.12.13-73e99b72d3-2d9a14068b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip b/.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip deleted file mode 100644 index f7f1bab9..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-0edfd8d0a3.zip b/.yarn/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-0edfd8d0a3.zip deleted file mode 100644 index faddb357..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-flow-npm-7.12.13-5d65bcc790-0edfd8d0a3.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip b/.yarn/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip deleted file mode 100644 index e771c044..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-flow-npm-7.24.7-8f0fd978b1-0a83bde673.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip b/.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip deleted file mode 100644 index cbe92234..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip b/.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip deleted file mode 100644 index 027e0bdc..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip b/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip deleted file mode 100644 index 432697a2..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.12.13-25d9e5f368-30697ad460.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip b/.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip deleted file mode 100644 index ddbc188c..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip b/.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip deleted file mode 100644 index 91115bda..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip b/.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip deleted file mode 100644 index f541ce07..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip b/.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip deleted file mode 100644 index 9ad98a0b..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip b/.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip deleted file mode 100644 index dbc1482b..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip b/.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip deleted file mode 100644 index 1a12bdbd..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-71952c6da1.zip b/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-71952c6da1.zip deleted file mode 100644 index f4ae0bac..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.0-5bf3d3cf14-71952c6da1.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip b/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip deleted file mode 100644 index f4e18013..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip b/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip deleted file mode 100644 index 8b234e2b..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip b/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip deleted file mode 100644 index 3a99b0f1..00000000 Binary files a/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip b/.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip deleted file mode 100644 index 4f8812c6..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.13.0-e609c48f8b-cbff8005c7.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-d2c5930781.zip b/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-d2c5930781.zip deleted file mode 100644 index f78be435..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.13.0-dc30a078cc-d2c5930781.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-b2041d9d50.zip b/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-b2041d9d50.zip deleted file mode 100644 index 9c1c09dd..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.24.7-335cbe94e0-b2041d9d50.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-a0e843afe1.zip b/.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-a0e843afe1.zip deleted file mode 100644 index c352fa43..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.13-4624994a2a-a0e843afe1.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip b/.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip deleted file mode 100644 index bb889525..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.14.2-94c581e1c2-1cd8e6b424.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip b/.yarn/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip deleted file mode 100644 index 060119da..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-classes-npm-7.14.2-b52a9188a3-93856483d8.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip b/.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip deleted file mode 100644 index 60bc6448..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.13.0-234f39df3b-405787c1cd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-36fffa9bed.zip b/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-36fffa9bed.zip deleted file mode 100644 index 5052a76a..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.13.17-eb0878c6a4-36fffa9bed.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-e3bba0bb05.zip b/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-e3bba0bb05.zip deleted file mode 100644 index 2f66688d..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.24.8-d05798f0dc-e3bba0bb05.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-084f028be4.zip b/.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-084f028be4.zip deleted file mode 100644 index 95eed8bc..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.12.13-e14889014a-084f028be4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-11a7a5f905.zip b/.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-11a7a5f905.zip deleted file mode 100644 index c98dc85b..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.13-3ac6b99b7c-11a7a5f905.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-5e7db7df2a.zip b/.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-5e7db7df2a.zip deleted file mode 100644 index cbb68b60..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.13-2fda217223-5e7db7df2a.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-f15fe806d3.zip b/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-f15fe806d3.zip deleted file mode 100644 index d520571d..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.13.0-afc37842f7-f15fe806d3.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-b5a54395a5.zip b/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-b5a54395a5.zip deleted file mode 100644 index 854a5d67..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.25.2-a3e93a84d0-b5a54395a5.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-765f8c8895.zip b/.yarn/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-765f8c8895.zip deleted file mode 100644 index 32952976..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-for-of-npm-7.13.0-272f3082b8-765f8c8895.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip b/.yarn/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip deleted file mode 100644 index 06f7136d..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-function-name-npm-7.12.13-a93c20debd-1330ba3576.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip b/.yarn/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip deleted file mode 100644 index ea94c06e..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-literals-npm-7.12.13-586ca5f21f-13ac72edd9.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-922d24402d.zip b/.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-922d24402d.zip deleted file mode 100644 index a6fd1640..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.13-f2a690155a-922d24402d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-c65b72b990.zip b/.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-c65b72b990.zip deleted file mode 100644 index 187ac766..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.14.2-8056c5c6eb-c65b72b990.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip b/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip deleted file mode 100644 index 897d2cd5..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.14.0-20ff3af23d-6516915811.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-18e5d22976.zip b/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-18e5d22976.zip deleted file mode 100644 index d2237a21..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.24.8-4d32ab4533-18e5d22976.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-a858104e9b.zip b/.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-a858104e9b.zip deleted file mode 100644 index 3e500a32..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.13.8-40856ed327-a858104e9b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-6968505e56.zip b/.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-6968505e56.zip deleted file mode 100644 index a016082f..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.14.0-81afc113e4-6968505e56.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-8ef970be54.zip b/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-8ef970be54.zip deleted file mode 100644 index e5fc7d0a..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.13-2d37ec03f4-8ef970be54.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-b0ecb1afd2.zip b/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-b0ecb1afd2.zip deleted file mode 100644 index 13028807..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.24.7-68b2f48b40-b0ecb1afd2.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-ecc3d910d4.zip b/.yarn/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-ecc3d910d4.zip deleted file mode 100644 index 97a84913..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-new-target-npm-7.12.13-19b4dd7d2c-ecc3d910d4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-6221340024.zip b/.yarn/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-6221340024.zip deleted file mode 100644 index f29fb1f1..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-object-assign-npm-7.12.13-d44fc93d51-6221340024.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-558d660ad0.zip b/.yarn/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-558d660ad0.zip deleted file mode 100644 index ab3e9731..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-object-super-npm-7.12.13-5b06d00199-558d660ad0.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip b/.yarn/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip deleted file mode 100644 index 9fe19742..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-parameters-npm-7.14.2-fd5c622a49-3911d4da5f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-41ff6bda92.zip b/.yarn/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-41ff6bda92.zip deleted file mode 100644 index 215e0dbd..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-parameters-npm-7.24.7-d18b1cfc71-41ff6bda92.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-d5c29ba121.zip b/.yarn/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-d5c29ba121.zip deleted file mode 100644 index 6eb98917..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-private-methods-npm-7.25.4-0bfe911738-d5c29ba121.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-a23ee18340.zip b/.yarn/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-a23ee18340.zip deleted file mode 100644 index c1500aa0..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-private-property-in-object-npm-7.24.7-96a62af9e6-a23ee18340.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-a6cca236d5.zip b/.yarn/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-a6cca236d5.zip deleted file mode 100644 index 60263adf..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-property-literals-npm-7.12.13-700c59f576-a6cca236d5.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip b/.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip deleted file mode 100644 index df15917a..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.14.2-dbb7b7ecb2-d38a961904.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-af6e80abcd.zip b/.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-af6e80abcd.zip deleted file mode 100644 index 2505c94c..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.17-2163247b98-af6e80abcd.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip b/.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip deleted file mode 100644 index a2c3e9c5..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.13.12-6932b869d0-51ddb4b042.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip b/.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip deleted file mode 100644 index 617c5f58..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.13-b1a3cf8fdf-535f5f4e2c.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip b/.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip deleted file mode 100644 index ce224ed5..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.14.2-58b13dfbf9-fc8d71c02f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-7c42141c36.zip b/.yarn/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-7c42141c36.zip deleted file mode 100644 index a2d639eb..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-7c42141c36.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-e4c253945b.zip b/.yarn/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-e4c253945b.zip deleted file mode 100644 index 20b1b852..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-regenerator-npm-7.13.15-44b785983a-e4c253945b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-61bee23ba9.zip b/.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-61bee23ba9.zip deleted file mode 100644 index 3f4e8127..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.12.13-4b0733d265-61bee23ba9.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip b/.yarn/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip deleted file mode 100644 index b45596ec..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-runtime-npm-7.14.2-c3c6de9b9b-977cb40d09.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip b/.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip deleted file mode 100644 index 4780a6fe..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.13-618ec89849-32322d9a3b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip b/.yarn/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip deleted file mode 100644 index 75b97b69..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-spread-npm-7.13.0-0d1d63f6da-f5091fa748.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip b/.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip deleted file mode 100644 index 38d76727..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.12.13-d5c10df1e5-41b9e01658.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-463c8462fc.zip b/.yarn/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-463c8462fc.zip deleted file mode 100644 index 59b888ce..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-template-literals-npm-7.13.0-bb17a1cf78-463c8462fc.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-6dbe460c12.zip b/.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-6dbe460c12.zip deleted file mode 100644 index c9e9c34b..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.13-29097a6255-6dbe460c12.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip b/.yarn/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip deleted file mode 100644 index e9172769..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-typescript-npm-7.13.0-8b22979b87-916124e26d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-cfc34c5ab4.zip b/.yarn/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-cfc34c5ab4.zip deleted file mode 100644 index d208b7d5..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.13-6ff1d62723-cfc34c5ab4.zip and /dev/null differ diff --git a/.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip b/.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip deleted file mode 100644 index c6db1c7b..00000000 Binary files a/.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.12.13-6d540872a1-b472c8403b.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-6276f3c7ab.zip b/.yarn/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-6276f3c7ab.zip deleted file mode 100644 index 918c6898..00000000 Binary files a/.yarn/cache/@babel-preset-env-npm-7.14.2-4567a1cd3e-6276f3c7ab.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-c90b30333d.zip b/.yarn/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-c90b30333d.zip deleted file mode 100644 index 176f2074..00000000 Binary files a/.yarn/cache/@babel-preset-flow-npm-7.13.13-fc645e82ee-c90b30333d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-20fe02b5bc.zip b/.yarn/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-20fe02b5bc.zip deleted file mode 100644 index a2c781e2..00000000 Binary files a/.yarn/cache/@babel-preset-flow-npm-7.24.7-faecfd1682-20fe02b5bc.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-559457d579.zip b/.yarn/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-559457d579.zip deleted file mode 100644 index 5322edb5..00000000 Binary files a/.yarn/cache/@babel-preset-modules-npm-0.1.4-db073de4ec-559457d579.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-535e3a3419.zip b/.yarn/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-535e3a3419.zip deleted file mode 100644 index d7f8422a..00000000 Binary files a/.yarn/cache/@babel-preset-react-npm-7.13.13-a2c0ad529c-535e3a3419.zip and /dev/null differ diff --git a/.yarn/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip b/.yarn/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip deleted file mode 100644 index 2b2f2820..00000000 Binary files a/.yarn/cache/@babel-preset-typescript-npm-7.13.0-3015981691-03635c7b0e.zip and /dev/null differ diff --git a/.yarn/cache/@babel-register-npm-7.24.6-624417b242-94580678ee.zip b/.yarn/cache/@babel-register-npm-7.24.6-624417b242-94580678ee.zip deleted file mode 100644 index 581fd138..00000000 Binary files a/.yarn/cache/@babel-register-npm-7.24.6-624417b242-94580678ee.zip and /dev/null differ diff --git a/.yarn/cache/@babel-regjsgen-npm-0.8.0-b0fbdbf644-c57fb730b1.zip b/.yarn/cache/@babel-regjsgen-npm-0.8.0-b0fbdbf644-c57fb730b1.zip deleted file mode 100644 index 62e62b46..00000000 Binary files a/.yarn/cache/@babel-regjsgen-npm-0.8.0-b0fbdbf644-c57fb730b1.zip and /dev/null differ diff --git a/.yarn/cache/@babel-runtime-npm-7.14.0-fba2a32266-698d6a79bf.zip b/.yarn/cache/@babel-runtime-npm-7.14.0-fba2a32266-698d6a79bf.zip deleted file mode 100644 index fb798757..00000000 Binary files a/.yarn/cache/@babel-runtime-npm-7.14.0-fba2a32266-698d6a79bf.zip and /dev/null differ diff --git a/.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-0c4134734d.zip b/.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-0c4134734d.zip deleted file mode 100644 index e7821366..00000000 Binary files a/.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-0c4134734d.zip and /dev/null differ diff --git a/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-00c4a7c9c2.zip b/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-00c4a7c9c2.zip deleted file mode 100644 index 35c13e89..00000000 Binary files a/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-00c4a7c9c2.zip and /dev/null differ diff --git a/.yarn/cache/@babel-template-npm-7.25.0-2c6ddcb43a-07ebecf6db.zip b/.yarn/cache/@babel-template-npm-7.25.0-2c6ddcb43a-07ebecf6db.zip deleted file mode 100644 index b29d8985..00000000 Binary files a/.yarn/cache/@babel-template-npm-7.25.0-2c6ddcb43a-07ebecf6db.zip and /dev/null differ diff --git a/.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-0fdd29eeed.zip b/.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-0fdd29eeed.zip deleted file mode 100644 index 86943189..00000000 Binary files a/.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-0fdd29eeed.zip and /dev/null differ diff --git a/.yarn/cache/@babel-traverse-npm-7.25.6-1b9e2a314c-de75a91829.zip b/.yarn/cache/@babel-traverse-npm-7.25.6-1b9e2a314c-de75a91829.zip deleted file mode 100644 index 8eb2449a..00000000 Binary files a/.yarn/cache/@babel-traverse-npm-7.25.6-1b9e2a314c-de75a91829.zip and /dev/null differ diff --git a/.yarn/cache/@babel-types-npm-7.14.2-0a9f9700cf-286b969a1f.zip b/.yarn/cache/@babel-types-npm-7.14.2-0a9f9700cf-286b969a1f.zip deleted file mode 100644 index b5d7a175..00000000 Binary files a/.yarn/cache/@babel-types-npm-7.14.2-0a9f9700cf-286b969a1f.zip and /dev/null differ diff --git a/.yarn/cache/@babel-types-npm-7.25.6-98df73a2ca-7b54665e1b.zip b/.yarn/cache/@babel-types-npm-7.25.6-98df73a2ca-7b54665e1b.zip deleted file mode 100644 index cff78357..00000000 Binary files a/.yarn/cache/@babel-types-npm-7.25.6-98df73a2ca-7b54665e1b.zip and /dev/null differ diff --git a/.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-1a1f0e356a.zip b/.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-1a1f0e356a.zip deleted file mode 100644 index c1cb3f99..00000000 Binary files a/.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-1a1f0e356a.zip and /dev/null differ diff --git a/.yarn/cache/@cnakazawa-watch-npm-1.0.4-ee43493884-0ed173f64d.zip b/.yarn/cache/@cnakazawa-watch-npm-1.0.4-ee43493884-0ed173f64d.zip deleted file mode 100644 index b9e0bc0e..00000000 Binary files a/.yarn/cache/@cnakazawa-watch-npm-1.0.4-ee43493884-0ed173f64d.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-cli-npm-12.1.4-17caafb9e4-66081b1337.zip b/.yarn/cache/@commitlint-cli-npm-12.1.4-17caafb9e4-66081b1337.zip deleted file mode 100644 index cf2b479b..00000000 Binary files a/.yarn/cache/@commitlint-cli-npm-12.1.4-17caafb9e4-66081b1337.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-config-conventional-npm-12.1.4-a9aa5d652d-9a53ec4fd1.zip b/.yarn/cache/@commitlint-config-conventional-npm-12.1.4-a9aa5d652d-9a53ec4fd1.zip deleted file mode 100644 index b22656bf..00000000 Binary files a/.yarn/cache/@commitlint-config-conventional-npm-12.1.4-a9aa5d652d-9a53ec4fd1.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-ensure-npm-12.1.4-2339dce3fc-db9b97052e.zip b/.yarn/cache/@commitlint-ensure-npm-12.1.4-2339dce3fc-db9b97052e.zip deleted file mode 100644 index d471cd64..00000000 Binary files a/.yarn/cache/@commitlint-ensure-npm-12.1.4-2339dce3fc-db9b97052e.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-execute-rule-npm-12.1.4-45fb2eb19c-c65bca0381.zip b/.yarn/cache/@commitlint-execute-rule-npm-12.1.4-45fb2eb19c-c65bca0381.zip deleted file mode 100644 index cc1c458d..00000000 Binary files a/.yarn/cache/@commitlint-execute-rule-npm-12.1.4-45fb2eb19c-c65bca0381.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-format-npm-12.1.4-cedc1fc9ba-8f43c94ecc.zip b/.yarn/cache/@commitlint-format-npm-12.1.4-cedc1fc9ba-8f43c94ecc.zip deleted file mode 100644 index 9086a32f..00000000 Binary files a/.yarn/cache/@commitlint-format-npm-12.1.4-cedc1fc9ba-8f43c94ecc.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-is-ignored-npm-12.1.4-d604537e6e-91c0f42b10.zip b/.yarn/cache/@commitlint-is-ignored-npm-12.1.4-d604537e6e-91c0f42b10.zip deleted file mode 100644 index bd71794b..00000000 Binary files a/.yarn/cache/@commitlint-is-ignored-npm-12.1.4-d604537e6e-91c0f42b10.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-lint-npm-12.1.4-d04b50b0b2-10040fa4f8.zip b/.yarn/cache/@commitlint-lint-npm-12.1.4-d04b50b0b2-10040fa4f8.zip deleted file mode 100644 index 78b3139d..00000000 Binary files a/.yarn/cache/@commitlint-lint-npm-12.1.4-d04b50b0b2-10040fa4f8.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-load-npm-12.1.4-020f22b221-db8717b08e.zip b/.yarn/cache/@commitlint-load-npm-12.1.4-020f22b221-db8717b08e.zip deleted file mode 100644 index 01c469ec..00000000 Binary files a/.yarn/cache/@commitlint-load-npm-12.1.4-020f22b221-db8717b08e.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-message-npm-12.1.4-fb51852889-dfefa772e1.zip b/.yarn/cache/@commitlint-message-npm-12.1.4-fb51852889-dfefa772e1.zip deleted file mode 100644 index 5c4e911f..00000000 Binary files a/.yarn/cache/@commitlint-message-npm-12.1.4-fb51852889-dfefa772e1.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-parse-npm-12.1.4-7aa2fe9d19-075b016481.zip b/.yarn/cache/@commitlint-parse-npm-12.1.4-7aa2fe9d19-075b016481.zip deleted file mode 100644 index 4db492b0..00000000 Binary files a/.yarn/cache/@commitlint-parse-npm-12.1.4-7aa2fe9d19-075b016481.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-read-npm-12.1.4-5803b0d603-f7d115ae67.zip b/.yarn/cache/@commitlint-read-npm-12.1.4-5803b0d603-f7d115ae67.zip deleted file mode 100644 index 9791cdba..00000000 Binary files a/.yarn/cache/@commitlint-read-npm-12.1.4-5803b0d603-f7d115ae67.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-resolve-extends-npm-12.1.4-14da710c78-8f966a3eed.zip b/.yarn/cache/@commitlint-resolve-extends-npm-12.1.4-14da710c78-8f966a3eed.zip deleted file mode 100644 index 9823daec..00000000 Binary files a/.yarn/cache/@commitlint-resolve-extends-npm-12.1.4-14da710c78-8f966a3eed.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-rules-npm-12.1.4-5d82296cac-9594bc080b.zip b/.yarn/cache/@commitlint-rules-npm-12.1.4-5d82296cac-9594bc080b.zip deleted file mode 100644 index 362307f0..00000000 Binary files a/.yarn/cache/@commitlint-rules-npm-12.1.4-5d82296cac-9594bc080b.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-to-lines-npm-12.1.4-5258714d7f-39b3de6b63.zip b/.yarn/cache/@commitlint-to-lines-npm-12.1.4-5258714d7f-39b3de6b63.zip deleted file mode 100644 index 75535ad6..00000000 Binary files a/.yarn/cache/@commitlint-to-lines-npm-12.1.4-5258714d7f-39b3de6b63.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-top-level-npm-12.1.4-d0d833ca07-cdb46dfbcd.zip b/.yarn/cache/@commitlint-top-level-npm-12.1.4-d0d833ca07-cdb46dfbcd.zip deleted file mode 100644 index e28c6154..00000000 Binary files a/.yarn/cache/@commitlint-top-level-npm-12.1.4-d0d833ca07-cdb46dfbcd.zip and /dev/null differ diff --git a/.yarn/cache/@commitlint-types-npm-12.1.4-277c712683-748eedb963.zip b/.yarn/cache/@commitlint-types-npm-12.1.4-277c712683-748eedb963.zip deleted file mode 100644 index 109a9c58..00000000 Binary files a/.yarn/cache/@commitlint-types-npm-12.1.4-277c712683-748eedb963.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-0.4.1-48933b2833-4f78011580.zip b/.yarn/cache/@eslint-eslintrc-npm-0.4.1-48933b2833-4f78011580.zip deleted file mode 100644 index ac542a2c..00000000 Binary files a/.yarn/cache/@eslint-eslintrc-npm-0.4.1-48933b2833-4f78011580.zip and /dev/null differ diff --git a/.yarn/cache/@hapi-hoek-npm-9.3.0-447eb8d274-ad83a22378.zip b/.yarn/cache/@hapi-hoek-npm-9.3.0-447eb8d274-ad83a22378.zip deleted file mode 100644 index 3091ca47..00000000 Binary files a/.yarn/cache/@hapi-hoek-npm-9.3.0-447eb8d274-ad83a22378.zip and /dev/null differ diff --git a/.yarn/cache/@hapi-topo-npm-5.1.0-5e0b776809-084bfa6470.zip b/.yarn/cache/@hapi-topo-npm-5.1.0-5e0b776809-084bfa6470.zip deleted file mode 100644 index b490012e..00000000 Binary files a/.yarn/cache/@hapi-topo-npm-5.1.0-5e0b776809-084bfa6470.zip and /dev/null differ diff --git a/.yarn/cache/@iarna-toml-npm-2.2.5-6da1399e8e-b61426dc1a.zip b/.yarn/cache/@iarna-toml-npm-2.2.5-6da1399e8e-b61426dc1a.zip deleted file mode 100644 index e12c97ed..00000000 Binary files a/.yarn/cache/@iarna-toml-npm-2.2.5-6da1399e8e-b61426dc1a.zip and /dev/null differ diff --git a/.yarn/cache/@isaacs-ttlcache-npm-1.4.1-1de33cdaab-57f2b00b58.zip b/.yarn/cache/@isaacs-ttlcache-npm-1.4.1-1de33cdaab-57f2b00b58.zip deleted file mode 100644 index 5ba207a4..00000000 Binary files a/.yarn/cache/@isaacs-ttlcache-npm-1.4.1-1de33cdaab-57f2b00b58.zip and /dev/null differ diff --git a/.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-b000a5acd8.zip b/.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-b000a5acd8.zip deleted file mode 100644 index 3683321d..00000000 Binary files a/.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-b000a5acd8.zip and /dev/null differ diff --git a/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-a9b1e49acd.zip b/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-a9b1e49acd.zip deleted file mode 100644 index 77850e7d..00000000 Binary files a/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-a9b1e49acd.zip and /dev/null differ diff --git a/.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-0e0d8dfe2f.zip b/.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-0e0d8dfe2f.zip deleted file mode 100644 index b46016bb..00000000 Binary files a/.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-0e0d8dfe2f.zip and /dev/null differ diff --git a/.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-b99843718a.zip b/.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-b99843718a.zip deleted file mode 100644 index 5d1f6681..00000000 Binary files a/.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-b99843718a.zip and /dev/null differ diff --git a/.yarn/cache/@jest-create-cache-key-function-npm-29.7.0-786396764f-061ef63b13.zip b/.yarn/cache/@jest-create-cache-key-function-npm-29.7.0-786396764f-061ef63b13.zip deleted file mode 100644 index c36e21dc..00000000 Binary files a/.yarn/cache/@jest-create-cache-key-function-npm-29.7.0-786396764f-061ef63b13.zip and /dev/null differ diff --git a/.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-761fb74442.zip b/.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-761fb74442.zip deleted file mode 100644 index 2c54a75f..00000000 Binary files a/.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-761fb74442.zip and /dev/null differ diff --git a/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-90b5844a9a.zip b/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-90b5844a9a.zip deleted file mode 100644 index 3a3ee9e8..00000000 Binary files a/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-90b5844a9a.zip and /dev/null differ diff --git a/.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-d2e8b5050d.zip b/.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-d2e8b5050d.zip deleted file mode 100644 index 834f30b1..00000000 Binary files a/.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-d2e8b5050d.zip and /dev/null differ diff --git a/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-9b394e04ff.zip b/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-9b394e04ff.zip deleted file mode 100644 index ceefdac6..00000000 Binary files a/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-9b394e04ff.zip and /dev/null differ diff --git a/.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-cfc410fa09.zip b/.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-cfc410fa09.zip deleted file mode 100644 index 7919c48f..00000000 Binary files a/.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-cfc410fa09.zip and /dev/null differ diff --git a/.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-123b09a8ac.zip b/.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-123b09a8ac.zip deleted file mode 100644 index 7e7d960f..00000000 Binary files a/.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-123b09a8ac.zip and /dev/null differ diff --git a/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip b/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip deleted file mode 100644 index ce56da45..00000000 Binary files a/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip and /dev/null differ diff --git a/.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-6efb095d0a.zip b/.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-6efb095d0a.zip deleted file mode 100644 index 2830265d..00000000 Binary files a/.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-6efb095d0a.zip and /dev/null differ diff --git a/.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-79a66e8cc4.zip b/.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-79a66e8cc4.zip deleted file mode 100644 index bb0426dd..00000000 Binary files a/.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-79a66e8cc4.zip and /dev/null differ diff --git a/.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-17d5ade54b.zip b/.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-17d5ade54b.zip deleted file mode 100644 index b975ce81..00000000 Binary files a/.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-17d5ade54b.zip and /dev/null differ diff --git a/.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-6dfdb2fa52.zip b/.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-6dfdb2fa52.zip deleted file mode 100644 index ebda864e..00000000 Binary files a/.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-6dfdb2fa52.zip and /dev/null differ diff --git a/.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-02d42749c8.zip b/.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-02d42749c8.zip deleted file mode 100644 index ce99d1ac..00000000 Binary files a/.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-02d42749c8.zip and /dev/null differ diff --git a/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-f74bf512fd.zip b/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-f74bf512fd.zip deleted file mode 100644 index 2ac5bed3..00000000 Binary files a/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-f74bf512fd.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip b/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip deleted file mode 100644 index 18c8d136..00000000 Binary files a/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip deleted file mode 100644 index 4b56ea4a..00000000 Binary files a/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip b/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip deleted file mode 100644 index 8a72fc72..00000000 Binary files a/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip b/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip deleted file mode 100644 index 7490e22f..00000000 Binary files a/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip b/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip deleted file mode 100644 index 2190c972..00000000 Binary files a/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip and /dev/null differ diff --git a/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip deleted file mode 100644 index 7e430802..00000000 Binary files a/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip and /dev/null differ diff --git a/.yarn/cache/@mdn-browser-compat-data-npm-2.0.7-2e97973c18-4135c3b44d.zip b/.yarn/cache/@mdn-browser-compat-data-npm-2.0.7-2e97973c18-4135c3b44d.zip deleted file mode 100644 index a36964d8..00000000 Binary files a/.yarn/cache/@mdn-browser-compat-data-npm-2.0.7-2e97973c18-4135c3b44d.zip and /dev/null differ diff --git a/.yarn/cache/@nicolo-ribaudo-chokidar-2-npm-2.1.8-no-fsevents-a21a333eb4-24f44374bf.zip b/.yarn/cache/@nicolo-ribaudo-chokidar-2-npm-2.1.8-no-fsevents-a21a333eb4-24f44374bf.zip deleted file mode 100644 index 79d18256..00000000 Binary files a/.yarn/cache/@nicolo-ribaudo-chokidar-2-npm-2.1.8-no-fsevents-a21a333eb4-24f44374bf.zip and /dev/null differ diff --git a/.yarn/cache/@nodelib-fs.scandir-npm-2.1.4-6f6ddb2372-0f4199e7b4.zip b/.yarn/cache/@nodelib-fs.scandir-npm-2.1.4-6f6ddb2372-0f4199e7b4.zip deleted file mode 100644 index d18149a1..00000000 Binary files a/.yarn/cache/@nodelib-fs.scandir-npm-2.1.4-6f6ddb2372-0f4199e7b4.zip and /dev/null differ diff --git a/.yarn/cache/@nodelib-fs.stat-npm-2.0.4-0b2acf9d70-a2864bf3f9.zip b/.yarn/cache/@nodelib-fs.stat-npm-2.0.4-0b2acf9d70-a2864bf3f9.zip deleted file mode 100644 index f356309a..00000000 Binary files a/.yarn/cache/@nodelib-fs.stat-npm-2.0.4-0b2acf9d70-a2864bf3f9.zip and /dev/null differ diff --git a/.yarn/cache/@nodelib-fs.walk-npm-1.2.6-b686194e9d-067d9344be.zip b/.yarn/cache/@nodelib-fs.walk-npm-1.2.6-b686194e9d-067d9344be.zip deleted file mode 100644 index cf40e989..00000000 Binary files a/.yarn/cache/@nodelib-fs.walk-npm-1.2.6-b686194e9d-067d9344be.zip and /dev/null differ diff --git a/.yarn/cache/@npmcli-move-file-npm-1.1.2-4f6c7b3354-c96381d4a3.zip b/.yarn/cache/@npmcli-move-file-npm-1.1.2-4f6c7b3354-c96381d4a3.zip deleted file mode 100644 index 279b2de4..00000000 Binary files a/.yarn/cache/@npmcli-move-file-npm-1.1.2-4f6c7b3354-c96381d4a3.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-f4e213b793.zip b/.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-f4e213b793.zip deleted file mode 100644 index aeccfa95..00000000 Binary files a/.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-f4e213b793.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-core-npm-3.4.0-0e242eba8e-dd428a383a.zip b/.yarn/cache/@octokit-core-npm-3.4.0-0e242eba8e-dd428a383a.zip deleted file mode 100644 index b0fdc3d3..00000000 Binary files a/.yarn/cache/@octokit-core-npm-3.4.0-0e242eba8e-dd428a383a.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-endpoint-npm-6.0.11-b00375a302-03b352ae8c.zip b/.yarn/cache/@octokit-endpoint-npm-6.0.11-b00375a302-03b352ae8c.zip deleted file mode 100644 index a6ce3e5d..00000000 Binary files a/.yarn/cache/@octokit-endpoint-npm-6.0.11-b00375a302-03b352ae8c.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-a9417a160e.zip b/.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-a9417a160e.zip deleted file mode 100644 index 426015e7..00000000 Binary files a/.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-a9417a160e.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-openapi-types-npm-7.0.0-13d5739029-715d414a2f.zip b/.yarn/cache/@octokit-openapi-types-npm-7.0.0-13d5739029-715d414a2f.zip deleted file mode 100644 index d5ca6e30..00000000 Binary files a/.yarn/cache/@octokit-openapi-types-npm-7.0.0-13d5739029-715d414a2f.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-bbfac86bd2.zip b/.yarn/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-bbfac86bd2.zip deleted file mode 100644 index ea907660..00000000 Binary files a/.yarn/cache/@octokit-plugin-paginate-rest-npm-2.13.3-1ccb944a93-bbfac86bd2.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-48ec556c17.zip b/.yarn/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-48ec556c17.zip deleted file mode 100644 index 5f28e6d8..00000000 Binary files a/.yarn/cache/@octokit-plugin-request-log-npm-1.0.3-f2ac3e7009-48ec556c17.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-a39e246eda.zip b/.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-a39e246eda.zip deleted file mode 100644 index 1dada24c..00000000 Binary files a/.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-a39e246eda.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-61aef8e3c4.zip b/.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-61aef8e3c4.zip deleted file mode 100644 index 5961ceb5..00000000 Binary files a/.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-61aef8e3c4.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-request-npm-5.4.15-2cd9523802-4db9eb7fba.zip b/.yarn/cache/@octokit-request-npm-5.4.15-2cd9523802-4db9eb7fba.zip deleted file mode 100644 index 2bc01c64..00000000 Binary files a/.yarn/cache/@octokit-request-npm-5.4.15-2cd9523802-4db9eb7fba.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-432c70a972.zip b/.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-432c70a972.zip deleted file mode 100644 index c6ff4c32..00000000 Binary files a/.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-432c70a972.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-defd1d55ec.zip b/.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-defd1d55ec.zip deleted file mode 100644 index 694d8100..00000000 Binary files a/.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-defd1d55ec.zip and /dev/null differ diff --git a/.yarn/cache/@octokit-types-npm-6.14.2-6c5118e7f4-df455a2d20.zip b/.yarn/cache/@octokit-types-npm-6.14.2-6c5118e7f4-df455a2d20.zip deleted file mode 100644 index f45ff485..00000000 Binary files a/.yarn/cache/@octokit-types-npm-6.14.2-6c5118e7f4-df455a2d20.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-assets-registry-npm-0.74.87-5dc5ec21ec-03bd730a82.zip b/.yarn/cache/@react-native-assets-registry-npm-0.74.87-5dc5ec21ec-03bd730a82.zip deleted file mode 100644 index cdad1c12..00000000 Binary files a/.yarn/cache/@react-native-assets-registry-npm-0.74.87-5dc5ec21ec-03bd730a82.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-babel-plugin-codegen-npm-0.74.87-31567c2937-c418a7e3d4.zip b/.yarn/cache/@react-native-babel-plugin-codegen-npm-0.74.87-31567c2937-c418a7e3d4.zip deleted file mode 100644 index d5e76704..00000000 Binary files a/.yarn/cache/@react-native-babel-plugin-codegen-npm-0.74.87-31567c2937-c418a7e3d4.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-f71e57ad9c.zip b/.yarn/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-f71e57ad9c.zip deleted file mode 100644 index 3424f3ae..00000000 Binary files a/.yarn/cache/@react-native-babel-preset-npm-0.74.87-7ca2c65087-f71e57ad9c.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-codegen-npm-0.74.87-f772b0a115-4f962484bb.zip b/.yarn/cache/@react-native-codegen-npm-0.74.87-f772b0a115-4f962484bb.zip deleted file mode 100644 index 3d4961ea..00000000 Binary files a/.yarn/cache/@react-native-codegen-npm-0.74.87-f772b0a115-4f962484bb.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-bob-npm-0.17.1-78519ee361-42f35472aa.zip b/.yarn/cache/@react-native-community-bob-npm-0.17.1-78519ee361-42f35472aa.zip deleted file mode 100644 index f2eae382..00000000 Binary files a/.yarn/cache/@react-native-community-bob-npm-0.17.1-78519ee361-42f35472aa.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-clean-npm-13.6.9-7835f41fe8-586cdaff2a.zip b/.yarn/cache/@react-native-community-cli-clean-npm-13.6.9-7835f41fe8-586cdaff2a.zip deleted file mode 100644 index bc331bc4..00000000 Binary files a/.yarn/cache/@react-native-community-cli-clean-npm-13.6.9-7835f41fe8-586cdaff2a.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-config-npm-13.6.9-8947727d1d-fa47a4c4f2.zip b/.yarn/cache/@react-native-community-cli-config-npm-13.6.9-8947727d1d-fa47a4c4f2.zip deleted file mode 100644 index 5906f305..00000000 Binary files a/.yarn/cache/@react-native-community-cli-config-npm-13.6.9-8947727d1d-fa47a4c4f2.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-debugger-ui-npm-13.6.9-9cb700fd85-ef0acf98c8.zip b/.yarn/cache/@react-native-community-cli-debugger-ui-npm-13.6.9-9cb700fd85-ef0acf98c8.zip deleted file mode 100644 index b87ed254..00000000 Binary files a/.yarn/cache/@react-native-community-cli-debugger-ui-npm-13.6.9-9cb700fd85-ef0acf98c8.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-doctor-npm-13.6.9-00f9937336-01f5ca98e0.zip b/.yarn/cache/@react-native-community-cli-doctor-npm-13.6.9-00f9937336-01f5ca98e0.zip deleted file mode 100644 index 6d4b6aaf..00000000 Binary files a/.yarn/cache/@react-native-community-cli-doctor-npm-13.6.9-00f9937336-01f5ca98e0.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-hermes-npm-13.6.9-2d171ae59c-4b68fe4ab4.zip b/.yarn/cache/@react-native-community-cli-hermes-npm-13.6.9-2d171ae59c-4b68fe4ab4.zip deleted file mode 100644 index 614f6786..00000000 Binary files a/.yarn/cache/@react-native-community-cli-hermes-npm-13.6.9-2d171ae59c-4b68fe4ab4.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-npm-13.6.9-73861e70f2-5cdf84a45c.zip b/.yarn/cache/@react-native-community-cli-npm-13.6.9-73861e70f2-5cdf84a45c.zip deleted file mode 100644 index 888faccb..00000000 Binary files a/.yarn/cache/@react-native-community-cli-npm-13.6.9-73861e70f2-5cdf84a45c.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-platform-android-npm-13.6.9-d3dc697aee-6fb98bfd8c.zip b/.yarn/cache/@react-native-community-cli-platform-android-npm-13.6.9-d3dc697aee-6fb98bfd8c.zip deleted file mode 100644 index 5327a78f..00000000 Binary files a/.yarn/cache/@react-native-community-cli-platform-android-npm-13.6.9-d3dc697aee-6fb98bfd8c.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-platform-apple-npm-13.6.9-af92330889-63c991edaf.zip b/.yarn/cache/@react-native-community-cli-platform-apple-npm-13.6.9-af92330889-63c991edaf.zip deleted file mode 100644 index 17132630..00000000 Binary files a/.yarn/cache/@react-native-community-cli-platform-apple-npm-13.6.9-af92330889-63c991edaf.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-platform-ios-npm-13.6.9-aa1c8682ea-80182ae7cb.zip b/.yarn/cache/@react-native-community-cli-platform-ios-npm-13.6.9-aa1c8682ea-80182ae7cb.zip deleted file mode 100644 index 151861df..00000000 Binary files a/.yarn/cache/@react-native-community-cli-platform-ios-npm-13.6.9-aa1c8682ea-80182ae7cb.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-plugin-npm-0.74.87-bf141e2536-ac3d9621d5.zip b/.yarn/cache/@react-native-community-cli-plugin-npm-0.74.87-bf141e2536-ac3d9621d5.zip deleted file mode 100644 index 112d714d..00000000 Binary files a/.yarn/cache/@react-native-community-cli-plugin-npm-0.74.87-bf141e2536-ac3d9621d5.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-server-api-npm-13.6.9-9b87028c1a-21bb11184f.zip b/.yarn/cache/@react-native-community-cli-server-api-npm-13.6.9-9b87028c1a-21bb11184f.zip deleted file mode 100644 index f8a47940..00000000 Binary files a/.yarn/cache/@react-native-community-cli-server-api-npm-13.6.9-9b87028c1a-21bb11184f.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-tools-npm-13.6.9-4fc9353fbf-1bbb2a3836.zip b/.yarn/cache/@react-native-community-cli-tools-npm-13.6.9-4fc9353fbf-1bbb2a3836.zip deleted file mode 100644 index 2da5b84e..00000000 Binary files a/.yarn/cache/@react-native-community-cli-tools-npm-13.6.9-4fc9353fbf-1bbb2a3836.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-cli-types-npm-13.6.9-f2336259cc-224c60447f.zip b/.yarn/cache/@react-native-community-cli-types-npm-13.6.9-f2336259cc-224c60447f.zip deleted file mode 100644 index 4ad66cc6..00000000 Binary files a/.yarn/cache/@react-native-community-cli-types-npm-13.6.9-f2336259cc-224c60447f.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-e15e5b0535.zip b/.yarn/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-e15e5b0535.zip deleted file mode 100644 index 5c183af8..00000000 Binary files a/.yarn/cache/@react-native-community-eslint-config-npm-2.0.0-06eae4574c-e15e5b0535.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-community-eslint-plugin-npm-1.1.0-86bd3dfadc-6d04d8086f.zip b/.yarn/cache/@react-native-community-eslint-plugin-npm-1.1.0-86bd3dfadc-6d04d8086f.zip deleted file mode 100644 index a60b0086..00000000 Binary files a/.yarn/cache/@react-native-community-eslint-plugin-npm-1.1.0-86bd3dfadc-6d04d8086f.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-debugger-frontend-npm-0.74.87-7ec98a0c0a-6d9c20be19.zip b/.yarn/cache/@react-native-debugger-frontend-npm-0.74.87-7ec98a0c0a-6d9c20be19.zip deleted file mode 100644 index ff856d41..00000000 Binary files a/.yarn/cache/@react-native-debugger-frontend-npm-0.74.87-7ec98a0c0a-6d9c20be19.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-dev-middleware-npm-0.74.87-3e56b6bd6a-9fcaaa3b37.zip b/.yarn/cache/@react-native-dev-middleware-npm-0.74.87-3e56b6bd6a-9fcaaa3b37.zip deleted file mode 100644 index b1557a8d..00000000 Binary files a/.yarn/cache/@react-native-dev-middleware-npm-0.74.87-3e56b6bd6a-9fcaaa3b37.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-gradle-plugin-npm-0.74.87-2ad4f2fa47-6a72fd36be.zip b/.yarn/cache/@react-native-gradle-plugin-npm-0.74.87-2ad4f2fa47-6a72fd36be.zip deleted file mode 100644 index 6098306c..00000000 Binary files a/.yarn/cache/@react-native-gradle-plugin-npm-0.74.87-2ad4f2fa47-6a72fd36be.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-js-polyfills-npm-0.74.87-83ddfb5d3d-aa552c0e3c.zip b/.yarn/cache/@react-native-js-polyfills-npm-0.74.87-83ddfb5d3d-aa552c0e3c.zip deleted file mode 100644 index ccd85d19..00000000 Binary files a/.yarn/cache/@react-native-js-polyfills-npm-0.74.87-83ddfb5d3d-aa552c0e3c.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-02654f4544.zip b/.yarn/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-02654f4544.zip deleted file mode 100644 index e91c68c2..00000000 Binary files a/.yarn/cache/@react-native-metro-babel-transformer-npm-0.74.87-b8e9596c13-02654f4544.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-normalize-colors-npm-0.74.87-5596454407-f24ba360e5.zip b/.yarn/cache/@react-native-normalize-colors-npm-0.74.87-5596454407-f24ba360e5.zip deleted file mode 100644 index dfca4cca..00000000 Binary files a/.yarn/cache/@react-native-normalize-colors-npm-0.74.87-5596454407-f24ba360e5.zip and /dev/null differ diff --git a/.yarn/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-eac3fd11d7.zip b/.yarn/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-eac3fd11d7.zip deleted file mode 100644 index 78b2c5bd..00000000 Binary files a/.yarn/cache/@react-native-virtualized-lists-npm-0.74.87-8959c5fcf1-eac3fd11d7.zip and /dev/null differ diff --git a/.yarn/cache/@release-it-conventional-changelog-npm-2.0.0-deca0960e1-c368c08c00.zip b/.yarn/cache/@release-it-conventional-changelog-npm-2.0.0-deca0960e1-c368c08c00.zip deleted file mode 100644 index 2c31af52..00000000 Binary files a/.yarn/cache/@release-it-conventional-changelog-npm-2.0.0-deca0960e1-c368c08c00.zip and /dev/null differ diff --git a/.yarn/cache/@release-it-conventional-changelog-patch-a575480bef-771356a002.zip b/.yarn/cache/@release-it-conventional-changelog-patch-a575480bef-771356a002.zip deleted file mode 100644 index 1a1e28cd..00000000 Binary files a/.yarn/cache/@release-it-conventional-changelog-patch-a575480bef-771356a002.zip and /dev/null differ diff --git a/.yarn/cache/@rnx-kit-chromium-edge-launcher-npm-1.0.0-5272508d46-b4f3775da4.zip b/.yarn/cache/@rnx-kit-chromium-edge-launcher-npm-1.0.0-5272508d46-b4f3775da4.zip deleted file mode 100644 index 85281c59..00000000 Binary files a/.yarn/cache/@rnx-kit-chromium-edge-launcher-npm-1.0.0-5272508d46-b4f3775da4.zip and /dev/null differ diff --git a/.yarn/cache/@sideway-address-npm-4.1.5-a3852745c8-c4c73ac033.zip b/.yarn/cache/@sideway-address-npm-4.1.5-a3852745c8-c4c73ac033.zip deleted file mode 100644 index 93cdef06..00000000 Binary files a/.yarn/cache/@sideway-address-npm-4.1.5-a3852745c8-c4c73ac033.zip and /dev/null differ diff --git a/.yarn/cache/@sideway-formula-npm-3.0.1-ee371b2ddf-8d3ee7f80d.zip b/.yarn/cache/@sideway-formula-npm-3.0.1-ee371b2ddf-8d3ee7f80d.zip deleted file mode 100644 index e13e1df0..00000000 Binary files a/.yarn/cache/@sideway-formula-npm-3.0.1-ee371b2ddf-8d3ee7f80d.zip and /dev/null differ diff --git a/.yarn/cache/@sideway-pinpoint-npm-2.0.0-66d94e687e-1ed2180012.zip b/.yarn/cache/@sideway-pinpoint-npm-2.0.0-66d94e687e-1ed2180012.zip deleted file mode 100644 index 0cb0f910..00000000 Binary files a/.yarn/cache/@sideway-pinpoint-npm-2.0.0-66d94e687e-1ed2180012.zip and /dev/null differ diff --git a/.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-297f95ff77.zip b/.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-297f95ff77.zip deleted file mode 100644 index 471c008b..00000000 Binary files a/.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-297f95ff77.zip and /dev/null differ diff --git a/.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-789cd128f0.zip b/.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-789cd128f0.zip deleted file mode 100644 index d0b61b90..00000000 Binary files a/.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-789cd128f0.zip and /dev/null differ diff --git a/.yarn/cache/@sindresorhus-is-npm-3.1.2-bcdc8ac1e4-33780588da.zip b/.yarn/cache/@sindresorhus-is-npm-3.1.2-bcdc8ac1e4-33780588da.zip deleted file mode 100644 index 8188769b..00000000 Binary files a/.yarn/cache/@sindresorhus-is-npm-3.1.2-bcdc8ac1e4-33780588da.zip and /dev/null differ diff --git a/.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-910720ef0a.zip b/.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-910720ef0a.zip deleted file mode 100644 index 5c78c603..00000000 Binary files a/.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-910720ef0a.zip and /dev/null differ diff --git a/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a0af217ba7.zip b/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a0af217ba7.zip deleted file mode 100644 index 0a32ef3e..00000000 Binary files a/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a0af217ba7.zip and /dev/null differ diff --git a/.yarn/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-78155c7bd8.zip b/.yarn/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-78155c7bd8.zip deleted file mode 100644 index e5a44c77..00000000 Binary files a/.yarn/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-78155c7bd8.zip and /dev/null differ diff --git a/.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-c7ee19f62b.zip b/.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-c7ee19f62b.zip deleted file mode 100644 index 2016f479..00000000 Binary files a/.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-c7ee19f62b.zip and /dev/null differ diff --git a/.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-9b63853bd5.zip b/.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-9b63853bd5.zip deleted file mode 100644 index fafb3fe3..00000000 Binary files a/.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-9b63853bd5.zip and /dev/null differ diff --git a/.yarn/cache/@szmarczak-http-timer-npm-4.0.5-03463d10ab-27b713859b.zip b/.yarn/cache/@szmarczak-http-timer-npm-4.0.5-03463d10ab-27b713859b.zip deleted file mode 100644 index f914fcd8..00000000 Binary files a/.yarn/cache/@szmarczak-http-timer-npm-4.0.5-03463d10ab-27b713859b.zip and /dev/null differ diff --git a/.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-e1fb1bbbc1.zip b/.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-e1fb1bbbc1.zip deleted file mode 100644 index 05ad66ab..00000000 Binary files a/.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-e1fb1bbbc1.zip and /dev/null differ diff --git a/.yarn/cache/@tsconfig-react-native-npm-1.0.3-b2fdaa0bef-abc74329cc.zip b/.yarn/cache/@tsconfig-react-native-npm-1.0.3-b2fdaa0bef-abc74329cc.zip deleted file mode 100644 index c6c4fd6e..00000000 Binary files a/.yarn/cache/@tsconfig-react-native-npm-1.0.3-b2fdaa0bef-abc74329cc.zip and /dev/null differ diff --git a/.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-56ce28ec0d.zip b/.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-56ce28ec0d.zip deleted file mode 100644 index dee2a293..00000000 Binary files a/.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-56ce28ec0d.zip and /dev/null differ diff --git a/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-e1e1dac9c6.zip b/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-e1e1dac9c6.zip deleted file mode 100644 index f82142a8..00000000 Binary files a/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-e1e1dac9c6.zip and /dev/null differ diff --git a/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip b/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip deleted file mode 100644 index 039d077a..00000000 Binary files a/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip and /dev/null differ diff --git a/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-8df08f5ed9.zip b/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-8df08f5ed9.zip deleted file mode 100644 index 5af878f2..00000000 Binary files a/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-8df08f5ed9.zip and /dev/null differ diff --git a/.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-b3c7d8bc3c.zip b/.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-b3c7d8bc3c.zip deleted file mode 100644 index 5f30b5e4..00000000 Binary files a/.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-b3c7d8bc3c.zip and /dev/null differ diff --git a/.yarn/cache/@types-eslint-visitor-keys-npm-1.0.0-a300061b93-90cd39c84d.zip b/.yarn/cache/@types-eslint-visitor-keys-npm-1.0.0-a300061b93-90cd39c84d.zip deleted file mode 100644 index d6be9f9d..00000000 Binary files a/.yarn/cache/@types-eslint-visitor-keys-npm-1.0.0-a300061b93-90cd39c84d.zip and /dev/null differ diff --git a/.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-d076bb61f4.zip b/.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-d076bb61f4.zip deleted file mode 100644 index 7e5f7a5f..00000000 Binary files a/.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-d076bb61f4.zip and /dev/null differ diff --git a/.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-31df6e12de.zip b/.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-31df6e12de.zip deleted file mode 100644 index d36eb11b..00000000 Binary files a/.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-31df6e12de.zip and /dev/null differ diff --git a/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip b/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip deleted file mode 100644 index fb8fe6af..00000000 Binary files a/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip and /dev/null differ diff --git a/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-f121dcac8a.zip b/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-f121dcac8a.zip deleted file mode 100644 index 7f0ebaf2..00000000 Binary files a/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-f121dcac8a.zip and /dev/null differ diff --git a/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip b/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip deleted file mode 100644 index 8f12c1a4..00000000 Binary files a/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip and /dev/null differ diff --git a/.yarn/cache/@types-jest-npm-26.0.23-f0d419e70e-75a49993cd.zip b/.yarn/cache/@types-jest-npm-26.0.23-f0d419e70e-75a49993cd.zip deleted file mode 100644 index 72b79f32..00000000 Binary files a/.yarn/cache/@types-jest-npm-26.0.23-f0d419e70e-75a49993cd.zip and /dev/null differ diff --git a/.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-ebd22d30ae.zip b/.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-ebd22d30ae.zip deleted file mode 100644 index ad0f3b5f..00000000 Binary files a/.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-ebd22d30ae.zip and /dev/null differ diff --git a/.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-ee0d098693.zip b/.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-ee0d098693.zip deleted file mode 100644 index cbab08f1..00000000 Binary files a/.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-ee0d098693.zip and /dev/null differ diff --git a/.yarn/cache/@types-minimist-npm-1.2.1-dc316d808d-02631cdd79.zip b/.yarn/cache/@types-minimist-npm-1.2.1-dc316d808d-02631cdd79.zip deleted file mode 100644 index 1e31726b..00000000 Binary files a/.yarn/cache/@types-minimist-npm-1.2.1-dc316d808d-02631cdd79.zip and /dev/null differ diff --git a/.yarn/cache/@types-node-forge-npm-1.3.11-132541fb70-670c9b377c.zip b/.yarn/cache/@types-node-forge-npm-1.3.11-132541fb70-670c9b377c.zip deleted file mode 100644 index cb71d7f1..00000000 Binary files a/.yarn/cache/@types-node-forge-npm-1.3.11-132541fb70-670c9b377c.zip and /dev/null differ diff --git a/.yarn/cache/@types-node-npm-15.3.0-7ebc66d6bc-af8e8e50cd.zip b/.yarn/cache/@types-node-npm-15.3.0-7ebc66d6bc-af8e8e50cd.zip deleted file mode 100644 index 7587ba74..00000000 Binary files a/.yarn/cache/@types-node-npm-15.3.0-7ebc66d6bc-af8e8e50cd.zip and /dev/null differ diff --git a/.yarn/cache/@types-node-npm-18.19.50-1d7a03097e-d238bb8779.zip b/.yarn/cache/@types-node-npm-18.19.50-1d7a03097e-d238bb8779.zip deleted file mode 100644 index 27413516..00000000 Binary files a/.yarn/cache/@types-node-npm-18.19.50-1d7a03097e-d238bb8779.zip and /dev/null differ diff --git a/.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-f98b30d59e.zip b/.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-f98b30d59e.zip deleted file mode 100644 index e93bf7b3..00000000 Binary files a/.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-f98b30d59e.zip and /dev/null differ diff --git a/.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4df9de9815.zip b/.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4df9de9815.zip deleted file mode 100644 index 66498d8d..00000000 Binary files a/.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4df9de9815.zip and /dev/null differ diff --git a/.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-a11650cc71.zip b/.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-a11650cc71.zip deleted file mode 100644 index ae920560..00000000 Binary files a/.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-a11650cc71.zip and /dev/null differ diff --git a/.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-9006410596.zip b/.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-9006410596.zip deleted file mode 100644 index 47c5ea67..00000000 Binary files a/.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-9006410596.zip and /dev/null differ diff --git a/.yarn/cache/@types-ramda-npm-0.27.44-12231e2490-66d45a4f8c.zip b/.yarn/cache/@types-ramda-npm-0.27.44-12231e2490-66d45a4f8c.zip deleted file mode 100644 index 804a2a19..00000000 Binary files a/.yarn/cache/@types-ramda-npm-0.27.44-12231e2490-66d45a4f8c.zip and /dev/null differ diff --git a/.yarn/cache/@types-react-native-npm-0.64.5-7da2731710-be2b11aed3.zip b/.yarn/cache/@types-react-native-npm-0.64.5-7da2731710-be2b11aed3.zip deleted file mode 100644 index aa329f8f..00000000 Binary files a/.yarn/cache/@types-react-native-npm-0.64.5-7da2731710-be2b11aed3.zip and /dev/null differ diff --git a/.yarn/cache/@types-react-npm-17.0.5-b0d58aba4c-cecac935bf.zip b/.yarn/cache/@types-react-npm-17.0.5-b0d58aba4c-cecac935bf.zip deleted file mode 100644 index 4bc30c35..00000000 Binary files a/.yarn/cache/@types-react-npm-17.0.5-b0d58aba4c-cecac935bf.zip and /dev/null differ diff --git a/.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e497238945.zip b/.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e497238945.zip deleted file mode 100644 index 26cd4029..00000000 Binary files a/.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e497238945.zip and /dev/null differ diff --git a/.yarn/cache/@types-scheduler-npm-0.16.1-9a58541608-709f02113c.zip b/.yarn/cache/@types-scheduler-npm-0.16.1-9a58541608-709f02113c.zip deleted file mode 100644 index 03a1b306..00000000 Binary files a/.yarn/cache/@types-scheduler-npm-0.16.1-9a58541608-709f02113c.zip and /dev/null differ diff --git a/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip b/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip deleted file mode 100644 index 7b51292f..00000000 Binary files a/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip and /dev/null differ diff --git a/.yarn/cache/@types-yargs-npm-15.0.13-d1172b1fcd-b07da55e9a.zip b/.yarn/cache/@types-yargs-npm-15.0.13-d1172b1fcd-b07da55e9a.zip deleted file mode 100644 index d81079c5..00000000 Binary files a/.yarn/cache/@types-yargs-npm-15.0.13-d1172b1fcd-b07da55e9a.zip and /dev/null differ diff --git a/.yarn/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-16f6681bf4.zip b/.yarn/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-16f6681bf4.zip deleted file mode 100644 index 0f3f20a3..00000000 Binary files a/.yarn/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-16f6681bf4.zip and /dev/null differ diff --git a/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-7351eecdee.zip b/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-7351eecdee.zip deleted file mode 100644 index 8c966bdb..00000000 Binary files a/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-7351eecdee.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-5f4e48c6f3.zip b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-5f4e48c6f3.zip deleted file mode 100644 index e47cd418..00000000 Binary files a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-3.10.1-8c1dbd0dcd-5f4e48c6f3.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-2900a668c0.zip b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-2900a668c0.zip deleted file mode 100644 index ef305b38..00000000 Binary files a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.23.0-e1ddbc4f7c-2900a668c0.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-3055eb8588.zip b/.yarn/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-3055eb8588.zip deleted file mode 100644 index a127a451..00000000 Binary files a/.yarn/cache/@typescript-eslint-experimental-utils-npm-3.10.1-607d3ffe42-3055eb8588.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-239aad771d.zip b/.yarn/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-239aad771d.zip deleted file mode 100644 index db8ed34a..00000000 Binary files a/.yarn/cache/@typescript-eslint-experimental-utils-npm-4.23.0-621f4a5b30-239aad771d.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-3488d0a7c0.zip b/.yarn/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-3488d0a7c0.zip deleted file mode 100644 index 2bc183fa..00000000 Binary files a/.yarn/cache/@typescript-eslint-parser-npm-3.10.1-8d6732da0b-3488d0a7c0.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-e4c133f2f2.zip b/.yarn/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-e4c133f2f2.zip deleted file mode 100644 index ae56b388..00000000 Binary files a/.yarn/cache/@typescript-eslint-parser-npm-4.23.0-2ffc0d4a7f-e4c133f2f2.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-scope-manager-npm-4.23.0-678850fab8-4c7b60cf94.zip b/.yarn/cache/@typescript-eslint-scope-manager-npm-4.23.0-678850fab8-4c7b60cf94.zip deleted file mode 100644 index 5c1b750e..00000000 Binary files a/.yarn/cache/@typescript-eslint-scope-manager-npm-4.23.0-678850fab8-4c7b60cf94.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-types-npm-3.10.1-faddecc057-c5c696a0c3.zip b/.yarn/cache/@typescript-eslint-types-npm-3.10.1-faddecc057-c5c696a0c3.zip deleted file mode 100644 index 5f272a96..00000000 Binary files a/.yarn/cache/@typescript-eslint-types-npm-3.10.1-faddecc057-c5c696a0c3.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-types-npm-4.23.0-9da8b5e2f2-b8882b1ce8.zip b/.yarn/cache/@typescript-eslint-types-npm-4.23.0-9da8b5e2f2-b8882b1ce8.zip deleted file mode 100644 index 4ee67696..00000000 Binary files a/.yarn/cache/@typescript-eslint-types-npm-4.23.0-9da8b5e2f2-b8882b1ce8.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-ed4eedd04d.zip b/.yarn/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-ed4eedd04d.zip deleted file mode 100644 index 3065928c..00000000 Binary files a/.yarn/cache/@typescript-eslint-typescript-estree-npm-3.10.1-327d1c22a9-ed4eedd04d.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip b/.yarn/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip deleted file mode 100644 index e1ac5916..00000000 Binary files a/.yarn/cache/@typescript-eslint-typescript-estree-npm-4.23.0-a5997f9e79-f9add2c077.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-visitor-keys-npm-3.10.1-6a80d0d416-13e8059db3.zip b/.yarn/cache/@typescript-eslint-visitor-keys-npm-3.10.1-6a80d0d416-13e8059db3.zip deleted file mode 100644 index 00c27d57..00000000 Binary files a/.yarn/cache/@typescript-eslint-visitor-keys-npm-3.10.1-6a80d0d416-13e8059db3.zip and /dev/null differ diff --git a/.yarn/cache/@typescript-eslint-visitor-keys-npm-4.23.0-52443e952e-caac87703d.zip b/.yarn/cache/@typescript-eslint-visitor-keys-npm-4.23.0-52443e952e-caac87703d.zip deleted file mode 100644 index bac77a0a..00000000 Binary files a/.yarn/cache/@typescript-eslint-visitor-keys-npm-4.23.0-52443e952e-caac87703d.zip and /dev/null differ diff --git a/.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e30daf7b9b.zip b/.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e30daf7b9b.zip deleted file mode 100644 index 3bbf7f42..00000000 Binary files a/.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e30daf7b9b.zip and /dev/null differ diff --git a/.yarn/cache/abab-npm-2.0.5-ae8d5b629e-92deff85d5.zip b/.yarn/cache/abab-npm-2.0.5-ae8d5b629e-92deff85d5.zip deleted file mode 100644 index 89e203e2..00000000 Binary files a/.yarn/cache/abab-npm-2.0.5-ae8d5b629e-92deff85d5.zip and /dev/null differ diff --git a/.yarn/cache/abbrev-npm-1.1.1-3659247eab-2d88294118.zip b/.yarn/cache/abbrev-npm-1.1.1-3659247eab-2d88294118.zip deleted file mode 100644 index fa330889..00000000 Binary files a/.yarn/cache/abbrev-npm-1.1.1-3659247eab-2d88294118.zip and /dev/null differ diff --git a/.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-ed84af329f.zip b/.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-ed84af329f.zip deleted file mode 100644 index 096310b2..00000000 Binary files a/.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-ed84af329f.zip and /dev/null differ diff --git a/.yarn/cache/accepts-npm-1.3.8-9a812371c9-67eaaa90e2.zip b/.yarn/cache/accepts-npm-1.3.8-9a812371c9-67eaaa90e2.zip deleted file mode 100644 index e501a1bd..00000000 Binary files a/.yarn/cache/accepts-npm-1.3.8-9a812371c9-67eaaa90e2.zip and /dev/null differ diff --git a/.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-72d95e5b5e.zip b/.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-72d95e5b5e.zip deleted file mode 100644 index 9a302bb3..00000000 Binary files a/.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-72d95e5b5e.zip and /dev/null differ diff --git a/.yarn/cache/acorn-jsx-npm-5.3.1-6ba8185d02-fea205d89a.zip b/.yarn/cache/acorn-jsx-npm-5.3.1-6ba8185d02-fea205d89a.zip deleted file mode 100644 index c83750fc..00000000 Binary files a/.yarn/cache/acorn-jsx-npm-5.3.1-6ba8185d02-fea205d89a.zip and /dev/null differ diff --git a/.yarn/cache/acorn-npm-7.4.1-f450b4646c-8be2a40714.zip b/.yarn/cache/acorn-npm-7.4.1-f450b4646c-8be2a40714.zip deleted file mode 100644 index cbc9cd34..00000000 Binary files a/.yarn/cache/acorn-npm-7.4.1-f450b4646c-8be2a40714.zip and /dev/null differ diff --git a/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip b/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip deleted file mode 100644 index 2dddbcfd..00000000 Binary files a/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip and /dev/null differ diff --git a/.yarn/cache/acorn-npm-8.2.4-4dfdb01127-05959efd24.zip b/.yarn/cache/acorn-npm-8.2.4-4dfdb01127-05959efd24.zip deleted file mode 100644 index 5cf74394..00000000 Binary files a/.yarn/cache/acorn-npm-8.2.4-4dfdb01127-05959efd24.zip and /dev/null differ diff --git a/.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-4d3e186f72.zip b/.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-4d3e186f72.zip deleted file mode 100644 index e076483a..00000000 Binary files a/.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-4d3e186f72.zip and /dev/null differ diff --git a/.yarn/cache/add-stream-npm-1.0.0-a5a0c0498c-3e9e8b0b8f.zip b/.yarn/cache/add-stream-npm-1.0.0-a5a0c0498c-3e9e8b0b8f.zip deleted file mode 100644 index a013e55d..00000000 Binary files a/.yarn/cache/add-stream-npm-1.0.0-a5a0c0498c-3e9e8b0b8f.zip and /dev/null differ diff --git a/.yarn/cache/agent-base-npm-6.0.2-428f325a93-21fb903e09.zip b/.yarn/cache/agent-base-npm-6.0.2-428f325a93-21fb903e09.zip deleted file mode 100644 index 50f2a18f..00000000 Binary files a/.yarn/cache/agent-base-npm-6.0.2-428f325a93-21fb903e09.zip and /dev/null differ diff --git a/.yarn/cache/agentkeepalive-npm-4.1.4-4d5b41b4c1-848634c4e1.zip b/.yarn/cache/agentkeepalive-npm-4.1.4-4d5b41b4c1-848634c4e1.zip deleted file mode 100644 index 31edb377..00000000 Binary files a/.yarn/cache/agentkeepalive-npm-4.1.4-4d5b41b4c1-848634c4e1.zip and /dev/null differ diff --git a/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip b/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip deleted file mode 100644 index 7db0127b..00000000 Binary files a/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip and /dev/null differ diff --git a/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-48d6ad2113.zip b/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-48d6ad2113.zip deleted file mode 100644 index 6ba42aa4..00000000 Binary files a/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-48d6ad2113.zip and /dev/null differ diff --git a/.yarn/cache/ajv-npm-8.4.0-1d671a4d5f-b32bd20cfe.zip b/.yarn/cache/ajv-npm-8.4.0-1d671a4d5f-b32bd20cfe.zip deleted file mode 100644 index 93e0a603..00000000 Binary files a/.yarn/cache/ajv-npm-8.4.0-1d671a4d5f-b32bd20cfe.zip and /dev/null differ diff --git a/.yarn/cache/anser-npm-1.4.10-3fa41e8526-a5a6658ccb.zip b/.yarn/cache/anser-npm-1.4.10-3fa41e8526-a5a6658ccb.zip deleted file mode 100644 index 692e8d76..00000000 Binary files a/.yarn/cache/anser-npm-1.4.10-3fa41e8526-a5a6658ccb.zip and /dev/null differ diff --git a/.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-22cebe8d9b.zip b/.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-22cebe8d9b.zip deleted file mode 100644 index 5a7df68d..00000000 Binary files a/.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-22cebe8d9b.zip and /dev/null differ diff --git a/.yarn/cache/ansi-colors-npm-4.1.1-97ad42f223-e862fddd0a.zip b/.yarn/cache/ansi-colors-npm-4.1.1-97ad42f223-e862fddd0a.zip deleted file mode 100644 index f5fd8c0b..00000000 Binary files a/.yarn/cache/ansi-colors-npm-4.1.1-97ad42f223-e862fddd0a.zip and /dev/null differ diff --git a/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-8661034456.zip b/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-8661034456.zip deleted file mode 100644 index 85478963..00000000 Binary files a/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-8661034456.zip and /dev/null differ diff --git a/.yarn/cache/ansi-fragments-npm-0.2.1-7617f2a498-2380829941.zip b/.yarn/cache/ansi-fragments-npm-0.2.1-7617f2a498-2380829941.zip deleted file mode 100644 index b2c9e931..00000000 Binary files a/.yarn/cache/ansi-fragments-npm-0.2.1-7617f2a498-2380829941.zip and /dev/null differ diff --git a/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip b/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip deleted file mode 100644 index 39b46403..00000000 Binary files a/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip and /dev/null differ diff --git a/.yarn/cache/ansi-regex-npm-3.0.0-be0b845911-2ad11c416f.zip b/.yarn/cache/ansi-regex-npm-3.0.0-be0b845911-2ad11c416f.zip deleted file mode 100644 index d0c29028..00000000 Binary files a/.yarn/cache/ansi-regex-npm-3.0.0-be0b845911-2ad11c416f.zip and /dev/null differ diff --git a/.yarn/cache/ansi-regex-npm-4.1.0-4a7d8413fe-97aa465953.zip b/.yarn/cache/ansi-regex-npm-4.1.0-4a7d8413fe-97aa465953.zip deleted file mode 100644 index 7ff4a921..00000000 Binary files a/.yarn/cache/ansi-regex-npm-4.1.0-4a7d8413fe-97aa465953.zip and /dev/null differ diff --git a/.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-b1bb4e992a.zip b/.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-b1bb4e992a.zip deleted file mode 100644 index cac3592a..00000000 Binary files a/.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-b1bb4e992a.zip and /dev/null differ diff --git a/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip b/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip deleted file mode 100644 index fffc17ac..00000000 Binary files a/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip and /dev/null differ diff --git a/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip b/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip deleted file mode 100644 index 4ffdcc49..00000000 Binary files a/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip and /dev/null differ diff --git a/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-b4494dfbfc.zip b/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-b4494dfbfc.zip deleted file mode 100644 index d4e3ad5b..00000000 Binary files a/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-b4494dfbfc.zip and /dev/null differ diff --git a/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip b/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip deleted file mode 100644 index 62c09039..00000000 Binary files a/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip and /dev/null differ diff --git a/.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-f7bb192984.zip b/.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-f7bb192984.zip deleted file mode 100644 index af67ea02..00000000 Binary files a/.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-f7bb192984.zip and /dev/null differ diff --git a/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip b/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip deleted file mode 100644 index b71280dc..00000000 Binary files a/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip and /dev/null differ diff --git a/.yarn/cache/appdirsjs-npm-1.2.7-fcd05e6058-8f6cb9cc18.zip b/.yarn/cache/appdirsjs-npm-1.2.7-fcd05e6058-8f6cb9cc18.zip deleted file mode 100644 index 21eacd2e..00000000 Binary files a/.yarn/cache/appdirsjs-npm-1.2.7-fcd05e6058-8f6cb9cc18.zip and /dev/null differ diff --git a/.yarn/cache/aproba-npm-1.2.0-34129f0778-48def77733.zip b/.yarn/cache/aproba-npm-1.2.0-34129f0778-48def77733.zip deleted file mode 100644 index 4caf0cc9..00000000 Binary files a/.yarn/cache/aproba-npm-1.2.0-34129f0778-48def77733.zip and /dev/null differ diff --git a/.yarn/cache/are-we-there-yet-npm-1.1.5-b8418908b0-d7c3608add.zip b/.yarn/cache/are-we-there-yet-npm-1.1.5-b8418908b0-d7c3608add.zip deleted file mode 100644 index b70dcbe4..00000000 Binary files a/.yarn/cache/are-we-there-yet-npm-1.1.5-b8418908b0-d7c3608add.zip and /dev/null differ diff --git a/.yarn/cache/argparse-npm-1.0.10-528934e59d-c6a621343a.zip b/.yarn/cache/argparse-npm-1.0.10-528934e59d-c6a621343a.zip deleted file mode 100644 index 652d621c..00000000 Binary files a/.yarn/cache/argparse-npm-1.0.10-528934e59d-c6a621343a.zip and /dev/null differ diff --git a/.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-ea7c883484.zip b/.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-ea7c883484.zip deleted file mode 100644 index 91a9eb8c..00000000 Binary files a/.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-ea7c883484.zip and /dev/null differ diff --git a/.yarn/cache/arr-flatten-npm-1.1.0-0c12b693e4-963fe12564.zip b/.yarn/cache/arr-flatten-npm-1.1.0-0c12b693e4-963fe12564.zip deleted file mode 100644 index 1476f64f..00000000 Binary files a/.yarn/cache/arr-flatten-npm-1.1.0-0c12b693e4-963fe12564.zip and /dev/null differ diff --git a/.yarn/cache/arr-union-npm-3.1.0-853ada9729-b5b0408c6e.zip b/.yarn/cache/arr-union-npm-3.1.0-853ada9729-b5b0408c6e.zip deleted file mode 100644 index 00538419..00000000 Binary files a/.yarn/cache/arr-union-npm-3.1.0-853ada9729-b5b0408c6e.zip and /dev/null differ diff --git a/.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-aac128bf36.zip b/.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-aac128bf36.zip deleted file mode 100644 index b7fd136e..00000000 Binary files a/.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-aac128bf36.zip and /dev/null differ diff --git a/.yarn/cache/array-ify-npm-1.0.0-e09a371977-c0502015b3.zip b/.yarn/cache/array-ify-npm-1.0.0-e09a371977-c0502015b3.zip deleted file mode 100644 index 7b98d69a..00000000 Binary files a/.yarn/cache/array-ify-npm-1.0.0-e09a371977-c0502015b3.zip and /dev/null differ diff --git a/.yarn/cache/array-includes-npm-3.1.3-5f58cf4c82-e7ccea0a79.zip b/.yarn/cache/array-includes-npm-3.1.3-5f58cf4c82-e7ccea0a79.zip deleted file mode 100644 index d4a8ead7..00000000 Binary files a/.yarn/cache/array-includes-npm-3.1.3-5f58cf4c82-e7ccea0a79.zip and /dev/null differ diff --git a/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip b/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip deleted file mode 100644 index b51da2ed..00000000 Binary files a/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip and /dev/null differ diff --git a/.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-da344b89cf.zip b/.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-da344b89cf.zip deleted file mode 100644 index 83f853bd..00000000 Binary files a/.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-da344b89cf.zip and /dev/null differ diff --git a/.yarn/cache/array.prototype.flatmap-npm-1.2.4-77697fdbe6-192cc09409.zip b/.yarn/cache/array.prototype.flatmap-npm-1.2.4-77697fdbe6-192cc09409.zip deleted file mode 100644 index a15a48d5..00000000 Binary files a/.yarn/cache/array.prototype.flatmap-npm-1.2.4-77697fdbe6-192cc09409.zip and /dev/null differ diff --git a/.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip b/.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip deleted file mode 100644 index a8cbb301..00000000 Binary files a/.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip and /dev/null differ diff --git a/.yarn/cache/asap-npm-2.0.6-36714d439d-b244c0458c.zip b/.yarn/cache/asap-npm-2.0.6-36714d439d-b244c0458c.zip deleted file mode 100644 index 097eb060..00000000 Binary files a/.yarn/cache/asap-npm-2.0.6-36714d439d-b244c0458c.zip and /dev/null differ diff --git a/.yarn/cache/asn1-npm-0.2.4-219dd49411-7e9ba05c58.zip b/.yarn/cache/asn1-npm-0.2.4-219dd49411-7e9ba05c58.zip deleted file mode 100644 index 1e8e0238..00000000 Binary files a/.yarn/cache/asn1-npm-0.2.4-219dd49411-7e9ba05c58.zip and /dev/null differ diff --git a/.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-f4f991ae2d.zip b/.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-f4f991ae2d.zip deleted file mode 100644 index 080260df..00000000 Binary files a/.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-f4f991ae2d.zip and /dev/null differ diff --git a/.yarn/cache/assign-symbols-npm-1.0.0-fd803ccdf1-c0eb895911.zip b/.yarn/cache/assign-symbols-npm-1.0.0-fd803ccdf1-c0eb895911.zip deleted file mode 100644 index 6e72b815..00000000 Binary files a/.yarn/cache/assign-symbols-npm-1.0.0-fd803ccdf1-c0eb895911.zip and /dev/null differ diff --git a/.yarn/cache/ast-metadata-inferer-npm-0.4.0-9db434cd5b-bca2c07600.zip b/.yarn/cache/ast-metadata-inferer-npm-0.4.0-9db434cd5b-bca2c07600.zip deleted file mode 100644 index 1c6d855e..00000000 Binary files a/.yarn/cache/ast-metadata-inferer-npm-0.4.0-9db434cd5b-bca2c07600.zip and /dev/null differ diff --git a/.yarn/cache/ast-types-npm-0.15.2-a09d26e72b-81680bd582.zip b/.yarn/cache/ast-types-npm-0.15.2-a09d26e72b-81680bd582.zip deleted file mode 100644 index e45d6213..00000000 Binary files a/.yarn/cache/ast-types-npm-0.15.2-a09d26e72b-81680bd582.zip and /dev/null differ diff --git a/.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-93417fc087.zip b/.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-93417fc087.zip deleted file mode 100644 index d8a1b724..00000000 Binary files a/.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-93417fc087.zip and /dev/null differ diff --git a/.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip b/.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip deleted file mode 100644 index 1af622c0..00000000 Binary files a/.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip and /dev/null differ diff --git a/.yarn/cache/async-each-npm-1.0.3-464af5d2f3-868651cfeb.zip b/.yarn/cache/async-each-npm-1.0.3-464af5d2f3-868651cfeb.zip deleted file mode 100644 index f745176b..00000000 Binary files a/.yarn/cache/async-each-npm-1.0.3-464af5d2f3-868651cfeb.zip and /dev/null differ diff --git a/.yarn/cache/async-limiter-npm-1.0.1-7e6819bcdb-2b849695b4.zip b/.yarn/cache/async-limiter-npm-1.0.1-7e6819bcdb-2b849695b4.zip deleted file mode 100644 index 38dfc9d4..00000000 Binary files a/.yarn/cache/async-limiter-npm-1.0.1-7e6819bcdb-2b849695b4.zip and /dev/null differ diff --git a/.yarn/cache/async-npm-0.9.2-d8cafe6cc3-69b9573269.zip b/.yarn/cache/async-npm-0.9.2-d8cafe6cc3-69b9573269.zip deleted file mode 100644 index 4fac81e6..00000000 Binary files a/.yarn/cache/async-npm-0.9.2-d8cafe6cc3-69b9573269.zip and /dev/null differ diff --git a/.yarn/cache/async-retry-npm-1.3.1-a013434040-42b518505c.zip b/.yarn/cache/async-retry-npm-1.3.1-a013434040-42b518505c.zip deleted file mode 100644 index e40b698b..00000000 Binary files a/.yarn/cache/async-retry-npm-1.3.1-a013434040-42b518505c.zip and /dev/null differ diff --git a/.yarn/cache/asynckit-npm-0.4.0-c718858525-3ce727cbc7.zip b/.yarn/cache/asynckit-npm-0.4.0-c718858525-3ce727cbc7.zip deleted file mode 100644 index bc5b2738..00000000 Binary files a/.yarn/cache/asynckit-npm-0.4.0-c718858525-3ce727cbc7.zip and /dev/null differ diff --git a/.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-463e2f8e43.zip b/.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-463e2f8e43.zip deleted file mode 100644 index bc549750..00000000 Binary files a/.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-463e2f8e43.zip and /dev/null differ diff --git a/.yarn/cache/atob-npm-2.1.2-bcb583261e-0624406cc0.zip b/.yarn/cache/atob-npm-2.1.2-bcb583261e-0624406cc0.zip deleted file mode 100644 index 2fb39df5..00000000 Binary files a/.yarn/cache/atob-npm-2.1.2-bcb583261e-0624406cc0.zip and /dev/null differ diff --git a/.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-2ac497d739.zip b/.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-2ac497d739.zip deleted file mode 100644 index 0c7efe33..00000000 Binary files a/.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-2ac497d739.zip and /dev/null differ diff --git a/.yarn/cache/aws4-npm-1.11.0-283476ad94-54886f07b3.zip b/.yarn/cache/aws4-npm-1.11.0-283476ad94-54886f07b3.zip deleted file mode 100644 index 462f4483..00000000 Binary files a/.yarn/cache/aws4-npm-1.11.0-283476ad94-54886f07b3.zip and /dev/null differ diff --git a/.yarn/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-2a1cb87901.zip b/.yarn/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-2a1cb87901.zip deleted file mode 100644 index 54a925e6..00000000 Binary files a/.yarn/cache/babel-core-npm-7.0.0-bridge.0-7fe146b78f-2a1cb87901.zip and /dev/null differ diff --git a/.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip b/.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip deleted file mode 100644 index 01961c7d..00000000 Binary files a/.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip and /dev/null differ diff --git a/.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-83ac016e7a.zip b/.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-83ac016e7a.zip deleted file mode 100644 index 7bbd27a4..00000000 Binary files a/.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-83ac016e7a.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-be081936a9-c9d24415bc.zip b/.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-be081936a9-c9d24415bc.zip deleted file mode 100644 index 8b45a45e..00000000 Binary files a/.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-be081936a9-c9d24415bc.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-c4ee0b1b6c.zip b/.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-c4ee0b1b6c.zip deleted file mode 100644 index e1fdb753..00000000 Binary files a/.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-c4ee0b1b6c.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-6190e6043c.zip b/.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-6190e6043c.zip deleted file mode 100644 index d18ecbd4..00000000 Binary files a/.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-6190e6043c.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip b/.yarn/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip deleted file mode 100644 index c2d5e84f..00000000 Binary files a/.yarn/cache/babel-plugin-polyfill-corejs2-npm-0.2.0-67111df270-5c6815b120.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip b/.yarn/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip deleted file mode 100644 index f893a605..00000000 Binary files a/.yarn/cache/babel-plugin-polyfill-corejs3-npm-0.2.0-9432a33ab0-8003d8f65f.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip b/.yarn/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip deleted file mode 100644 index fe55d428..00000000 Binary files a/.yarn/cache/babel-plugin-polyfill-regenerator-npm-0.2.0-9c06a6eabe-85a39fe4d8.zip and /dev/null differ diff --git a/.yarn/cache/babel-plugin-transform-flow-enums-npm-0.0.2-dbfa5d78ce-fd52aef544.zip b/.yarn/cache/babel-plugin-transform-flow-enums-npm-0.0.2-dbfa5d78ce-fd52aef544.zip deleted file mode 100644 index 433d89b6..00000000 Binary files a/.yarn/cache/babel-plugin-transform-flow-enums-npm-0.0.2-dbfa5d78ce-fd52aef544.zip and /dev/null differ diff --git a/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-94561959cb.zip b/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-94561959cb.zip deleted file mode 100644 index ec359bb0..00000000 Binary files a/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-94561959cb.zip and /dev/null differ diff --git a/.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-1d9bef3a7a.zip b/.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-1d9bef3a7a.zip deleted file mode 100644 index 7da125e6..00000000 Binary files a/.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-1d9bef3a7a.zip and /dev/null differ diff --git a/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip b/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip deleted file mode 100644 index 0693b6d7..00000000 Binary files a/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip and /dev/null differ diff --git a/.yarn/cache/base-npm-0.11.2-a9bde462d6-33b0c5d570.zip b/.yarn/cache/base-npm-0.11.2-a9bde462d6-33b0c5d570.zip deleted file mode 100644 index 47257ad1..00000000 Binary files a/.yarn/cache/base-npm-0.11.2-a9bde462d6-33b0c5d570.zip and /dev/null differ diff --git a/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip b/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip deleted file mode 100644 index a49ec87a..00000000 Binary files a/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip and /dev/null differ diff --git a/.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-13a4cde058.zip b/.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-13a4cde058.zip deleted file mode 100644 index e63b7f0d..00000000 Binary files a/.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-13a4cde058.zip and /dev/null differ diff --git a/.yarn/cache/before-after-hook-npm-2.2.1-0eb703f70c-3a05a63926.zip b/.yarn/cache/before-after-hook-npm-2.2.1-0eb703f70c-3a05a63926.zip deleted file mode 100644 index 20d278e2..00000000 Binary files a/.yarn/cache/before-after-hook-npm-2.2.1-0eb703f70c-3a05a63926.zip and /dev/null differ diff --git a/.yarn/cache/benchmark-npm-2.1.4-3d024a205e-0f42f865ae.zip b/.yarn/cache/benchmark-npm-2.1.4-3d024a205e-0f42f865ae.zip deleted file mode 100644 index 10e82239..00000000 Binary files a/.yarn/cache/benchmark-npm-2.1.4-3d024a205e-0f42f865ae.zip and /dev/null differ diff --git a/.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-ad7747f33c.zip b/.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-ad7747f33c.zip deleted file mode 100644 index 9258376d..00000000 Binary files a/.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-ad7747f33c.zip and /dev/null differ diff --git a/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip b/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip deleted file mode 100644 index 2ac750c1..00000000 Binary files a/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip and /dev/null differ diff --git a/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-b7904e66ed.zip b/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-b7904e66ed.zip deleted file mode 100644 index c5c75814..00000000 Binary files a/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-b7904e66ed.zip and /dev/null differ diff --git a/.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.zip b/.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.zip deleted file mode 100644 index 120c59db..00000000 Binary files a/.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.zip and /dev/null differ diff --git a/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip b/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip deleted file mode 100644 index 9deab64a..00000000 Binary files a/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip and /dev/null differ diff --git a/.yarn/cache/braces-npm-2.3.2-19cadb3384-7c0f0d9625.zip b/.yarn/cache/braces-npm-2.3.2-19cadb3384-7c0f0d9625.zip deleted file mode 100644 index b3f45810..00000000 Binary files a/.yarn/cache/braces-npm-2.3.2-19cadb3384-7c0f0d9625.zip and /dev/null differ diff --git a/.yarn/cache/braces-npm-3.0.2-782240b28a-966b1fb48d.zip b/.yarn/cache/braces-npm-3.0.2-782240b28a-966b1fb48d.zip deleted file mode 100644 index 4cf997e3..00000000 Binary files a/.yarn/cache/braces-npm-3.0.2-782240b28a-966b1fb48d.zip and /dev/null differ diff --git a/.yarn/cache/braces-npm-3.0.3-582c14023c-fad11a0d46.zip b/.yarn/cache/braces-npm-3.0.3-582c14023c-fad11a0d46.zip deleted file mode 100644 index bebc9386..00000000 Binary files a/.yarn/cache/braces-npm-3.0.3-582c14023c-fad11a0d46.zip and /dev/null differ diff --git a/.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-e30f868cdb.zip b/.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-e30f868cdb.zip deleted file mode 100644 index a2de0dc5..00000000 Binary files a/.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-e30f868cdb.zip and /dev/null differ diff --git a/.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-aa191e2aca.zip b/.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-aa191e2aca.zip deleted file mode 100644 index bf879ccf..00000000 Binary files a/.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-aa191e2aca.zip and /dev/null differ diff --git a/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip b/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip deleted file mode 100644 index d21d642f..00000000 Binary files a/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip and /dev/null differ diff --git a/.yarn/cache/bser-npm-2.1.1-cc902055ce-edba1b65ba.zip b/.yarn/cache/bser-npm-2.1.1-cc902055ce-edba1b65ba.zip deleted file mode 100644 index ede0184f..00000000 Binary files a/.yarn/cache/bser-npm-2.1.1-cc902055ce-edba1b65ba.zip and /dev/null differ diff --git a/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip b/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip deleted file mode 100644 index df60234c..00000000 Binary files a/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip and /dev/null differ diff --git a/.yarn/cache/buffer-npm-5.7.1-513ef8259e-997434d3c6.zip b/.yarn/cache/buffer-npm-5.7.1-513ef8259e-997434d3c6.zip deleted file mode 100644 index 9a05dffc..00000000 Binary files a/.yarn/cache/buffer-npm-5.7.1-513ef8259e-997434d3c6.zip and /dev/null differ diff --git a/.yarn/cache/builtins-npm-1.0.3-f09d2d57f2-8f756616bd.zip b/.yarn/cache/builtins-npm-1.0.3-f09d2d57f2-8f756616bd.zip deleted file mode 100644 index d507d770..00000000 Binary files a/.yarn/cache/builtins-npm-1.0.3-f09d2d57f2-8f756616bd.zip and /dev/null differ diff --git a/.yarn/cache/bytes-npm-3.0.0-19be09472d-a2b386dd81.zip b/.yarn/cache/bytes-npm-3.0.0-19be09472d-a2b386dd81.zip deleted file mode 100644 index 012962e9..00000000 Binary files a/.yarn/cache/bytes-npm-3.0.0-19be09472d-a2b386dd81.zip and /dev/null differ diff --git a/.yarn/cache/cacache-npm-15.0.6-a8e1454dc8-a0b9c5cd1d.zip b/.yarn/cache/cacache-npm-15.0.6-a8e1454dc8-a0b9c5cd1d.zip deleted file mode 100644 index fd3c5398..00000000 Binary files a/.yarn/cache/cacache-npm-15.0.6-a8e1454dc8-a0b9c5cd1d.zip and /dev/null differ diff --git a/.yarn/cache/cache-base-npm-1.0.1-1538417cb9-50dd11af5c.zip b/.yarn/cache/cache-base-npm-1.0.1-1538417cb9-50dd11af5c.zip deleted file mode 100644 index 5676731d..00000000 Binary files a/.yarn/cache/cache-base-npm-1.0.1-1538417cb9-50dd11af5c.zip and /dev/null differ diff --git a/.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-618a8b3eea.zip b/.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-618a8b3eea.zip deleted file mode 100644 index b1824369..00000000 Binary files a/.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-618a8b3eea.zip and /dev/null differ diff --git a/.yarn/cache/cacheable-request-npm-6.1.0-684b834873-804f6c377c.zip b/.yarn/cache/cacheable-request-npm-6.1.0-684b834873-804f6c377c.zip deleted file mode 100644 index 90e23e72..00000000 Binary files a/.yarn/cache/cacheable-request-npm-6.1.0-684b834873-804f6c377c.zip and /dev/null differ diff --git a/.yarn/cache/cacheable-request-npm-7.0.1-d870be2496-682a51337a.zip b/.yarn/cache/cacheable-request-npm-7.0.1-d870be2496-682a51337a.zip deleted file mode 100644 index 4283e9ad..00000000 Binary files a/.yarn/cache/cacheable-request-npm-7.0.1-d870be2496-682a51337a.zip and /dev/null differ diff --git a/.yarn/cache/call-bind-npm-1.0.2-c957124861-ca787179c1.zip b/.yarn/cache/call-bind-npm-1.0.2-c957124861-ca787179c1.zip deleted file mode 100644 index 81779aad..00000000 Binary files a/.yarn/cache/call-bind-npm-1.0.2-c957124861-ca787179c1.zip and /dev/null differ diff --git a/.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-b685e9d126.zip b/.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-b685e9d126.zip deleted file mode 100644 index 95186fff..00000000 Binary files a/.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-b685e9d126.zip and /dev/null differ diff --git a/.yarn/cache/caller-path-npm-2.0.0-7ff6a26cb9-3e12ccd0c7.zip b/.yarn/cache/caller-path-npm-2.0.0-7ff6a26cb9-3e12ccd0c7.zip deleted file mode 100644 index 28b87414..00000000 Binary files a/.yarn/cache/caller-path-npm-2.0.0-7ff6a26cb9-3e12ccd0c7.zip and /dev/null differ diff --git a/.yarn/cache/callsites-npm-2.0.0-cc39942b7f-be2f67b247.zip b/.yarn/cache/callsites-npm-2.0.0-cc39942b7f-be2f67b247.zip deleted file mode 100644 index ec8d690c..00000000 Binary files a/.yarn/cache/callsites-npm-2.0.0-cc39942b7f-be2f67b247.zip and /dev/null differ diff --git a/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip b/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip deleted file mode 100644 index be6414c5..00000000 Binary files a/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-55e8d787d4.zip b/.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-55e8d787d4.zip deleted file mode 100644 index 925a9b18..00000000 Binary files a/.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-55e8d787d4.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-c1999f5b6d.zip b/.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-c1999f5b6d.zip deleted file mode 100644 index 2a565fb7..00000000 Binary files a/.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-c1999f5b6d.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-npm-2.1.1-2ed296a336-20a3ef08f3.zip b/.yarn/cache/camelcase-npm-2.1.1-2ed296a336-20a3ef08f3.zip deleted file mode 100644 index 69472c07..00000000 Binary files a/.yarn/cache/camelcase-npm-2.1.1-2ed296a336-20a3ef08f3.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip b/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip deleted file mode 100644 index 9cc2f6dd..00000000 Binary files a/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-8335cfd0ec.zip b/.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-8335cfd0ec.zip deleted file mode 100644 index 0a809ef1..00000000 Binary files a/.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-8335cfd0ec.zip and /dev/null differ diff --git a/.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-8c96818a90.zip b/.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-8c96818a90.zip deleted file mode 100644 index c10ab683..00000000 Binary files a/.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-8c96818a90.zip and /dev/null differ diff --git a/.yarn/cache/camelize-npm-1.0.0-5eda108776-ad285ffc90.zip b/.yarn/cache/camelize-npm-1.0.0-5eda108776-ad285ffc90.zip deleted file mode 100644 index c8c3af9b..00000000 Binary files a/.yarn/cache/camelize-npm-1.0.0-5eda108776-ad285ffc90.zip and /dev/null differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-f9824f85f7.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-f9824f85f7.zip deleted file mode 100644 index b853ad66..00000000 Binary files a/.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-f9824f85f7.zip and /dev/null differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001662-4f7a06daf5-275dee3c23.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001662-4f7a06daf5-275dee3c23.zip deleted file mode 100644 index 6ff54242..00000000 Binary files a/.yarn/cache/caniuse-lite-npm-1.0.30001662-4f7a06daf5-275dee3c23.zip and /dev/null differ diff --git a/.yarn/cache/capture-exit-npm-2.0.0-564874b447-0b9f10daca.zip b/.yarn/cache/capture-exit-npm-2.0.0-564874b447-0b9f10daca.zip deleted file mode 100644 index dc17eae1..00000000 Binary files a/.yarn/cache/capture-exit-npm-2.0.0-564874b447-0b9f10daca.zip and /dev/null differ diff --git a/.yarn/cache/caseless-npm-0.12.0-e83bc5df83-ea1efdf430.zip b/.yarn/cache/caseless-npm-0.12.0-e83bc5df83-ea1efdf430.zip deleted file mode 100644 index 3ece9574..00000000 Binary files a/.yarn/cache/caseless-npm-0.12.0-e83bc5df83-ea1efdf430.zip and /dev/null differ diff --git a/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-3d1d103433.zip b/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-3d1d103433.zip deleted file mode 100644 index 979f9e1b..00000000 Binary files a/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-3d1d103433.zip and /dev/null differ diff --git a/.yarn/cache/chalk-npm-3.0.0-e813208025-37f90b31fd.zip b/.yarn/cache/chalk-npm-3.0.0-e813208025-37f90b31fd.zip deleted file mode 100644 index 2854d556..00000000 Binary files a/.yarn/cache/chalk-npm-3.0.0-e813208025-37f90b31fd.zip and /dev/null differ diff --git a/.yarn/cache/chalk-npm-4.1.0-c746e252ba-e8d2b9b9ab.zip b/.yarn/cache/chalk-npm-4.1.0-c746e252ba-e8d2b9b9ab.zip deleted file mode 100644 index 1cfe8d00..00000000 Binary files a/.yarn/cache/chalk-npm-4.1.0-c746e252ba-e8d2b9b9ab.zip and /dev/null differ diff --git a/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-ae5031f496.zip b/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-ae5031f496.zip deleted file mode 100644 index 6ad0cc0f..00000000 Binary files a/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-ae5031f496.zip and /dev/null differ diff --git a/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-cb3f3e5949.zip b/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-cb3f3e5949.zip deleted file mode 100644 index 15523b07..00000000 Binary files a/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-cb3f3e5949.zip and /dev/null differ diff --git a/.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-1ec5c2906a.zip b/.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-1ec5c2906a.zip deleted file mode 100644 index c4246a0d..00000000 Binary files a/.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-1ec5c2906a.zip and /dev/null differ diff --git a/.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b0ec668fba.zip b/.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b0ec668fba.zip deleted file mode 100644 index 4e29fdab..00000000 Binary files a/.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b0ec668fba.zip and /dev/null differ diff --git a/.yarn/cache/chokidar-npm-3.5.1-205217279e-00685f675f.zip b/.yarn/cache/chokidar-npm-3.5.1-205217279e-00685f675f.zip deleted file mode 100644 index 97f6d28d..00000000 Binary files a/.yarn/cache/chokidar-npm-3.5.1-205217279e-00685f675f.zip and /dev/null differ diff --git a/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip b/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip deleted file mode 100644 index e074b2f4..00000000 Binary files a/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip and /dev/null differ diff --git a/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-6faa189950.zip b/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-6faa189950.zip deleted file mode 100644 index 978f9af6..00000000 Binary files a/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-6faa189950.zip and /dev/null differ diff --git a/.yarn/cache/ci-info-npm-2.0.0-78012236a1-3b374666a8.zip b/.yarn/cache/ci-info-npm-2.0.0-78012236a1-3b374666a8.zip deleted file mode 100644 index be3be89f..00000000 Binary files a/.yarn/cache/ci-info-npm-2.0.0-78012236a1-3b374666a8.zip and /dev/null differ diff --git a/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-75bc67902b.zip b/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-75bc67902b.zip deleted file mode 100644 index 552fe1b3..00000000 Binary files a/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-75bc67902b.zip and /dev/null differ diff --git a/.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-9105867de7.zip b/.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-9105867de7.zip deleted file mode 100644 index 6fe3dbe0..00000000 Binary files a/.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-9105867de7.zip and /dev/null differ diff --git a/.yarn/cache/class-utils-npm-0.3.6-2c691ad006-b236d9deb6.zip b/.yarn/cache/class-utils-npm-0.3.6-2c691ad006-b236d9deb6.zip deleted file mode 100644 index d2453cf4..00000000 Binary files a/.yarn/cache/class-utils-npm-0.3.6-2c691ad006-b236d9deb6.zip and /dev/null differ diff --git a/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip b/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip deleted file mode 100644 index c5109957..00000000 Binary files a/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip and /dev/null differ diff --git a/.yarn/cache/cli-boxes-npm-2.2.1-7125a5ba44-be79f8ec23.zip b/.yarn/cache/cli-boxes-npm-2.2.1-7125a5ba44-be79f8ec23.zip deleted file mode 100644 index 9f0f7313..00000000 Binary files a/.yarn/cache/cli-boxes-npm-2.2.1-7125a5ba44-be79f8ec23.zip and /dev/null differ diff --git a/.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-2692784c6c.zip b/.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-2692784c6c.zip deleted file mode 100644 index 2a8723c6..00000000 Binary files a/.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-2692784c6c.zip and /dev/null differ diff --git a/.yarn/cache/cli-spinners-npm-2.6.0-57d233343c-1079f3c8fc.zip b/.yarn/cache/cli-spinners-npm-2.6.0-57d233343c-1079f3c8fc.zip deleted file mode 100644 index 78a29164..00000000 Binary files a/.yarn/cache/cli-spinners-npm-2.6.0-57d233343c-1079f3c8fc.zip and /dev/null differ diff --git a/.yarn/cache/cli-spinners-npm-2.9.2-be9c08efee-a0a863f442.zip b/.yarn/cache/cli-spinners-npm-2.9.2-be9c08efee-a0a863f442.zip deleted file mode 100644 index 0a7507dd..00000000 Binary files a/.yarn/cache/cli-spinners-npm-2.9.2-be9c08efee-a0a863f442.zip and /dev/null differ diff --git a/.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-8730848b04.zip b/.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-8730848b04.zip deleted file mode 100644 index 4f00ab23..00000000 Binary files a/.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-8730848b04.zip and /dev/null differ diff --git a/.yarn/cache/cliui-npm-6.0.0-488b2414c6-44afbcc29d.zip b/.yarn/cache/cliui-npm-6.0.0-488b2414c6-44afbcc29d.zip deleted file mode 100644 index 55573ae5..00000000 Binary files a/.yarn/cache/cliui-npm-6.0.0-488b2414c6-44afbcc29d.zip and /dev/null differ diff --git a/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-db858c49af.zip b/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-db858c49af.zip deleted file mode 100644 index ae29e00c..00000000 Binary files a/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-db858c49af.zip and /dev/null differ diff --git a/.yarn/cache/cliui-npm-8.0.1-3b029092cf-eaa5561aeb.zip b/.yarn/cache/cliui-npm-8.0.1-3b029092cf-eaa5561aeb.zip deleted file mode 100644 index 8701b645..00000000 Binary files a/.yarn/cache/cliui-npm-8.0.1-3b029092cf-eaa5561aeb.zip and /dev/null differ diff --git a/.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip b/.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip deleted file mode 100644 index 1017703e..00000000 Binary files a/.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip and /dev/null differ diff --git a/.yarn/cache/clone-npm-1.0.4-a610fcbcf9-d06418b733.zip b/.yarn/cache/clone-npm-1.0.4-a610fcbcf9-d06418b733.zip deleted file mode 100644 index e06cc863..00000000 Binary files a/.yarn/cache/clone-npm-1.0.4-a610fcbcf9-d06418b733.zip and /dev/null differ diff --git a/.yarn/cache/clone-response-npm-1.0.2-135ae8239d-2d0e61547f.zip b/.yarn/cache/clone-response-npm-1.0.2-135ae8239d-2d0e61547f.zip deleted file mode 100644 index 5b5af535..00000000 Binary files a/.yarn/cache/clone-response-npm-1.0.2-135ae8239d-2d0e61547f.zip and /dev/null differ diff --git a/.yarn/cache/co-npm-4.6.0-03f2d1feb6-a5d9f37091.zip b/.yarn/cache/co-npm-4.6.0-03f2d1feb6-a5d9f37091.zip deleted file mode 100644 index 77e28644..00000000 Binary files a/.yarn/cache/co-npm-4.6.0-03f2d1feb6-a5d9f37091.zip and /dev/null differ diff --git a/.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-17d5666611.zip b/.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-17d5666611.zip deleted file mode 100644 index 5e910b2e..00000000 Binary files a/.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-17d5666611.zip and /dev/null differ diff --git a/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-85b26945ab.zip b/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-85b26945ab.zip deleted file mode 100644 index 2c69db16..00000000 Binary files a/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-85b26945ab.zip and /dev/null differ diff --git a/.yarn/cache/collection-visit-npm-1.0.0-aba2d5defc-15d9658fe6.zip b/.yarn/cache/collection-visit-npm-1.0.0-aba2d5defc-15d9658fe6.zip deleted file mode 100644 index 9250eb36..00000000 Binary files a/.yarn/cache/collection-visit-npm-1.0.0-aba2d5defc-15d9658fe6.zip and /dev/null differ diff --git a/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.zip b/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.zip deleted file mode 100644 index c4d6fede..00000000 Binary files a/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.zip and /dev/null differ diff --git a/.yarn/cache/color-convert-npm-2.0.1-79730e935b-fa00c91b43.zip b/.yarn/cache/color-convert-npm-2.0.1-79730e935b-fa00c91b43.zip deleted file mode 100644 index d7ba1fbe..00000000 Binary files a/.yarn/cache/color-convert-npm-2.0.1-79730e935b-fa00c91b43.zip and /dev/null differ diff --git a/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip b/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip deleted file mode 100644 index f158de9e..00000000 Binary files a/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip and /dev/null differ diff --git a/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip b/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip deleted file mode 100644 index ce1ffc4b..00000000 Binary files a/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip and /dev/null differ diff --git a/.yarn/cache/colorette-npm-1.2.2-da75bd0b32-cd8451221e.zip b/.yarn/cache/colorette-npm-1.2.2-da75bd0b32-cd8451221e.zip deleted file mode 100644 index ca521ce8..00000000 Binary files a/.yarn/cache/colorette-npm-1.2.2-da75bd0b32-cd8451221e.zip and /dev/null differ diff --git a/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-c8d6c8c3ef.zip b/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-c8d6c8c3ef.zip deleted file mode 100644 index af41cf20..00000000 Binary files a/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-c8d6c8c3ef.zip and /dev/null differ diff --git a/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-2e969e637d.zip b/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-2e969e637d.zip deleted file mode 100644 index 6c1a97bc..00000000 Binary files a/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-2e969e637d.zip and /dev/null differ diff --git a/.yarn/cache/command-exists-npm-1.2.9-cc51a1f78a-46fb3c4d62.zip b/.yarn/cache/command-exists-npm-1.2.9-cc51a1f78a-46fb3c4d62.zip deleted file mode 100644 index 8673c03a..00000000 Binary files a/.yarn/cache/command-exists-npm-1.2.9-cc51a1f78a-46fb3c4d62.zip and /dev/null differ diff --git a/.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-90c5b68986.zip b/.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-90c5b68986.zip deleted file mode 100644 index c6d19595..00000000 Binary files a/.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-90c5b68986.zip and /dev/null differ diff --git a/.yarn/cache/commander-npm-4.1.1-22a0fe921b-3b2dc4125f.zip b/.yarn/cache/commander-npm-4.1.1-22a0fe921b-3b2dc4125f.zip deleted file mode 100644 index c893cc7f..00000000 Binary files a/.yarn/cache/commander-npm-4.1.1-22a0fe921b-3b2dc4125f.zip and /dev/null differ diff --git a/.yarn/cache/commander-npm-9.5.0-993b3f2434-41c49b3d0f.zip b/.yarn/cache/commander-npm-9.5.0-993b3f2434-41c49b3d0f.zip deleted file mode 100644 index da6750ca..00000000 Binary files a/.yarn/cache/commander-npm-9.5.0-993b3f2434-41c49b3d0f.zip and /dev/null differ diff --git a/.yarn/cache/commitlint-npm-12.1.4-4c404fa1f9-25ec6270ee.zip b/.yarn/cache/commitlint-npm-12.1.4-4c404fa1f9-25ec6270ee.zip deleted file mode 100644 index 9e301953..00000000 Binary files a/.yarn/cache/commitlint-npm-12.1.4-4c404fa1f9-25ec6270ee.zip and /dev/null differ diff --git a/.yarn/cache/commondir-npm-1.0.1-291b790340-4620bc4936.zip b/.yarn/cache/commondir-npm-1.0.1-291b790340-4620bc4936.zip deleted file mode 100644 index 99574e49..00000000 Binary files a/.yarn/cache/commondir-npm-1.0.1-291b790340-4620bc4936.zip and /dev/null differ diff --git a/.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-fb71d70632.zip b/.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-fb71d70632.zip deleted file mode 100644 index 5919970e..00000000 Binary files a/.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-fb71d70632.zip and /dev/null differ diff --git a/.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-dfc1ec2e7a.zip b/.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-dfc1ec2e7a.zip deleted file mode 100644 index b5ea93b1..00000000 Binary files a/.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-dfc1ec2e7a.zip and /dev/null differ diff --git a/.yarn/cache/compressible-npm-2.0.18-ee5ab04d88-58321a85b3.zip b/.yarn/cache/compressible-npm-2.0.18-ee5ab04d88-58321a85b3.zip deleted file mode 100644 index cc0251d4..00000000 Binary files a/.yarn/cache/compressible-npm-2.0.18-ee5ab04d88-58321a85b3.zip and /dev/null differ diff --git a/.yarn/cache/compression-npm-1.7.4-e0cd6afa69-469cd09790.zip b/.yarn/cache/compression-npm-1.7.4-e0cd6afa69-469cd09790.zip deleted file mode 100644 index 6d6a1cda..00000000 Binary files a/.yarn/cache/compression-npm-1.7.4-e0cd6afa69-469cd09790.zip and /dev/null differ diff --git a/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-9680699c8e.zip b/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-9680699c8e.zip deleted file mode 100644 index 967fcdff..00000000 Binary files a/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-9680699c8e.zip and /dev/null differ diff --git a/.yarn/cache/concat-stream-npm-2.0.0-8bb2ad5aa0-250e576d06.zip b/.yarn/cache/concat-stream-npm-2.0.0-8bb2ad5aa0-250e576d06.zip deleted file mode 100644 index 5ed8d03a..00000000 Binary files a/.yarn/cache/concat-stream-npm-2.0.0-8bb2ad5aa0-250e576d06.zip and /dev/null differ diff --git a/.yarn/cache/configstore-npm-5.0.1-739433cdc5-60ef65d493.zip b/.yarn/cache/configstore-npm-5.0.1-739433cdc5-60ef65d493.zip deleted file mode 100644 index f1439336..00000000 Binary files a/.yarn/cache/configstore-npm-5.0.1-739433cdc5-60ef65d493.zip and /dev/null differ diff --git a/.yarn/cache/connect-npm-3.7.0-25ccb085cc-f94818b198.zip b/.yarn/cache/connect-npm-3.7.0-25ccb085cc-f94818b198.zip deleted file mode 100644 index 96eb2fb7..00000000 Binary files a/.yarn/cache/connect-npm-3.7.0-25ccb085cc-f94818b198.zip and /dev/null differ diff --git a/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-27b5fa302b.zip b/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-27b5fa302b.zip deleted file mode 100644 index b373e26c..00000000 Binary files a/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-27b5fa302b.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-angular-npm-5.0.12-0dd88eb3f8-adacd1132d.zip b/.yarn/cache/conventional-changelog-angular-npm-5.0.12-0dd88eb3f8-adacd1132d.zip deleted file mode 100644 index cda9c6f9..00000000 Binary files a/.yarn/cache/conventional-changelog-angular-npm-5.0.12-0dd88eb3f8-adacd1132d.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-atom-npm-2.0.8-ab61571c15-53ae65ef33.zip b/.yarn/cache/conventional-changelog-atom-npm-2.0.8-ab61571c15-53ae65ef33.zip deleted file mode 100644 index 5eb3d8dd..00000000 Binary files a/.yarn/cache/conventional-changelog-atom-npm-2.0.8-ab61571c15-53ae65ef33.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-codemirror-npm-2.0.8-342d72f6a3-45183dcb16.zip b/.yarn/cache/conventional-changelog-codemirror-npm-2.0.8-342d72f6a3-45183dcb16.zip deleted file mode 100644 index 87f736a1..00000000 Binary files a/.yarn/cache/conventional-changelog-codemirror-npm-2.0.8-342d72f6a3-45183dcb16.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-conventionalcommits-npm-4.6.0-d399b251bd-e8b089306b.zip b/.yarn/cache/conventional-changelog-conventionalcommits-npm-4.6.0-d399b251bd-e8b089306b.zip deleted file mode 100644 index 8d15a61d..00000000 Binary files a/.yarn/cache/conventional-changelog-conventionalcommits-npm-4.6.0-d399b251bd-e8b089306b.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-core-npm-4.2.2-2e3e4e3239-a34e50d352.zip b/.yarn/cache/conventional-changelog-core-npm-4.2.2-2e3e4e3239-a34e50d352.zip deleted file mode 100644 index 839552fa..00000000 Binary files a/.yarn/cache/conventional-changelog-core-npm-4.2.2-2e3e4e3239-a34e50d352.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-ember-npm-2.0.9-2276834930-87faf42230.zip b/.yarn/cache/conventional-changelog-ember-npm-2.0.9-2276834930-87faf42230.zip deleted file mode 100644 index 20ec2cc9..00000000 Binary files a/.yarn/cache/conventional-changelog-ember-npm-2.0.9-2276834930-87faf42230.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-eslint-npm-3.0.9-62c523a901-f12f82adae.zip b/.yarn/cache/conventional-changelog-eslint-npm-3.0.9-62c523a901-f12f82adae.zip deleted file mode 100644 index 1df984cf..00000000 Binary files a/.yarn/cache/conventional-changelog-eslint-npm-3.0.9-62c523a901-f12f82adae.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-express-npm-2.0.6-8a37ff0369-08db048159.zip b/.yarn/cache/conventional-changelog-express-npm-2.0.6-8a37ff0369-08db048159.zip deleted file mode 100644 index 3d980cf3..00000000 Binary files a/.yarn/cache/conventional-changelog-express-npm-2.0.6-8a37ff0369-08db048159.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-jquery-npm-3.0.11-d4ff10c6e2-18720ee267.zip b/.yarn/cache/conventional-changelog-jquery-npm-3.0.11-d4ff10c6e2-18720ee267.zip deleted file mode 100644 index 3d9cf8bf..00000000 Binary files a/.yarn/cache/conventional-changelog-jquery-npm-3.0.11-d4ff10c6e2-18720ee267.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-jshint-npm-2.0.9-ef6b791bee-42e16d0e41.zip b/.yarn/cache/conventional-changelog-jshint-npm-2.0.9-ef6b791bee-42e16d0e41.zip deleted file mode 100644 index 1794b25d..00000000 Binary files a/.yarn/cache/conventional-changelog-jshint-npm-2.0.9-ef6b791bee-42e16d0e41.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-npm-3.1.24-11de891016-e0b4d2c3c2.zip b/.yarn/cache/conventional-changelog-npm-3.1.24-11de891016-e0b4d2c3c2.zip deleted file mode 100644 index e58344a1..00000000 Binary files a/.yarn/cache/conventional-changelog-npm-3.1.24-11de891016-e0b4d2c3c2.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-preset-loader-npm-2.3.4-a907f2e49a-23a889b7fc.zip b/.yarn/cache/conventional-changelog-preset-loader-npm-2.3.4-a907f2e49a-23a889b7fc.zip deleted file mode 100644 index 52e52b15..00000000 Binary files a/.yarn/cache/conventional-changelog-preset-loader-npm-2.3.4-a907f2e49a-23a889b7fc.zip and /dev/null differ diff --git a/.yarn/cache/conventional-changelog-writer-npm-4.1.0-a660c822b9-15b947c966.zip b/.yarn/cache/conventional-changelog-writer-npm-4.1.0-a660c822b9-15b947c966.zip deleted file mode 100644 index b277feb3..00000000 Binary files a/.yarn/cache/conventional-changelog-writer-npm-4.1.0-a660c822b9-15b947c966.zip and /dev/null differ diff --git a/.yarn/cache/conventional-commits-filter-npm-2.0.7-8762ee3bfa-c7e25df941.zip b/.yarn/cache/conventional-commits-filter-npm-2.0.7-8762ee3bfa-c7e25df941.zip deleted file mode 100644 index 76548f62..00000000 Binary files a/.yarn/cache/conventional-commits-filter-npm-2.0.7-8762ee3bfa-c7e25df941.zip and /dev/null differ diff --git a/.yarn/cache/conventional-commits-parser-npm-3.2.1-129ed8dab0-6f37835fac.zip b/.yarn/cache/conventional-commits-parser-npm-3.2.1-129ed8dab0-6f37835fac.zip deleted file mode 100644 index d6d3815e..00000000 Binary files a/.yarn/cache/conventional-commits-parser-npm-3.2.1-129ed8dab0-6f37835fac.zip and /dev/null differ diff --git a/.yarn/cache/conventional-recommended-bump-npm-6.1.0-18a6db0ce9-5561a4163e.zip b/.yarn/cache/conventional-recommended-bump-npm-6.1.0-18a6db0ce9-5561a4163e.zip deleted file mode 100644 index 8e894c8c..00000000 Binary files a/.yarn/cache/conventional-recommended-bump-npm-6.1.0-18a6db0ce9-5561a4163e.zip and /dev/null differ diff --git a/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-0d0dd324ad.zip b/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-0d0dd324ad.zip deleted file mode 100644 index 1dee7621..00000000 Binary files a/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-0d0dd324ad.zip and /dev/null differ diff --git a/.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-c987be3ec0.zip b/.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-c987be3ec0.zip deleted file mode 100644 index 4fa95359..00000000 Binary files a/.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-c987be3ec0.zip and /dev/null differ diff --git a/.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-edf4651bce.zip b/.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-edf4651bce.zip deleted file mode 100644 index bdbea497..00000000 Binary files a/.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-edf4651bce.zip and /dev/null differ diff --git a/.yarn/cache/core-js-compat-npm-3.12.1-b22ed3c2b0-1687739422.zip b/.yarn/cache/core-js-compat-npm-3.12.1-b22ed3c2b0-1687739422.zip deleted file mode 100644 index 169b74a3..00000000 Binary files a/.yarn/cache/core-js-compat-npm-3.12.1-b22ed3c2b0-1687739422.zip and /dev/null differ diff --git a/.yarn/cache/core-js-npm-3.12.1-6d1063bc86-2436a0ef50.zip b/.yarn/cache/core-js-npm-3.12.1-6d1063bc86-2436a0ef50.zip deleted file mode 100644 index 607446a2..00000000 Binary files a/.yarn/cache/core-js-npm-3.12.1-6d1063bc86-2436a0ef50.zip and /dev/null differ diff --git a/.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-d0f7587346.zip b/.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-d0f7587346.zip deleted file mode 100644 index 31776f20..00000000 Binary files a/.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-d0f7587346.zip and /dev/null differ diff --git a/.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-1d617668e1.zip b/.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-1d617668e1.zip deleted file mode 100644 index 24e837ac..00000000 Binary files a/.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-1d617668e1.zip and /dev/null differ diff --git a/.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-bdfcee5ef4.zip b/.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-bdfcee5ef4.zip deleted file mode 100644 index a9e4eeed..00000000 Binary files a/.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-bdfcee5ef4.zip and /dev/null differ diff --git a/.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-f07e643b48.zip b/.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-f07e643b48.zip deleted file mode 100644 index c48fb4ce..00000000 Binary files a/.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-f07e643b48.zip and /dev/null differ diff --git a/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-e1a13869d2.zip b/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-e1a13869d2.zip deleted file mode 100644 index 9aa6dc0d..00000000 Binary files a/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-e1a13869d2.zip and /dev/null differ diff --git a/.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-0283879f55.zip b/.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-0283879f55.zip deleted file mode 100644 index 90bce332..00000000 Binary files a/.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-0283879f55.zip and /dev/null differ diff --git a/.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip b/.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip deleted file mode 100644 index 9886779c..00000000 Binary files a/.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip and /dev/null differ diff --git a/.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-57f2df6665.zip b/.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-57f2df6665.zip deleted file mode 100644 index 314d38d1..00000000 Binary files a/.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-57f2df6665.zip and /dev/null differ diff --git a/.yarn/cache/cssom-npm-0.3.8-a9291d36ff-49eacc8807.zip b/.yarn/cache/cssom-npm-0.3.8-a9291d36ff-49eacc8807.zip deleted file mode 100644 index cf96eb5e..00000000 Binary files a/.yarn/cache/cssom-npm-0.3.8-a9291d36ff-49eacc8807.zip and /dev/null differ diff --git a/.yarn/cache/cssom-npm-0.4.4-818f01a6e3-6302c5f9b3.zip b/.yarn/cache/cssom-npm-0.4.4-818f01a6e3-6302c5f9b3.zip deleted file mode 100644 index 262c8ce8..00000000 Binary files a/.yarn/cache/cssom-npm-0.4.4-818f01a6e3-6302c5f9b3.zip and /dev/null differ diff --git a/.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-46f7f05a15.zip b/.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-46f7f05a15.zip deleted file mode 100644 index e7c74f1c..00000000 Binary files a/.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-46f7f05a15.zip and /dev/null differ diff --git a/.yarn/cache/csstype-npm-3.0.8-99cf1f37ff-498e58edf4.zip b/.yarn/cache/csstype-npm-3.0.8-99cf1f37ff-498e58edf4.zip deleted file mode 100644 index ad87f40b..00000000 Binary files a/.yarn/cache/csstype-npm-3.0.8-99cf1f37ff-498e58edf4.zip and /dev/null differ diff --git a/.yarn/cache/csstype-npm-3.0.9-0801c4a6d7-ffa22664f3.zip b/.yarn/cache/csstype-npm-3.0.9-0801c4a6d7-ffa22664f3.zip deleted file mode 100644 index 1215e9a3..00000000 Binary files a/.yarn/cache/csstype-npm-3.0.9-0801c4a6d7-ffa22664f3.zip and /dev/null differ diff --git a/.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-53fb803e58.zip b/.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-53fb803e58.zip deleted file mode 100644 index 0e56e107..00000000 Binary files a/.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-53fb803e58.zip and /dev/null differ diff --git a/.yarn/cache/dargs-npm-7.0.0-62701e0c7a-b8f1e3cba5.zip b/.yarn/cache/dargs-npm-7.0.0-62701e0c7a-b8f1e3cba5.zip deleted file mode 100644 index 004e5a48..00000000 Binary files a/.yarn/cache/dargs-npm-7.0.0-62701e0c7a-b8f1e3cba5.zip and /dev/null differ diff --git a/.yarn/cache/dashdash-npm-1.14.1-be8f10a286-137b287fa0.zip b/.yarn/cache/dashdash-npm-1.14.1-be8f10a286-137b287fa0.zip deleted file mode 100644 index 54458bcf..00000000 Binary files a/.yarn/cache/dashdash-npm-1.14.1-be8f10a286-137b287fa0.zip and /dev/null differ diff --git a/.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip b/.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip deleted file mode 100644 index 71d77d15..00000000 Binary files a/.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip and /dev/null differ diff --git a/.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-0504baf50c.zip b/.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-0504baf50c.zip deleted file mode 100644 index 85e58eef..00000000 Binary files a/.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-0504baf50c.zip and /dev/null differ diff --git a/.yarn/cache/dayjs-npm-1.11.13-d478bb9479-7374d63ab1.zip b/.yarn/cache/dayjs-npm-1.11.13-d478bb9479-7374d63ab1.zip deleted file mode 100644 index 8fd6737e..00000000 Binary files a/.yarn/cache/dayjs-npm-1.11.13-d478bb9479-7374d63ab1.zip and /dev/null differ diff --git a/.yarn/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip b/.yarn/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip deleted file mode 100644 index 84bbd0db..00000000 Binary files a/.yarn/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip and /dev/null differ diff --git a/.yarn/cache/debug-npm-4.2.0-9392baba7e-4877714f15.zip b/.yarn/cache/debug-npm-4.2.0-9392baba7e-4877714f15.zip deleted file mode 100644 index b042b0ba..00000000 Binary files a/.yarn/cache/debug-npm-4.2.0-9392baba7e-4877714f15.zip and /dev/null differ diff --git a/.yarn/cache/debug-npm-4.3.2-f0148b6afe-6a2980374e.zip b/.yarn/cache/debug-npm-4.3.2-f0148b6afe-6a2980374e.zip deleted file mode 100644 index 4b04510b..00000000 Binary files a/.yarn/cache/debug-npm-4.3.2-f0148b6afe-6a2980374e.zip and /dev/null differ diff --git a/.yarn/cache/debug-npm-4.3.7-385645adf9-71168908b9.zip b/.yarn/cache/debug-npm-4.3.7-385645adf9-71168908b9.zip deleted file mode 100644 index 24741d29..00000000 Binary files a/.yarn/cache/debug-npm-4.3.7-385645adf9-71168908b9.zip and /dev/null differ diff --git a/.yarn/cache/decamelize-keys-npm-1.1.0-75168ffadd-968813219e.zip b/.yarn/cache/decamelize-keys-npm-1.1.0-75168ffadd-968813219e.zip deleted file mode 100644 index da2ccc26..00000000 Binary files a/.yarn/cache/decamelize-keys-npm-1.1.0-75168ffadd-968813219e.zip and /dev/null differ diff --git a/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip b/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip deleted file mode 100644 index db4ac470..00000000 Binary files a/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip and /dev/null differ diff --git a/.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-2931d044a0.zip b/.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-2931d044a0.zip deleted file mode 100644 index a84413c9..00000000 Binary files a/.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-2931d044a0.zip and /dev/null differ diff --git a/.yarn/cache/decode-uri-component-npm-0.2.0-5bcc0f3597-0686aa1f56.zip b/.yarn/cache/decode-uri-component-npm-0.2.0-5bcc0f3597-0686aa1f56.zip deleted file mode 100644 index 0b2b9a77..00000000 Binary files a/.yarn/cache/decode-uri-component-npm-0.2.0-5bcc0f3597-0686aa1f56.zip and /dev/null differ diff --git a/.yarn/cache/decompress-response-npm-3.3.0-6e7b6375c3-952552ac3b.zip b/.yarn/cache/decompress-response-npm-3.3.0-6e7b6375c3-952552ac3b.zip deleted file mode 100644 index 52b2ac76..00000000 Binary files a/.yarn/cache/decompress-response-npm-3.3.0-6e7b6375c3-952552ac3b.zip and /dev/null differ diff --git a/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip b/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip deleted file mode 100644 index bbc1db51..00000000 Binary files a/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip and /dev/null differ diff --git a/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip b/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip deleted file mode 100644 index 64afea83..00000000 Binary files a/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip and /dev/null differ diff --git a/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip b/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip deleted file mode 100644 index 87f0270e..00000000 Binary files a/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip and /dev/null differ diff --git a/.yarn/cache/deep-is-npm-0.1.3-0941784645-dee1094e98.zip b/.yarn/cache/deep-is-npm-0.1.3-0941784645-dee1094e98.zip deleted file mode 100644 index 5ff8b8bc..00000000 Binary files a/.yarn/cache/deep-is-npm-0.1.3-0941784645-dee1094e98.zip and /dev/null differ diff --git a/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-0e58ed14f5.zip b/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-0e58ed14f5.zip deleted file mode 100644 index 13792fff..00000000 Binary files a/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-0e58ed14f5.zip and /dev/null differ diff --git a/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-058d9e1b0f.zip b/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-058d9e1b0f.zip deleted file mode 100644 index cb05c850..00000000 Binary files a/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-058d9e1b0f.zip and /dev/null differ diff --git a/.yarn/cache/defaults-npm-1.0.3-e829107b9e-96e2112da6.zip b/.yarn/cache/defaults-npm-1.0.3-e829107b9e-96e2112da6.zip deleted file mode 100644 index 0b0bc1be..00000000 Binary files a/.yarn/cache/defaults-npm-1.0.3-e829107b9e-96e2112da6.zip and /dev/null differ diff --git a/.yarn/cache/defer-to-connect-npm-1.1.3-5887885147-9491b301dc.zip b/.yarn/cache/defer-to-connect-npm-1.1.3-5887885147-9491b301dc.zip deleted file mode 100644 index 75ad626c..00000000 Binary files a/.yarn/cache/defer-to-connect-npm-1.1.3-5887885147-9491b301dc.zip and /dev/null differ diff --git a/.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-8a9b50d2f2.zip b/.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-8a9b50d2f2.zip deleted file mode 100644 index 83a15789..00000000 Binary files a/.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-8a9b50d2f2.zip and /dev/null differ diff --git a/.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-33125cafaf.zip b/.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-33125cafaf.zip deleted file mode 100644 index 7a9feaba..00000000 Binary files a/.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-33125cafaf.zip and /dev/null differ diff --git a/.yarn/cache/define-property-npm-0.2.5-44a0da3575-85af107072.zip b/.yarn/cache/define-property-npm-0.2.5-44a0da3575-85af107072.zip deleted file mode 100644 index f6d88ece..00000000 Binary files a/.yarn/cache/define-property-npm-0.2.5-44a0da3575-85af107072.zip and /dev/null differ diff --git a/.yarn/cache/define-property-npm-1.0.0-e2fb9f44c6-5fbed11dac.zip b/.yarn/cache/define-property-npm-1.0.0-e2fb9f44c6-5fbed11dac.zip deleted file mode 100644 index 7f80d180..00000000 Binary files a/.yarn/cache/define-property-npm-1.0.0-e2fb9f44c6-5fbed11dac.zip and /dev/null differ diff --git a/.yarn/cache/define-property-npm-2.0.2-4a2067c3ba-3217ed53fc.zip b/.yarn/cache/define-property-npm-2.0.2-4a2067c3ba-3217ed53fc.zip deleted file mode 100644 index 8b77d42a..00000000 Binary files a/.yarn/cache/define-property-npm-2.0.2-4a2067c3ba-3217ed53fc.zip and /dev/null differ diff --git a/.yarn/cache/del-npm-6.0.0-fb1f14b406-5742891627.zip b/.yarn/cache/del-npm-6.0.0-fb1f14b406-5742891627.zip deleted file mode 100644 index f8649b30..00000000 Binary files a/.yarn/cache/del-npm-6.0.0-fb1f14b406-5742891627.zip and /dev/null differ diff --git a/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip b/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip deleted file mode 100644 index 71514340..00000000 Binary files a/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip and /dev/null differ diff --git a/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip b/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip deleted file mode 100644 index 9921e5ec..00000000 Binary files a/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip and /dev/null differ diff --git a/.yarn/cache/denodeify-npm-1.2.1-ea99c72a1c-f5371a9305.zip b/.yarn/cache/denodeify-npm-1.2.1-ea99c72a1c-f5371a9305.zip deleted file mode 100644 index 82e528fc..00000000 Binary files a/.yarn/cache/denodeify-npm-1.2.1-ea99c72a1c-f5371a9305.zip and /dev/null differ diff --git a/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip b/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip deleted file mode 100644 index a4e9f778..00000000 Binary files a/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip and /dev/null differ diff --git a/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip b/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip deleted file mode 100644 index 9729b794..00000000 Binary files a/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip and /dev/null differ diff --git a/.yarn/cache/deprecated-obj-npm-2.0.0-a2d0810be4-9ecb158b67.zip b/.yarn/cache/deprecated-obj-npm-2.0.0-a2d0810be4-9ecb158b67.zip deleted file mode 100644 index 92cbd196..00000000 Binary files a/.yarn/cache/deprecated-obj-npm-2.0.0-a2d0810be4-9ecb158b67.zip and /dev/null differ diff --git a/.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-f56a05e182.zip b/.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-f56a05e182.zip deleted file mode 100644 index 943bc441..00000000 Binary files a/.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-f56a05e182.zip and /dev/null differ diff --git a/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip b/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip deleted file mode 100644 index 3bc30ea4..00000000 Binary files a/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip and /dev/null differ diff --git a/.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip b/.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip deleted file mode 100644 index 95b9355c..00000000 Binary files a/.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip and /dev/null differ diff --git a/.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-3ed8addfc6.zip b/.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-3ed8addfc6.zip deleted file mode 100644 index 7d5acd95..00000000 Binary files a/.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-3ed8addfc6.zip and /dev/null differ diff --git a/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip b/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip deleted file mode 100644 index e292fec5..00000000 Binary files a/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip and /dev/null differ diff --git a/.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-555684f77e.zip b/.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-555684f77e.zip deleted file mode 100644 index bb3fdf81..00000000 Binary files a/.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-555684f77e.zip and /dev/null differ diff --git a/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-b4b28f1df5.zip b/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-b4b28f1df5.zip deleted file mode 100644 index ba3b2a76..00000000 Binary files a/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-b4b28f1df5.zip and /dev/null differ diff --git a/.yarn/cache/dom-serializer-npm-1.3.1-fcf2b18c0f-b0f3837a74.zip b/.yarn/cache/dom-serializer-npm-1.3.1-fcf2b18c0f-b0f3837a74.zip deleted file mode 100644 index 853e7426..00000000 Binary files a/.yarn/cache/dom-serializer-npm-1.3.1-fcf2b18c0f-b0f3837a74.zip and /dev/null differ diff --git a/.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-102ea83664.zip b/.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-102ea83664.zip deleted file mode 100644 index 9fa68c7e..00000000 Binary files a/.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-102ea83664.zip and /dev/null differ diff --git a/.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-24cb386198.zip b/.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-24cb386198.zip deleted file mode 100644 index 3d318bdc..00000000 Binary files a/.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-24cb386198.zip and /dev/null differ diff --git a/.yarn/cache/domexception-npm-2.0.1-81b20626ae-d638e9cb05.zip b/.yarn/cache/domexception-npm-2.0.1-81b20626ae-d638e9cb05.zip deleted file mode 100644 index e23684c9..00000000 Binary files a/.yarn/cache/domexception-npm-2.0.1-81b20626ae-d638e9cb05.zip and /dev/null differ diff --git a/.yarn/cache/domhandler-npm-4.2.0-e0e096a781-b7f92db6bc.zip b/.yarn/cache/domhandler-npm-4.2.0-e0e096a781-b7f92db6bc.zip deleted file mode 100644 index dc78853f..00000000 Binary files a/.yarn/cache/domhandler-npm-4.2.0-e0e096a781-b7f92db6bc.zip and /dev/null differ diff --git a/.yarn/cache/domhandler-npm-4.2.2-9a6cc9317e-502cb297ba.zip b/.yarn/cache/domhandler-npm-4.2.2-9a6cc9317e-502cb297ba.zip deleted file mode 100644 index 3895f6ac..00000000 Binary files a/.yarn/cache/domhandler-npm-4.2.2-9a6cc9317e-502cb297ba.zip and /dev/null differ diff --git a/.yarn/cache/domutils-npm-2.8.0-0325139e5c-1f316a03f0.zip b/.yarn/cache/domutils-npm-2.8.0-0325139e5c-1f316a03f0.zip deleted file mode 100644 index 3bcdf124..00000000 Binary files a/.yarn/cache/domutils-npm-2.8.0-0325139e5c-1f316a03f0.zip and /dev/null differ diff --git a/.yarn/cache/dot-case-npm-3.0.4-09675b5521-a65e351941.zip b/.yarn/cache/dot-case-npm-3.0.4-09675b5521-a65e351941.zip deleted file mode 100644 index 67efd7f8..00000000 Binary files a/.yarn/cache/dot-case-npm-3.0.4-09675b5521-a65e351941.zip and /dev/null differ diff --git a/.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-33b2561617.zip b/.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-33b2561617.zip deleted file mode 100644 index b916ff05..00000000 Binary files a/.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-33b2561617.zip and /dev/null differ diff --git a/.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2f8e9d93d0.zip b/.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2f8e9d93d0.zip deleted file mode 100644 index 74bd9b31..00000000 Binary files a/.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2f8e9d93d0.zip and /dev/null differ diff --git a/.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-d43591f239.zip b/.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-d43591f239.zip deleted file mode 100644 index f5f17818..00000000 Binary files a/.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-d43591f239.zip and /dev/null differ diff --git a/.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip b/.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip deleted file mode 100644 index 458439cb..00000000 Binary files a/.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip and /dev/null differ diff --git a/.yarn/cache/ejs-npm-3.1.6-03db39fd15-f3882b5765.zip b/.yarn/cache/ejs-npm-3.1.6-03db39fd15-f3882b5765.zip deleted file mode 100644 index 724e1ddf..00000000 Binary files a/.yarn/cache/ejs-npm-3.1.6-03db39fd15-f3882b5765.zip and /dev/null differ diff --git a/.yarn/cache/electron-to-chromium-npm-1.3.728-19bf8572c2-d91371911f.zip b/.yarn/cache/electron-to-chromium-npm-1.3.728-19bf8572c2-d91371911f.zip deleted file mode 100644 index 9ffc7d36..00000000 Binary files a/.yarn/cache/electron-to-chromium-npm-1.3.728-19bf8572c2-d91371911f.zip and /dev/null differ diff --git a/.yarn/cache/electron-to-chromium-npm-1.5.27-03ccf9f126-aaafe122c0.zip b/.yarn/cache/electron-to-chromium-npm-1.5.27-03ccf9f126-aaafe122c0.zip deleted file mode 100644 index 5ad8474b..00000000 Binary files a/.yarn/cache/electron-to-chromium-npm-1.5.27-03ccf9f126-aaafe122c0.zip and /dev/null differ diff --git a/.yarn/cache/emittery-npm-0.7.2-4a6f20265e-8bbc1b2b34.zip b/.yarn/cache/emittery-npm-0.7.2-4a6f20265e-8bbc1b2b34.zip deleted file mode 100644 index 1c972255..00000000 Binary files a/.yarn/cache/emittery-npm-0.7.2-4a6f20265e-8bbc1b2b34.zip and /dev/null differ diff --git a/.yarn/cache/emoji-regex-npm-7.0.3-cfe9479bb3-9159b2228b.zip b/.yarn/cache/emoji-regex-npm-7.0.3-cfe9479bb3-9159b2228b.zip deleted file mode 100644 index 22e27d23..00000000 Binary files a/.yarn/cache/emoji-regex-npm-7.0.3-cfe9479bb3-9159b2228b.zip and /dev/null differ diff --git a/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-c72d67a682.zip b/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-c72d67a682.zip deleted file mode 100644 index 0b1929b9..00000000 Binary files a/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-c72d67a682.zip and /dev/null differ diff --git a/.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip b/.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip deleted file mode 100644 index e9badb76..00000000 Binary files a/.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip and /dev/null differ diff --git a/.yarn/cache/encodeurl-npm-2.0.0-3660bcc92a-abf5cd51b7.zip b/.yarn/cache/encodeurl-npm-2.0.0-3660bcc92a-abf5cd51b7.zip deleted file mode 100644 index 2a60a778..00000000 Binary files a/.yarn/cache/encodeurl-npm-2.0.0-3660bcc92a-abf5cd51b7.zip and /dev/null differ diff --git a/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip b/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip deleted file mode 100644 index 202e9318..00000000 Binary files a/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip and /dev/null differ diff --git a/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip b/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip deleted file mode 100644 index fecd2286..00000000 Binary files a/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip and /dev/null differ diff --git a/.yarn/cache/enquirer-npm-2.3.6-7899175762-751d14f037.zip b/.yarn/cache/enquirer-npm-2.3.6-7899175762-751d14f037.zip deleted file mode 100644 index 6bbc6bfa..00000000 Binary files a/.yarn/cache/enquirer-npm-2.3.6-7899175762-751d14f037.zip and /dev/null differ diff --git a/.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-2c765221ee.zip b/.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-2c765221ee.zip deleted file mode 100644 index 399a938a..00000000 Binary files a/.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-2c765221ee.zip and /dev/null differ diff --git a/.yarn/cache/entities-npm-3.0.1-21eeb201ba-3706e0292e.zip b/.yarn/cache/entities-npm-3.0.1-21eeb201ba-3706e0292e.zip deleted file mode 100644 index 45f0886d..00000000 Binary files a/.yarn/cache/entities-npm-3.0.1-21eeb201ba-3706e0292e.zip and /dev/null differ diff --git a/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip b/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip deleted file mode 100644 index 5fecf17a..00000000 Binary files a/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip and /dev/null differ diff --git a/.yarn/cache/envinfo-npm-7.14.0-624fecc5a5-0d9d711f2b.zip b/.yarn/cache/envinfo-npm-7.14.0-624fecc5a5-0d9d711f2b.zip deleted file mode 100644 index a5692f97..00000000 Binary files a/.yarn/cache/envinfo-npm-7.14.0-624fecc5a5-0d9d711f2b.zip and /dev/null differ diff --git a/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-1d20d825cd.zip b/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-1d20d825cd.zip deleted file mode 100644 index 7112b0a4..00000000 Binary files a/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-1d20d825cd.zip and /dev/null differ diff --git a/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-d547740aa2.zip b/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-d547740aa2.zip deleted file mode 100644 index d244f21c..00000000 Binary files a/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-d547740aa2.zip and /dev/null differ diff --git a/.yarn/cache/error-stack-parser-npm-2.1.4-5b9f7fc0c2-23db33135b.zip b/.yarn/cache/error-stack-parser-npm-2.1.4-5b9f7fc0c2-23db33135b.zip deleted file mode 100644 index 5b4be912..00000000 Binary files a/.yarn/cache/error-stack-parser-npm-2.1.4-5b9f7fc0c2-23db33135b.zip and /dev/null differ diff --git a/.yarn/cache/errorhandler-npm-1.5.1-bbeb9f9d1b-73b7abb08f.zip b/.yarn/cache/errorhandler-npm-1.5.1-bbeb9f9d1b-73b7abb08f.zip deleted file mode 100644 index 77a78437..00000000 Binary files a/.yarn/cache/errorhandler-npm-1.5.1-bbeb9f9d1b-73b7abb08f.zip and /dev/null differ diff --git a/.yarn/cache/es-abstract-npm-1.18.0-ac2faa8a98-98b2dd3778.zip b/.yarn/cache/es-abstract-npm-1.18.0-ac2faa8a98-98b2dd3778.zip deleted file mode 100644 index 3b2441ed..00000000 Binary files a/.yarn/cache/es-abstract-npm-1.18.0-ac2faa8a98-98b2dd3778.zip and /dev/null differ diff --git a/.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-74aeeefe27.zip b/.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-74aeeefe27.zip deleted file mode 100644 index a39be45e..00000000 Binary files a/.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-74aeeefe27.zip and /dev/null differ diff --git a/.yarn/cache/escalade-npm-3.1.1-e02da076aa-afa618e733.zip b/.yarn/cache/escalade-npm-3.1.1-e02da076aa-afa618e733.zip deleted file mode 100644 index 54a29c54..00000000 Binary files a/.yarn/cache/escalade-npm-3.1.1-e02da076aa-afa618e733.zip and /dev/null differ diff --git a/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-9d7169e396.zip b/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-9d7169e396.zip deleted file mode 100644 index a8ea564b..00000000 Binary files a/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-9d7169e396.zip and /dev/null differ diff --git a/.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-ce05c70c20.zip b/.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-ce05c70c20.zip deleted file mode 100644 index bcf798a5..00000000 Binary files a/.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-ce05c70c20.zip and /dev/null differ diff --git a/.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip b/.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip deleted file mode 100644 index d12a72b1..00000000 Binary files a/.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip and /dev/null differ diff --git a/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip b/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip deleted file mode 100644 index b7ea3be1..00000000 Binary files a/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip and /dev/null differ diff --git a/.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-9f8a2d5743.zip b/.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-9f8a2d5743.zip deleted file mode 100644 index 5150d4e5..00000000 Binary files a/.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-9f8a2d5743.zip and /dev/null differ diff --git a/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip b/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip deleted file mode 100644 index c23e416b..00000000 Binary files a/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip and /dev/null differ diff --git a/.yarn/cache/escodegen-npm-2.0.0-6450b02925-0f7e404b19.zip b/.yarn/cache/escodegen-npm-2.0.0-6450b02925-0f7e404b19.zip deleted file mode 100644 index 0137e87d..00000000 Binary files a/.yarn/cache/escodegen-npm-2.0.0-6450b02925-0f7e404b19.zip and /dev/null differ diff --git a/.yarn/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-8648ec4259.zip b/.yarn/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-8648ec4259.zip deleted file mode 100644 index 9ad97e20..00000000 Binary files a/.yarn/cache/eslint-config-prettier-npm-6.15.0-d2085588b4-8648ec4259.zip and /dev/null differ diff --git a/.yarn/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-3f4c7e0731.zip b/.yarn/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-3f4c7e0731.zip deleted file mode 100644 index 694e3fe7..00000000 Binary files a/.yarn/cache/eslint-config-prettier-npm-8.3.0-f540cd1f53-3f4c7e0731.zip and /dev/null differ diff --git a/.yarn/cache/eslint-npm-7.26.0-0bcc96e5d3-9a4d3ad7ce.zip b/.yarn/cache/eslint-npm-7.26.0-0bcc96e5d3-9a4d3ad7ce.zip deleted file mode 100644 index 212f1c5b..00000000 Binary files a/.yarn/cache/eslint-npm-7.26.0-0bcc96e5d3-9a4d3ad7ce.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-350867802b.zip b/.yarn/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-350867802b.zip deleted file mode 100644 index 41226467..00000000 Binary files a/.yarn/cache/eslint-plugin-compat-npm-3.9.0-7debde0f58-350867802b.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-4aa0d31a78.zip b/.yarn/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-4aa0d31a78.zip deleted file mode 100644 index a71b12cc..00000000 Binary files a/.yarn/cache/eslint-plugin-eslint-comments-npm-3.2.0-b1dc85dfb2-4aa0d31a78.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-cddcbd1884.zip b/.yarn/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-cddcbd1884.zip deleted file mode 100644 index 520e0bd6..00000000 Binary files a/.yarn/cache/eslint-plugin-flowtype-npm-2.50.3-42bac53448-cddcbd1884.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-b3594574d7.zip b/.yarn/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-b3594574d7.zip deleted file mode 100644 index f0bbca78..00000000 Binary files a/.yarn/cache/eslint-plugin-jest-npm-22.4.1-ebcac74c92-b3594574d7.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-418141c3b8.zip b/.yarn/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-418141c3b8.zip deleted file mode 100644 index e53125b8..00000000 Binary files a/.yarn/cache/eslint-plugin-jest-npm-24.3.6-8f4cddc7a2-418141c3b8.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-b2816b97d8.zip b/.yarn/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-b2816b97d8.zip deleted file mode 100644 index 4ed20cfb..00000000 Binary files a/.yarn/cache/eslint-plugin-prettier-npm-3.1.2-3a4770254f-b2816b97d8.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-9ad30325f5.zip b/.yarn/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-9ad30325f5.zip deleted file mode 100644 index d4240b00..00000000 Binary files a/.yarn/cache/eslint-plugin-prettier-npm-3.4.0-36b0696d09-9ad30325f5.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-2cdb3bce0d.zip b/.yarn/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-2cdb3bce0d.zip deleted file mode 100644 index af6a0f94..00000000 Binary files a/.yarn/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-2cdb3bce0d.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-react-native-globals-npm-0.1.2-1a654c3f21-ab91e8ecbb.zip b/.yarn/cache/eslint-plugin-react-native-globals-npm-0.1.2-1a654c3f21-ab91e8ecbb.zip deleted file mode 100644 index cce1ce2e..00000000 Binary files a/.yarn/cache/eslint-plugin-react-native-globals-npm-0.1.2-1a654c3f21-ab91e8ecbb.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-711abbaa86.zip b/.yarn/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-711abbaa86.zip deleted file mode 100644 index ba7e9cee..00000000 Binary files a/.yarn/cache/eslint-plugin-react-native-npm-3.10.0-934ef7871d-711abbaa86.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-812b310009.zip b/.yarn/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-812b310009.zip deleted file mode 100644 index 5a1db551..00000000 Binary files a/.yarn/cache/eslint-plugin-react-npm-7.23.2-884b3d3919-812b310009.zip and /dev/null differ diff --git a/.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-c541ef384c.zip b/.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-c541ef384c.zip deleted file mode 100644 index 311343f1..00000000 Binary files a/.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-c541ef384c.zip and /dev/null differ diff --git a/.yarn/cache/eslint-utils-npm-2.1.0-a3a7ebf4fa-a7e43a5154.zip b/.yarn/cache/eslint-utils-npm-2.1.0-a3a7ebf4fa-a7e43a5154.zip deleted file mode 100644 index 515bd5e8..00000000 Binary files a/.yarn/cache/eslint-utils-npm-2.1.0-a3a7ebf4fa-a7e43a5154.zip and /dev/null differ diff --git a/.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-595ab230e0.zip b/.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-595ab230e0.zip deleted file mode 100644 index 49b77261..00000000 Binary files a/.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-595ab230e0.zip and /dev/null differ diff --git a/.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-db4547eef5.zip b/.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-db4547eef5.zip deleted file mode 100644 index 86352d4c..00000000 Binary files a/.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-db4547eef5.zip and /dev/null differ diff --git a/.yarn/cache/espree-npm-7.3.1-8d8ea5d1e3-7cf230d4d7.zip b/.yarn/cache/espree-npm-7.3.1-8d8ea5d1e3-7cf230d4d7.zip deleted file mode 100644 index d316266d..00000000 Binary files a/.yarn/cache/espree-npm-7.3.1-8d8ea5d1e3-7cf230d4d7.zip and /dev/null differ diff --git a/.yarn/cache/esprima-npm-4.0.1-1084e98778-f1d3c622ad.zip b/.yarn/cache/esprima-npm-4.0.1-1084e98778-f1d3c622ad.zip deleted file mode 100644 index 8fb81bf9..00000000 Binary files a/.yarn/cache/esprima-npm-4.0.1-1084e98778-f1d3c622ad.zip and /dev/null differ diff --git a/.yarn/cache/esquery-npm-1.4.0-f39408b1a7-25b571ec54.zip b/.yarn/cache/esquery-npm-1.4.0-f39408b1a7-25b571ec54.zip deleted file mode 100644 index 071f2c09..00000000 Binary files a/.yarn/cache/esquery-npm-1.4.0-f39408b1a7-25b571ec54.zip and /dev/null differ diff --git a/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-44ffcd89e7.zip b/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-44ffcd89e7.zip deleted file mode 100644 index 9f84b01c..00000000 Binary files a/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-44ffcd89e7.zip and /dev/null differ diff --git a/.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-3f67ad02b6.zip b/.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-3f67ad02b6.zip deleted file mode 100644 index cd68a96d..00000000 Binary files a/.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-3f67ad02b6.zip and /dev/null differ diff --git a/.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-9740a8fa42.zip b/.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-9740a8fa42.zip deleted file mode 100644 index 6b347aa9..00000000 Binary files a/.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-9740a8fa42.zip and /dev/null differ diff --git a/.yarn/cache/esutils-npm-2.0.3-f865beafd5-b23acd2479.zip b/.yarn/cache/esutils-npm-2.0.3-f865beafd5-b23acd2479.zip deleted file mode 100644 index 9c5e4579..00000000 Binary files a/.yarn/cache/esutils-npm-2.0.3-f865beafd5-b23acd2479.zip and /dev/null differ diff --git a/.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip b/.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip deleted file mode 100644 index e4f07e5f..00000000 Binary files a/.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip and /dev/null differ diff --git a/.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-49ff46c3a7.zip b/.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-49ff46c3a7.zip deleted file mode 100644 index 86ff2ff3..00000000 Binary files a/.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-49ff46c3a7.zip and /dev/null differ diff --git a/.yarn/cache/exec-sh-npm-0.3.6-8a29d03ae2-48abc4a3fc.zip b/.yarn/cache/exec-sh-npm-0.3.6-8a29d03ae2-48abc4a3fc.zip deleted file mode 100644 index 59218ea1..00000000 Binary files a/.yarn/cache/exec-sh-npm-0.3.6-8a29d03ae2-48abc4a3fc.zip and /dev/null differ diff --git a/.yarn/cache/execa-npm-1.0.0-7028e37029-9b7a0077ba.zip b/.yarn/cache/execa-npm-1.0.0-7028e37029-9b7a0077ba.zip deleted file mode 100644 index 2e5be31e..00000000 Binary files a/.yarn/cache/execa-npm-1.0.0-7028e37029-9b7a0077ba.zip and /dev/null differ diff --git a/.yarn/cache/execa-npm-4.0.3-b70e1b2212-ba7984e015.zip b/.yarn/cache/execa-npm-4.0.3-b70e1b2212-ba7984e015.zip deleted file mode 100644 index 46ab2d60..00000000 Binary files a/.yarn/cache/execa-npm-4.0.3-b70e1b2212-ba7984e015.zip and /dev/null differ diff --git a/.yarn/cache/execa-npm-4.1.0-cc675b4189-ed58e41fe4.zip b/.yarn/cache/execa-npm-4.1.0-cc675b4189-ed58e41fe4.zip deleted file mode 100644 index 91e42d7a..00000000 Binary files a/.yarn/cache/execa-npm-4.1.0-cc675b4189-ed58e41fe4.zip and /dev/null differ diff --git a/.yarn/cache/execa-npm-5.1.1-191347acf5-8ada91f2d7.zip b/.yarn/cache/execa-npm-5.1.1-191347acf5-8ada91f2d7.zip deleted file mode 100644 index 9b1fa7ec..00000000 Binary files a/.yarn/cache/execa-npm-5.1.1-191347acf5-8ada91f2d7.zip and /dev/null differ diff --git a/.yarn/cache/exit-npm-0.1.2-ef3761a67d-387555050c.zip b/.yarn/cache/exit-npm-0.1.2-ef3761a67d-387555050c.zip deleted file mode 100644 index 8cda4743..00000000 Binary files a/.yarn/cache/exit-npm-0.1.2-ef3761a67d-387555050c.zip and /dev/null differ diff --git a/.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-aa4acc6208.zip b/.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-aa4acc6208.zip deleted file mode 100644 index 8b5e98f8..00000000 Binary files a/.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-aa4acc6208.zip and /dev/null differ diff --git a/.yarn/cache/expect-npm-26.6.2-256ea90344-fd81bfff9a.zip b/.yarn/cache/expect-npm-26.6.2-256ea90344-fd81bfff9a.zip deleted file mode 100644 index 7602eee3..00000000 Binary files a/.yarn/cache/expect-npm-26.6.2-256ea90344-fd81bfff9a.zip and /dev/null differ diff --git a/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-2d9bbb6473.zip b/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-2d9bbb6473.zip deleted file mode 100644 index 8c436166..00000000 Binary files a/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-2d9bbb6473.zip and /dev/null differ diff --git a/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-59e89e2dc7.zip b/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-59e89e2dc7.zip deleted file mode 100644 index 892f8141..00000000 Binary files a/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-59e89e2dc7.zip and /dev/null differ diff --git a/.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-8fb58d9d7a.zip b/.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-8fb58d9d7a.zip deleted file mode 100644 index ba821370..00000000 Binary files a/.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-8fb58d9d7a.zip and /dev/null differ diff --git a/.yarn/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-a920b0cd58.zip b/.yarn/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-a920b0cd58.zip deleted file mode 100644 index ad15ea9a..00000000 Binary files a/.yarn/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-a920b0cd58.zip and /dev/null differ diff --git a/.yarn/cache/external-editor-npm-3.1.0-878e7807af-776dff1d64.zip b/.yarn/cache/external-editor-npm-3.1.0-878e7807af-776dff1d64.zip deleted file mode 100644 index 69ebef4d..00000000 Binary files a/.yarn/cache/external-editor-npm-3.1.0-878e7807af-776dff1d64.zip and /dev/null differ diff --git a/.yarn/cache/extglob-npm-2.0.4-0f39bc9899-6869edd48d.zip b/.yarn/cache/extglob-npm-2.0.4-0f39bc9899-6869edd48d.zip deleted file mode 100644 index 6b194da6..00000000 Binary files a/.yarn/cache/extglob-npm-2.0.4-0f39bc9899-6869edd48d.zip and /dev/null differ diff --git a/.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-26967d6c7e.zip b/.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-26967d6c7e.zip deleted file mode 100644 index 8f6723f3..00000000 Binary files a/.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-26967d6c7e.zip and /dev/null differ diff --git a/.yarn/cache/extsprintf-npm-1.4.0-2b015bcaab-c1e6cc79d7.zip b/.yarn/cache/extsprintf-npm-1.4.0-2b015bcaab-c1e6cc79d7.zip deleted file mode 100644 index 0f184b96..00000000 Binary files a/.yarn/cache/extsprintf-npm-1.4.0-2b015bcaab-c1e6cc79d7.zip and /dev/null differ diff --git a/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip b/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip deleted file mode 100644 index c0600899..00000000 Binary files a/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip and /dev/null differ diff --git a/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-f62419b3d7.zip b/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-f62419b3d7.zip deleted file mode 100644 index b651d032..00000000 Binary files a/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-f62419b3d7.zip and /dev/null differ diff --git a/.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-d417aef0c5.zip b/.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-d417aef0c5.zip deleted file mode 100644 index 87abf5e0..00000000 Binary files a/.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-d417aef0c5.zip and /dev/null differ diff --git a/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-222512e931.zip b/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-222512e931.zip deleted file mode 100644 index 45463c13..00000000 Binary files a/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-222512e931.zip and /dev/null differ diff --git a/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-2c20055c1f.zip b/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-2c20055c1f.zip deleted file mode 100644 index 1f716c4a..00000000 Binary files a/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-2c20055c1f.zip and /dev/null differ diff --git a/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-eb7e220ecf.zip b/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-eb7e220ecf.zip deleted file mode 100644 index faf077d5..00000000 Binary files a/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-eb7e220ecf.zip and /dev/null differ diff --git a/.yarn/cache/fast-xml-parser-npm-4.5.0-353a57f69a-dc9571c10e.zip b/.yarn/cache/fast-xml-parser-npm-4.5.0-353a57f69a-dc9571c10e.zip deleted file mode 100644 index 816fc82b..00000000 Binary files a/.yarn/cache/fast-xml-parser-npm-4.5.0-353a57f69a-dc9571c10e.zip and /dev/null differ diff --git a/.yarn/cache/fastq-npm-1.11.0-840a129ad5-818f85ae47.zip b/.yarn/cache/fastq-npm-1.11.0-840a129ad5-818f85ae47.zip deleted file mode 100644 index c0901b84..00000000 Binary files a/.yarn/cache/fastq-npm-1.11.0-840a129ad5-818f85ae47.zip and /dev/null differ diff --git a/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-9a03efc7d4.zip b/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-9a03efc7d4.zip deleted file mode 100644 index 37333a94..00000000 Binary files a/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-9a03efc7d4.zip and /dev/null differ diff --git a/.yarn/cache/figures-npm-3.2.0-85d357e955-a3bf94e001.zip b/.yarn/cache/figures-npm-3.2.0-85d357e955-a3bf94e001.zip deleted file mode 100644 index fc6eb5fe..00000000 Binary files a/.yarn/cache/figures-npm-3.2.0-85d357e955-a3bf94e001.zip and /dev/null differ diff --git a/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-099bb9d4ab.zip b/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-099bb9d4ab.zip deleted file mode 100644 index 5169985e..00000000 Binary files a/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-099bb9d4ab.zip and /dev/null differ diff --git a/.yarn/cache/filelist-npm-1.0.2-d98495ab20-1de9ff4fa8.zip b/.yarn/cache/filelist-npm-1.0.2-d98495ab20-1de9ff4fa8.zip deleted file mode 100644 index 487b193f..00000000 Binary files a/.yarn/cache/filelist-npm-1.0.2-d98495ab20-1de9ff4fa8.zip and /dev/null differ diff --git a/.yarn/cache/fill-range-npm-4.0.0-95a6e45784-68be23b3c4.zip b/.yarn/cache/fill-range-npm-4.0.0-95a6e45784-68be23b3c4.zip deleted file mode 100644 index b38a3e0e..00000000 Binary files a/.yarn/cache/fill-range-npm-4.0.0-95a6e45784-68be23b3c4.zip and /dev/null differ diff --git a/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-e260f7592f.zip b/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-e260f7592f.zip deleted file mode 100644 index 7be5ed27..00000000 Binary files a/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-e260f7592f.zip and /dev/null differ diff --git a/.yarn/cache/fill-range-npm-7.1.1-bf491486db-a7095cb39e.zip b/.yarn/cache/fill-range-npm-7.1.1-bf491486db-a7095cb39e.zip deleted file mode 100644 index 2dbb57d4..00000000 Binary files a/.yarn/cache/fill-range-npm-7.1.1-bf491486db-a7095cb39e.zip and /dev/null differ diff --git a/.yarn/cache/filter-obj-npm-1.1.0-84128fc26d-9d681939ee.zip b/.yarn/cache/filter-obj-npm-1.1.0-84128fc26d-9d681939ee.zip deleted file mode 100644 index 376cb3f0..00000000 Binary files a/.yarn/cache/filter-obj-npm-1.1.0-84128fc26d-9d681939ee.zip and /dev/null differ diff --git a/.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-351e99a889.zip b/.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-351e99a889.zip deleted file mode 100644 index 5b687722..00000000 Binary files a/.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-351e99a889.zip and /dev/null differ diff --git a/.yarn/cache/find-cache-dir-npm-2.1.0-772aa82638-60ad475a6d.zip b/.yarn/cache/find-cache-dir-npm-2.1.0-772aa82638-60ad475a6d.zip deleted file mode 100644 index 874883a6..00000000 Binary files a/.yarn/cache/find-cache-dir-npm-2.1.0-772aa82638-60ad475a6d.zip and /dev/null differ diff --git a/.yarn/cache/find-up-npm-1.1.2-22f047c6a9-a2cb9f4c9f.zip b/.yarn/cache/find-up-npm-1.1.2-22f047c6a9-a2cb9f4c9f.zip deleted file mode 100644 index 1afc8bd7..00000000 Binary files a/.yarn/cache/find-up-npm-1.1.2-22f047c6a9-a2cb9f4c9f.zip and /dev/null differ diff --git a/.yarn/cache/find-up-npm-2.1.0-9f6cb1765c-43284fe4da.zip b/.yarn/cache/find-up-npm-2.1.0-9f6cb1765c-43284fe4da.zip deleted file mode 100644 index 6b2c2d9d..00000000 Binary files a/.yarn/cache/find-up-npm-2.1.0-9f6cb1765c-43284fe4da.zip and /dev/null differ diff --git a/.yarn/cache/find-up-npm-3.0.0-a2d4b1b317-38eba3fe7a.zip b/.yarn/cache/find-up-npm-3.0.0-a2d4b1b317-38eba3fe7a.zip deleted file mode 100644 index d716129c..00000000 Binary files a/.yarn/cache/find-up-npm-3.0.0-a2d4b1b317-38eba3fe7a.zip and /dev/null differ diff --git a/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip b/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip deleted file mode 100644 index 6c1c05a3..00000000 Binary files a/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip and /dev/null differ diff --git a/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip b/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip deleted file mode 100644 index 034f3a07..00000000 Binary files a/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip and /dev/null differ diff --git a/.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-9fe5d0cb97.zip b/.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-9fe5d0cb97.zip deleted file mode 100644 index 8fad0082..00000000 Binary files a/.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-9fe5d0cb97.zip and /dev/null differ diff --git a/.yarn/cache/flat-npm-5.0.2-12748102a5-72479e651c.zip b/.yarn/cache/flat-npm-5.0.2-12748102a5-72479e651c.zip deleted file mode 100644 index 5f3b2bb2..00000000 Binary files a/.yarn/cache/flat-npm-5.0.2-12748102a5-72479e651c.zip and /dev/null differ diff --git a/.yarn/cache/flatted-npm-3.1.1-ffd80d62a2-2ce58ed083.zip b/.yarn/cache/flatted-npm-3.1.1-ffd80d62a2-2ce58ed083.zip deleted file mode 100644 index cad4f068..00000000 Binary files a/.yarn/cache/flatted-npm-3.1.1-ffd80d62a2-2ce58ed083.zip and /dev/null differ diff --git a/.yarn/cache/flow-enums-runtime-npm-0.0.6-e57295284d-df54ec17f6.zip b/.yarn/cache/flow-enums-runtime-npm-0.0.6-e57295284d-df54ec17f6.zip deleted file mode 100644 index 42bca511..00000000 Binary files a/.yarn/cache/flow-enums-runtime-npm-0.0.6-e57295284d-df54ec17f6.zip and /dev/null differ diff --git a/.yarn/cache/flow-parser-npm-0.246.0-6e76074a65-db5c6c2684.zip b/.yarn/cache/flow-parser-npm-0.246.0-6e76074a65-db5c6c2684.zip deleted file mode 100644 index 4c40da5b..00000000 Binary files a/.yarn/cache/flow-parser-npm-0.246.0-6e76074a65-db5c6c2684.zip and /dev/null differ diff --git a/.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-09f4ae93ce.zip b/.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-09f4ae93ce.zip deleted file mode 100644 index 51aeea2f..00000000 Binary files a/.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-09f4ae93ce.zip and /dev/null differ diff --git a/.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-c1e1644d5e.zip b/.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-c1e1644d5e.zip deleted file mode 100644 index 01ab2ac9..00000000 Binary files a/.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-c1e1644d5e.zip and /dev/null differ diff --git a/.yarn/cache/form-data-npm-2.3.3-c016cc11c0-1b6f3ccbf4.zip b/.yarn/cache/form-data-npm-2.3.3-c016cc11c0-1b6f3ccbf4.zip deleted file mode 100644 index 0d6ac713..00000000 Binary files a/.yarn/cache/form-data-npm-2.3.3-c016cc11c0-1b6f3ccbf4.zip and /dev/null differ diff --git a/.yarn/cache/form-data-npm-3.0.0-b01f488350-aea890ae3e.zip b/.yarn/cache/form-data-npm-3.0.0-b01f488350-aea890ae3e.zip deleted file mode 100644 index 48a6443d..00000000 Binary files a/.yarn/cache/form-data-npm-3.0.0-b01f488350-aea890ae3e.zip and /dev/null differ diff --git a/.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-1cbbd0b011.zip b/.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-1cbbd0b011.zip deleted file mode 100644 index df94393a..00000000 Binary files a/.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-1cbbd0b011.zip and /dev/null differ diff --git a/.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-64c88e489b.zip b/.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-64c88e489b.zip deleted file mode 100644 index 2001de95..00000000 Binary files a/.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-64c88e489b.zip and /dev/null differ diff --git a/.yarn/cache/fs-extra-npm-8.1.0-197473387f-6fb12449f5.zip b/.yarn/cache/fs-extra-npm-8.1.0-197473387f-6fb12449f5.zip deleted file mode 100644 index ff210c08..00000000 Binary files a/.yarn/cache/fs-extra-npm-8.1.0-197473387f-6fb12449f5.zip and /dev/null differ diff --git a/.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-08600da1b4.zip b/.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-08600da1b4.zip deleted file mode 100644 index 72681798..00000000 Binary files a/.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-08600da1b4.zip and /dev/null differ diff --git a/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-03191781e9.zip b/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-03191781e9.zip deleted file mode 100644 index 61d7b893..00000000 Binary files a/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-03191781e9.zip and /dev/null differ diff --git a/.yarn/cache/fs-readdir-recursive-npm-1.1.0-258e230a4b-d5e3fd8456.zip b/.yarn/cache/fs-readdir-recursive-npm-1.1.0-258e230a4b-d5e3fd8456.zip deleted file mode 100644 index cd929043..00000000 Binary files a/.yarn/cache/fs-readdir-recursive-npm-1.1.0-258e230a4b-d5e3fd8456.zip and /dev/null differ diff --git a/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-e703107c28.zip b/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-e703107c28.zip deleted file mode 100644 index c1ce2993..00000000 Binary files a/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-e703107c28.zip and /dev/null differ diff --git a/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-6b5b6f5692.zip b/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-6b5b6f5692.zip deleted file mode 100644 index 81629241..00000000 Binary files a/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-6b5b6f5692.zip and /dev/null differ diff --git a/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-4c1ade961d.zip b/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-4c1ade961d.zip deleted file mode 100644 index 7164f878..00000000 Binary files a/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-4c1ade961d.zip and /dev/null differ diff --git a/.yarn/cache/fsevents-patch-19706e7e35-10.zip b/.yarn/cache/fsevents-patch-19706e7e35-10.zip deleted file mode 100644 index aff1ab12..00000000 Binary files a/.yarn/cache/fsevents-patch-19706e7e35-10.zip and /dev/null differ diff --git a/.yarn/cache/fsevents-patch-6b67494872-10.zip b/.yarn/cache/fsevents-patch-6b67494872-10.zip deleted file mode 100644 index 9887ada7..00000000 Binary files a/.yarn/cache/fsevents-patch-6b67494872-10.zip and /dev/null differ diff --git a/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-d83f296803.zip b/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-d83f296803.zip deleted file mode 100644 index b10b9658..00000000 Binary files a/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-d83f296803.zip and /dev/null differ diff --git a/.yarn/cache/functional-red-black-tree-npm-1.0.1-ccfe924dcd-debe73e922.zip b/.yarn/cache/functional-red-black-tree-npm-1.0.1-ccfe924dcd-debe73e922.zip deleted file mode 100644 index 33f504c8..00000000 Binary files a/.yarn/cache/functional-red-black-tree-npm-1.0.1-ccfe924dcd-debe73e922.zip and /dev/null differ diff --git a/.yarn/cache/gauge-npm-2.7.4-2189a73529-0db20a7def.zip b/.yarn/cache/gauge-npm-2.7.4-2189a73529-0db20a7def.zip deleted file mode 100644 index eb0fc938..00000000 Binary files a/.yarn/cache/gauge-npm-2.7.4-2189a73529-0db20a7def.zip and /dev/null differ diff --git a/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-17d8333460.zip b/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-17d8333460.zip deleted file mode 100644 index 0b0604b2..00000000 Binary files a/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-17d8333460.zip and /dev/null differ diff --git a/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip b/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip deleted file mode 100644 index 0aa2c9cd..00000000 Binary files a/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip and /dev/null differ diff --git a/.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-7143f5407b.zip b/.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-7143f5407b.zip deleted file mode 100644 index bed44de5..00000000 Binary files a/.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-7143f5407b.zip and /dev/null differ diff --git a/.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip b/.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip deleted file mode 100644 index 3ea9023c..00000000 Binary files a/.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip and /dev/null differ diff --git a/.yarn/cache/get-pkg-repo-npm-1.4.0-2e8b78f4cf-c81dd33b33.zip b/.yarn/cache/get-pkg-repo-npm-1.4.0-2e8b78f4cf-c81dd33b33.zip deleted file mode 100644 index 1ee5c5c0..00000000 Binary files a/.yarn/cache/get-pkg-repo-npm-1.4.0-2e8b78f4cf-c81dd33b33.zip and /dev/null differ diff --git a/.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-4f73d3fe05.zip b/.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-4f73d3fe05.zip deleted file mode 100644 index eea9cd6d..00000000 Binary files a/.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-4f73d3fe05.zip and /dev/null differ diff --git a/.yarn/cache/get-stdin-npm-6.0.0-22ebabe125-593f6fb4ff.zip b/.yarn/cache/get-stdin-npm-6.0.0-22ebabe125-593f6fb4ff.zip deleted file mode 100644 index ccfc6978..00000000 Binary files a/.yarn/cache/get-stdin-npm-6.0.0-22ebabe125-593f6fb4ff.zip and /dev/null differ diff --git a/.yarn/cache/get-stream-npm-4.1.0-314d430a5d-12673e8aeb.zip b/.yarn/cache/get-stream-npm-4.1.0-314d430a5d-12673e8aeb.zip deleted file mode 100644 index 74e5beed..00000000 Binary files a/.yarn/cache/get-stream-npm-4.1.0-314d430a5d-12673e8aeb.zip and /dev/null differ diff --git a/.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-13a73148dc.zip b/.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-13a73148dc.zip deleted file mode 100644 index c0eecf53..00000000 Binary files a/.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-13a73148dc.zip and /dev/null differ diff --git a/.yarn/cache/get-stream-npm-6.0.1-83e51a4642-781266d297.zip b/.yarn/cache/get-stream-npm-6.0.1-83e51a4642-781266d297.zip deleted file mode 100644 index d81902ee..00000000 Binary files a/.yarn/cache/get-stream-npm-6.0.1-83e51a4642-781266d297.zip and /dev/null differ diff --git a/.yarn/cache/get-value-npm-2.0.6-03cd422e0a-5c3b99cb53.zip b/.yarn/cache/get-value-npm-2.0.6-03cd422e0a-5c3b99cb53.zip deleted file mode 100644 index 101e5bb8..00000000 Binary files a/.yarn/cache/get-value-npm-2.0.6-03cd422e0a-5c3b99cb53.zip and /dev/null differ diff --git a/.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip b/.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip deleted file mode 100644 index c0a0abf6..00000000 Binary files a/.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip and /dev/null differ diff --git a/.yarn/cache/gh-got-npm-8.1.0-7e62a35c76-2eeae560c0.zip b/.yarn/cache/gh-got-npm-8.1.0-7e62a35c76-2eeae560c0.zip deleted file mode 100644 index 4891cf89..00000000 Binary files a/.yarn/cache/gh-got-npm-8.1.0-7e62a35c76-2eeae560c0.zip and /dev/null differ diff --git a/.yarn/cache/git-raw-commits-npm-2.0.10-66e3a843dd-090509e423.zip b/.yarn/cache/git-raw-commits-npm-2.0.10-66e3a843dd-090509e423.zip deleted file mode 100644 index a6f0262f..00000000 Binary files a/.yarn/cache/git-raw-commits-npm-2.0.10-66e3a843dd-090509e423.zip and /dev/null differ diff --git a/.yarn/cache/git-remote-origin-url-npm-2.0.0-319debe0d1-85263a09c0.zip b/.yarn/cache/git-remote-origin-url-npm-2.0.0-319debe0d1-85263a09c0.zip deleted file mode 100644 index dff9fcc5..00000000 Binary files a/.yarn/cache/git-remote-origin-url-npm-2.0.0-319debe0d1-85263a09c0.zip and /dev/null differ diff --git a/.yarn/cache/git-semver-tags-npm-4.1.1-93b9747811-ab2ad6c7c8.zip b/.yarn/cache/git-semver-tags-npm-4.1.1-93b9747811-ab2ad6c7c8.zip deleted file mode 100644 index 779c1115..00000000 Binary files a/.yarn/cache/git-semver-tags-npm-4.1.1-93b9747811-ab2ad6c7c8.zip and /dev/null differ diff --git a/.yarn/cache/git-up-npm-4.0.2-3cd4003c69-05b1fa309f.zip b/.yarn/cache/git-up-npm-4.0.2-3cd4003c69-05b1fa309f.zip deleted file mode 100644 index b08e97ad..00000000 Binary files a/.yarn/cache/git-up-npm-4.0.2-3cd4003c69-05b1fa309f.zip and /dev/null differ diff --git a/.yarn/cache/git-url-parse-npm-11.3.0-12b198debf-1d8df1a49e.zip b/.yarn/cache/git-url-parse-npm-11.3.0-12b198debf-1d8df1a49e.zip deleted file mode 100644 index d29fd13d..00000000 Binary files a/.yarn/cache/git-url-parse-npm-11.3.0-12b198debf-1d8df1a49e.zip and /dev/null differ diff --git a/.yarn/cache/gitconfiglocal-npm-1.0.0-905970379d-e6d2764c15.zip b/.yarn/cache/gitconfiglocal-npm-1.0.0-905970379d-e6d2764c15.zip deleted file mode 100644 index f7f12690..00000000 Binary files a/.yarn/cache/gitconfiglocal-npm-1.0.0-905970379d-e6d2764c15.zip and /dev/null differ diff --git a/.yarn/cache/github-username-npm-5.0.1-83a4b8d1c6-916b9e0eff.zip b/.yarn/cache/github-username-npm-5.0.1-83a4b8d1c6-916b9e0eff.zip deleted file mode 100644 index 72ada9f6..00000000 Binary files a/.yarn/cache/github-username-npm-5.0.1-83a4b8d1c6-916b9e0eff.zip and /dev/null differ diff --git a/.yarn/cache/glob-npm-7.1.7-5698ad9c48-ff5aab0386.zip b/.yarn/cache/glob-npm-7.1.7-5698ad9c48-ff5aab0386.zip deleted file mode 100644 index 762b5ef5..00000000 Binary files a/.yarn/cache/glob-npm-7.1.7-5698ad9c48-ff5aab0386.zip and /dev/null differ diff --git a/.yarn/cache/glob-parent-npm-3.1.0-31416ad085-653d559237.zip b/.yarn/cache/glob-parent-npm-3.1.0-31416ad085-653d559237.zip deleted file mode 100644 index 83a44fbb..00000000 Binary files a/.yarn/cache/glob-parent-npm-3.1.0-31416ad085-653d559237.zip and /dev/null differ diff --git a/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-32cd106ce8.zip b/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-32cd106ce8.zip deleted file mode 100644 index 50316090..00000000 Binary files a/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-32cd106ce8.zip and /dev/null differ diff --git a/.yarn/cache/global-dirs-npm-0.1.1-87c167e806-10624f5a8d.zip b/.yarn/cache/global-dirs-npm-0.1.1-87c167e806-10624f5a8d.zip deleted file mode 100644 index cbad7963..00000000 Binary files a/.yarn/cache/global-dirs-npm-0.1.1-87c167e806-10624f5a8d.zip and /dev/null differ diff --git a/.yarn/cache/global-dirs-npm-2.1.0-790e02e61c-f80b74032c.zip b/.yarn/cache/global-dirs-npm-2.1.0-790e02e61c-f80b74032c.zip deleted file mode 100644 index e15d4cc4..00000000 Binary files a/.yarn/cache/global-dirs-npm-2.1.0-790e02e61c-f80b74032c.zip and /dev/null differ diff --git a/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.zip b/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.zip deleted file mode 100644 index ce4cf702..00000000 Binary files a/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.zip and /dev/null differ diff --git a/.yarn/cache/globals-npm-12.4.0-02b5a6ba9c-11b38ef007.zip b/.yarn/cache/globals-npm-12.4.0-02b5a6ba9c-11b38ef007.zip deleted file mode 100644 index 34e97700..00000000 Binary files a/.yarn/cache/globals-npm-12.4.0-02b5a6ba9c-11b38ef007.zip and /dev/null differ diff --git a/.yarn/cache/globals-npm-13.8.0-0988f60ed8-27c147b501.zip b/.yarn/cache/globals-npm-13.8.0-0988f60ed8-27c147b501.zip deleted file mode 100644 index 8b88a195..00000000 Binary files a/.yarn/cache/globals-npm-13.8.0-0988f60ed8-27c147b501.zip and /dev/null differ diff --git a/.yarn/cache/globby-npm-11.0.1-b32c0f1cff-7b3b21802a.zip b/.yarn/cache/globby-npm-11.0.1-b32c0f1cff-7b3b21802a.zip deleted file mode 100644 index f9e8bd27..00000000 Binary files a/.yarn/cache/globby-npm-11.0.1-b32c0f1cff-7b3b21802a.zip and /dev/null differ diff --git a/.yarn/cache/globby-npm-11.0.3-bb0a10f600-774b23d76f.zip b/.yarn/cache/globby-npm-11.0.3-bb0a10f600-774b23d76f.zip deleted file mode 100644 index e6128cfd..00000000 Binary files a/.yarn/cache/globby-npm-11.0.3-bb0a10f600-774b23d76f.zip and /dev/null differ diff --git a/.yarn/cache/got-npm-11.7.0-cacb9b44fc-e3c6b87f23.zip b/.yarn/cache/got-npm-11.7.0-cacb9b44fc-e3c6b87f23.zip deleted file mode 100644 index 0f683403..00000000 Binary files a/.yarn/cache/got-npm-11.7.0-cacb9b44fc-e3c6b87f23.zip and /dev/null differ diff --git a/.yarn/cache/got-npm-9.6.0-80edc15fd0-fae3273b44.zip b/.yarn/cache/got-npm-9.6.0-80edc15fd0-fae3273b44.zip deleted file mode 100644 index b69a4621..00000000 Binary files a/.yarn/cache/got-npm-9.6.0-80edc15fd0-fae3273b44.zip and /dev/null differ diff --git a/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip b/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip deleted file mode 100644 index 62430427..00000000 Binary files a/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip and /dev/null differ diff --git a/.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-04e1001c39.zip b/.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-04e1001c39.zip deleted file mode 100644 index 6b334dec..00000000 Binary files a/.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-04e1001c39.zip and /dev/null differ diff --git a/.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-77f9abc3a8.zip b/.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-77f9abc3a8.zip deleted file mode 100644 index a88a8443..00000000 Binary files a/.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-77f9abc3a8.zip and /dev/null differ diff --git a/.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-617b1e689b.zip b/.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-617b1e689b.zip deleted file mode 100644 index 8e130ccb..00000000 Binary files a/.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-617b1e689b.zip and /dev/null differ diff --git a/.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip b/.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip deleted file mode 100644 index e9ea1757..00000000 Binary files a/.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip and /dev/null differ diff --git a/.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip b/.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip deleted file mode 100644 index 5ae256de..00000000 Binary files a/.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip and /dev/null differ diff --git a/.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip b/.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip deleted file mode 100644 index 95f1143f..00000000 Binary files a/.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip and /dev/null differ diff --git a/.yarn/cache/has-bigints-npm-1.0.1-1b93717a74-44ab558681.zip b/.yarn/cache/has-bigints-npm-1.0.1-1b93717a74-44ab558681.zip deleted file mode 100644 index 1f82d8f3..00000000 Binary files a/.yarn/cache/has-bigints-npm-1.0.1-1b93717a74-44ab558681.zip and /dev/null differ diff --git a/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip b/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip deleted file mode 100644 index 60eafa65..00000000 Binary files a/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip and /dev/null differ diff --git a/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip b/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip deleted file mode 100644 index 6f5845da..00000000 Binary files a/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip and /dev/null differ diff --git a/.yarn/cache/has-npm-1.0.3-b7f00631c1-a449f3185b.zip b/.yarn/cache/has-npm-1.0.3-b7f00631c1-a449f3185b.zip deleted file mode 100644 index 948b7fd5..00000000 Binary files a/.yarn/cache/has-npm-1.0.3-b7f00631c1-a449f3185b.zip and /dev/null differ diff --git a/.yarn/cache/has-symbols-npm-1.0.2-50e53af115-3d8b4f3c7d.zip b/.yarn/cache/has-symbols-npm-1.0.2-50e53af115-3d8b4f3c7d.zip deleted file mode 100644 index b1b7371c..00000000 Binary files a/.yarn/cache/has-symbols-npm-1.0.2-50e53af115-3d8b4f3c7d.zip and /dev/null differ diff --git a/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-041b4293ad.zip b/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-041b4293ad.zip deleted file mode 100644 index 65533d06..00000000 Binary files a/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-041b4293ad.zip and /dev/null differ diff --git a/.yarn/cache/has-value-npm-0.3.1-4a15b6c29f-29e2a1e657.zip b/.yarn/cache/has-value-npm-0.3.1-4a15b6c29f-29e2a1e657.zip deleted file mode 100644 index 8c018f17..00000000 Binary files a/.yarn/cache/has-value-npm-0.3.1-4a15b6c29f-29e2a1e657.zip and /dev/null differ diff --git a/.yarn/cache/has-value-npm-1.0.0-19d82fd04b-b9421d354e.zip b/.yarn/cache/has-value-npm-1.0.0-19d82fd04b-b9421d354e.zip deleted file mode 100644 index d6e71d68..00000000 Binary files a/.yarn/cache/has-value-npm-1.0.0-19d82fd04b-b9421d354e.zip and /dev/null differ diff --git a/.yarn/cache/has-values-npm-0.1.4-6b4397786d-ab1c4bcaf8.zip b/.yarn/cache/has-values-npm-0.1.4-6b4397786d-ab1c4bcaf8.zip deleted file mode 100644 index 94c02ad9..00000000 Binary files a/.yarn/cache/has-values-npm-0.1.4-6b4397786d-ab1c4bcaf8.zip and /dev/null differ diff --git a/.yarn/cache/has-values-npm-1.0.0-890c077bbd-77e6693f73.zip b/.yarn/cache/has-values-npm-1.0.0-890c077bbd-77e6693f73.zip deleted file mode 100644 index 7aebc1a6..00000000 Binary files a/.yarn/cache/has-values-npm-1.0.0-890c077bbd-77e6693f73.zip and /dev/null differ diff --git a/.yarn/cache/has-yarn-npm-2.1.0-b73f6750d9-5eb1d0bb85.zip b/.yarn/cache/has-yarn-npm-2.1.0-b73f6750d9-5eb1d0bb85.zip deleted file mode 100644 index cca0d8a3..00000000 Binary files a/.yarn/cache/has-yarn-npm-2.1.0-b73f6750d9-5eb1d0bb85.zip and /dev/null differ diff --git a/.yarn/cache/hermes-estree-npm-0.19.1-e23907b22e-dadafea5cf.zip b/.yarn/cache/hermes-estree-npm-0.19.1-e23907b22e-dadafea5cf.zip deleted file mode 100644 index 2385264a..00000000 Binary files a/.yarn/cache/hermes-estree-npm-0.19.1-e23907b22e-dadafea5cf.zip and /dev/null differ diff --git a/.yarn/cache/hermes-estree-npm-0.23.1-b96541fb28-b7ad78f530.zip b/.yarn/cache/hermes-estree-npm-0.23.1-b96541fb28-b7ad78f530.zip deleted file mode 100644 index f6510467..00000000 Binary files a/.yarn/cache/hermes-estree-npm-0.23.1-b96541fb28-b7ad78f530.zip and /dev/null differ diff --git a/.yarn/cache/hermes-parser-npm-0.19.1-ee11958fe7-4fd886ce3a.zip b/.yarn/cache/hermes-parser-npm-0.19.1-ee11958fe7-4fd886ce3a.zip deleted file mode 100644 index b20a9ad8..00000000 Binary files a/.yarn/cache/hermes-parser-npm-0.19.1-ee11958fe7-4fd886ce3a.zip and /dev/null differ diff --git a/.yarn/cache/hermes-parser-npm-0.23.1-031eeefaa0-de88df4f23.zip b/.yarn/cache/hermes-parser-npm-0.23.1-031eeefaa0-de88df4f23.zip deleted file mode 100644 index 22184a64..00000000 Binary files a/.yarn/cache/hermes-parser-npm-0.23.1-031eeefaa0-de88df4f23.zip and /dev/null differ diff --git a/.yarn/cache/hermes-profile-transformer-npm-0.0.6-80b3a74e21-92ffe2ad1b.zip b/.yarn/cache/hermes-profile-transformer-npm-0.0.6-80b3a74e21-92ffe2ad1b.zip deleted file mode 100644 index 6d527e53..00000000 Binary files a/.yarn/cache/hermes-profile-transformer-npm-0.0.6-80b3a74e21-92ffe2ad1b.zip and /dev/null differ diff --git a/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-96da7d4123.zip b/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-96da7d4123.zip deleted file mode 100644 index 2f95a7ae..00000000 Binary files a/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-96da7d4123.zip and /dev/null differ diff --git a/.yarn/cache/hosted-git-info-npm-4.0.2-7330924e0c-cb007a7201.zip b/.yarn/cache/hosted-git-info-npm-4.0.2-7330924e0c-cb007a7201.zip deleted file mode 100644 index 40308763..00000000 Binary files a/.yarn/cache/hosted-git-info-npm-4.0.2-7330924e0c-cb007a7201.zip and /dev/null differ diff --git a/.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-70365109ca.zip b/.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-70365109ca.zip deleted file mode 100644 index 7612a5db..00000000 Binary files a/.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-70365109ca.zip and /dev/null differ diff --git a/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-034d74029d.zip b/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-034d74029d.zip deleted file mode 100644 index 3137a4ef..00000000 Binary files a/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-034d74029d.zip and /dev/null differ diff --git a/.yarn/cache/htmlparser2-npm-7.1.2-35aba759f6-3f68d004fd.zip b/.yarn/cache/htmlparser2-npm-7.1.2-35aba759f6-3f68d004fd.zip deleted file mode 100644 index b2a41fd3..00000000 Binary files a/.yarn/cache/htmlparser2-npm-7.1.2-35aba759f6-3f68d004fd.zip and /dev/null differ diff --git a/.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-c9c29508b2.zip b/.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-c9c29508b2.zip deleted file mode 100644 index ad2df248..00000000 Binary files a/.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-c9c29508b2.zip and /dev/null differ diff --git a/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip b/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip deleted file mode 100644 index aa9494e3..00000000 Binary files a/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip and /dev/null differ diff --git a/.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-2e17f5519f.zip b/.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-2e17f5519f.zip deleted file mode 100644 index a47a5b41..00000000 Binary files a/.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-2e17f5519f.zip and /dev/null differ diff --git a/.yarn/cache/http-signature-npm-1.2.0-ee92426f34-2ff7112e6b.zip b/.yarn/cache/http-signature-npm-1.2.0-ee92426f34-2ff7112e6b.zip deleted file mode 100644 index 768ac957..00000000 Binary files a/.yarn/cache/http-signature-npm-1.2.0-ee92426f34-2ff7112e6b.zip and /dev/null differ diff --git a/.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-8097ee2699.zip b/.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-8097ee2699.zip deleted file mode 100644 index 2c76ad7b..00000000 Binary files a/.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-8097ee2699.zip and /dev/null differ diff --git a/.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-517037badc.zip b/.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-517037badc.zip deleted file mode 100644 index fab6788c..00000000 Binary files a/.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-517037badc.zip and /dev/null differ diff --git a/.yarn/cache/human-signals-npm-1.1.1-616b2586c2-6a58224dff.zip b/.yarn/cache/human-signals-npm-1.1.1-616b2586c2-6a58224dff.zip deleted file mode 100644 index 445a2f0a..00000000 Binary files a/.yarn/cache/human-signals-npm-1.1.1-616b2586c2-6a58224dff.zip and /dev/null differ diff --git a/.yarn/cache/human-signals-npm-2.1.0-f75815481d-df59be9e0a.zip b/.yarn/cache/human-signals-npm-2.1.0-f75815481d-df59be9e0a.zip deleted file mode 100644 index dcf34ab1..00000000 Binary files a/.yarn/cache/human-signals-npm-2.1.0-f75815481d-df59be9e0a.zip and /dev/null differ diff --git a/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip b/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip deleted file mode 100644 index c09856b3..00000000 Binary files a/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip and /dev/null differ diff --git a/.yarn/cache/husky-npm-6.0.0-384872ea98-7527e831c8.zip b/.yarn/cache/husky-npm-6.0.0-384872ea98-7527e831c8.zip deleted file mode 100644 index cff32ad6..00000000 Binary files a/.yarn/cache/husky-npm-6.0.0-384872ea98-7527e831c8.zip and /dev/null differ diff --git a/.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-6d3a2dac6e.zip b/.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-6d3a2dac6e.zip deleted file mode 100644 index 630fb169..00000000 Binary files a/.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-6d3a2dac6e.zip and /dev/null differ diff --git a/.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-ba81a32a54.zip b/.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-ba81a32a54.zip deleted file mode 100644 index b951426b..00000000 Binary files a/.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-ba81a32a54.zip and /dev/null differ diff --git a/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-d9f2557a59.zip b/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-d9f2557a59.zip deleted file mode 100644 index b44e5fba..00000000 Binary files a/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-d9f2557a59.zip and /dev/null differ diff --git a/.yarn/cache/ignore-npm-4.0.6-66c0d6543e-e04d6bd60d.zip b/.yarn/cache/ignore-npm-4.0.6-66c0d6543e-e04d6bd60d.zip deleted file mode 100644 index 4af10793..00000000 Binary files a/.yarn/cache/ignore-npm-4.0.6-66c0d6543e-e04d6bd60d.zip and /dev/null differ diff --git a/.yarn/cache/ignore-npm-5.1.8-aa9a49ada4-b3e8dceccb.zip b/.yarn/cache/ignore-npm-5.1.8-aa9a49ada4-b3e8dceccb.zip deleted file mode 100644 index 3adfccb6..00000000 Binary files a/.yarn/cache/ignore-npm-5.1.8-aa9a49ada4-b3e8dceccb.zip and /dev/null differ diff --git a/.yarn/cache/image-size-npm-1.1.1-4e6d664667-f28966dd3f.zip b/.yarn/cache/image-size-npm-1.1.1-4e6d664667-f28966dd3f.zip deleted file mode 100644 index 7b60fbb8..00000000 Binary files a/.yarn/cache/image-size-npm-1.1.1-4e6d664667-f28966dd3f.zip and /dev/null differ diff --git a/.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-f2c4230e83.zip b/.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-f2c4230e83.zip deleted file mode 100644 index 1d03ef64..00000000 Binary files a/.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-f2c4230e83.zip and /dev/null differ diff --git a/.yarn/cache/import-fresh-npm-2.0.0-8b4e6073aa-610255f975.zip b/.yarn/cache/import-fresh-npm-2.0.0-8b4e6073aa-610255f975.zip deleted file mode 100644 index d672e73e..00000000 Binary files a/.yarn/cache/import-fresh-npm-2.0.0-8b4e6073aa-610255f975.zip and /dev/null differ diff --git a/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip b/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip deleted file mode 100644 index 318d7b84..00000000 Binary files a/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip and /dev/null differ diff --git a/.yarn/cache/import-from-npm-3.0.0-8656bfd330-5040a7400e.zip b/.yarn/cache/import-from-npm-3.0.0-8656bfd330-5040a7400e.zip deleted file mode 100644 index 0639d4be..00000000 Binary files a/.yarn/cache/import-from-npm-3.0.0-8656bfd330-5040a7400e.zip and /dev/null differ diff --git a/.yarn/cache/import-lazy-npm-2.1.0-b128ce6959-05294f3b9d.zip b/.yarn/cache/import-lazy-npm-2.1.0-b128ce6959-05294f3b9d.zip deleted file mode 100644 index 9eabede0..00000000 Binary files a/.yarn/cache/import-lazy-npm-2.1.0-b128ce6959-05294f3b9d.zip and /dev/null differ diff --git a/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip b/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip deleted file mode 100644 index 9b595c45..00000000 Binary files a/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip and /dev/null differ diff --git a/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-2d30b157a9.zip b/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-2d30b157a9.zip deleted file mode 100644 index a74a0569..00000000 Binary files a/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-2d30b157a9.zip and /dev/null differ diff --git a/.yarn/cache/indent-string-npm-2.1.0-fe23253c76-2fe7124311.zip b/.yarn/cache/indent-string-npm-2.1.0-fe23253c76-2fe7124311.zip deleted file mode 100644 index 989f8cc9..00000000 Binary files a/.yarn/cache/indent-string-npm-2.1.0-fe23253c76-2fe7124311.zip and /dev/null differ diff --git a/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-cd3f5cbc9c.zip b/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-cd3f5cbc9c.zip deleted file mode 100644 index 60cfebbb..00000000 Binary files a/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-cd3f5cbc9c.zip and /dev/null differ diff --git a/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip b/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip deleted file mode 100644 index bdc70508..00000000 Binary files a/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip and /dev/null differ diff --git a/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-d2ebd65441.zip b/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-d2ebd65441.zip deleted file mode 100644 index e96f1bad..00000000 Binary files a/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-d2ebd65441.zip and /dev/null differ diff --git a/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip b/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip deleted file mode 100644 index db41a39c..00000000 Binary files a/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip and /dev/null differ diff --git a/.yarn/cache/ini-npm-1.3.7-188ee858c0-dc1239eb9a.zip b/.yarn/cache/ini-npm-1.3.7-188ee858c0-dc1239eb9a.zip deleted file mode 100644 index 2f005d74..00000000 Binary files a/.yarn/cache/ini-npm-1.3.7-188ee858c0-dc1239eb9a.zip and /dev/null differ diff --git a/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-314ae176e8.zip b/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-314ae176e8.zip deleted file mode 100644 index 1450e0bd..00000000 Binary files a/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-314ae176e8.zip and /dev/null differ diff --git a/.yarn/cache/inquirer-npm-7.3.3-9e86782610-052c6fce2d.zip b/.yarn/cache/inquirer-npm-7.3.3-9e86782610-052c6fce2d.zip deleted file mode 100644 index d80f99cc..00000000 Binary files a/.yarn/cache/inquirer-npm-7.3.3-9e86782610-052c6fce2d.zip and /dev/null differ diff --git a/.yarn/cache/internal-slot-npm-1.0.3-9e05eea002-1c6d22f797.zip b/.yarn/cache/internal-slot-npm-1.0.3-9e05eea002-1c6d22f797.zip deleted file mode 100644 index f5475aa4..00000000 Binary files a/.yarn/cache/internal-slot-npm-1.0.3-9e05eea002-1c6d22f797.zip and /dev/null differ diff --git a/.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-5beec568d3.zip b/.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-5beec568d3.zip deleted file mode 100644 index a237e1e2..00000000 Binary files a/.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-5beec568d3.zip and /dev/null differ diff --git a/.yarn/cache/invariant-npm-2.2.4-717fbdb119-cc3182d793.zip b/.yarn/cache/invariant-npm-2.2.4-717fbdb119-cc3182d793.zip deleted file mode 100644 index 710cf6cd..00000000 Binary files a/.yarn/cache/invariant-npm-2.2.4-717fbdb119-cc3182d793.zip and /dev/null differ diff --git a/.yarn/cache/ip-npm-1.1.5-af36318aa6-40a00572cf.zip b/.yarn/cache/ip-npm-1.1.5-af36318aa6-40a00572cf.zip deleted file mode 100644 index fa0bbc93..00000000 Binary files a/.yarn/cache/ip-npm-1.1.5-af36318aa6-40a00572cf.zip and /dev/null differ diff --git a/.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-9d16b2605e.zip b/.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-9d16b2605e.zip deleted file mode 100644 index 3d032041..00000000 Binary files a/.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-9d16b2605e.zip and /dev/null differ diff --git a/.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-3d629a086a.zip b/.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-3d629a086a.zip deleted file mode 100644 index 31a8e14e..00000000 Binary files a/.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-3d629a086a.zip and /dev/null differ diff --git a/.yarn/cache/is-accessor-descriptor-npm-1.0.0-d8ce016e98-8e475968e9.zip b/.yarn/cache/is-accessor-descriptor-npm-1.0.0-d8ce016e98-8e475968e9.zip deleted file mode 100644 index 98504caa..00000000 Binary files a/.yarn/cache/is-accessor-descriptor-npm-1.0.0-d8ce016e98-8e475968e9.zip and /dev/null differ diff --git a/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-73ced84fa3.zip b/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-73ced84fa3.zip deleted file mode 100644 index 2b56bb22..00000000 Binary files a/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-73ced84fa3.zip and /dev/null differ diff --git a/.yarn/cache/is-bigint-npm-1.0.2-db0dde4bd4-7e01ddae28.zip b/.yarn/cache/is-bigint-npm-1.0.2-db0dde4bd4-7e01ddae28.zip deleted file mode 100644 index fa4bcc1d..00000000 Binary files a/.yarn/cache/is-bigint-npm-1.0.2-db0dde4bd4-7e01ddae28.zip and /dev/null differ diff --git a/.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-a803c99e9d.zip b/.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-a803c99e9d.zip deleted file mode 100644 index 1f28b3b9..00000000 Binary files a/.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-a803c99e9d.zip and /dev/null differ diff --git a/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-078e51b4f9.zip b/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-078e51b4f9.zip deleted file mode 100644 index 4b78c1ae..00000000 Binary files a/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-078e51b4f9.zip and /dev/null differ diff --git a/.yarn/cache/is-boolean-object-npm-1.1.1-4a132c53e4-63fbf0841b.zip b/.yarn/cache/is-boolean-object-npm-1.1.1-4a132c53e4-63fbf0841b.zip deleted file mode 100644 index 1bd820e5..00000000 Binary files a/.yarn/cache/is-boolean-object-npm-1.1.1-4a132c53e4-63fbf0841b.zip and /dev/null differ diff --git a/.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-f63da109e7.zip b/.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-f63da109e7.zip deleted file mode 100644 index 9b010295..00000000 Binary files a/.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-f63da109e7.zip and /dev/null differ diff --git a/.yarn/cache/is-callable-npm-1.2.3-2a68c9d549-34d51c2c4a.zip b/.yarn/cache/is-callable-npm-1.2.3-2a68c9d549-34d51c2c4a.zip deleted file mode 100644 index 71edf745..00000000 Binary files a/.yarn/cache/is-callable-npm-1.2.3-2a68c9d549-34d51c2c4a.zip and /dev/null differ diff --git a/.yarn/cache/is-ci-npm-2.0.0-8662a0f445-77b8690575.zip b/.yarn/cache/is-ci-npm-2.0.0-8662a0f445-77b8690575.zip deleted file mode 100644 index c4543248..00000000 Binary files a/.yarn/cache/is-ci-npm-2.0.0-8662a0f445-77b8690575.zip and /dev/null differ diff --git a/.yarn/cache/is-core-module-npm-2.4.0-bae19c65cd-9b0f05c4ee.zip b/.yarn/cache/is-core-module-npm-2.4.0-bae19c65cd-9b0f05c4ee.zip deleted file mode 100644 index d7fe695d..00000000 Binary files a/.yarn/cache/is-core-module-npm-2.4.0-bae19c65cd-9b0f05c4ee.zip and /dev/null differ diff --git a/.yarn/cache/is-data-descriptor-npm-0.1.4-6f53f71c67-5c622e078b.zip b/.yarn/cache/is-data-descriptor-npm-0.1.4-6f53f71c67-5c622e078b.zip deleted file mode 100644 index ca3f0704..00000000 Binary files a/.yarn/cache/is-data-descriptor-npm-0.1.4-6f53f71c67-5c622e078b.zip and /dev/null differ diff --git a/.yarn/cache/is-data-descriptor-npm-1.0.0-f7d2e852ca-b8b1f13a53.zip b/.yarn/cache/is-data-descriptor-npm-1.0.0-f7d2e852ca-b8b1f13a53.zip deleted file mode 100644 index 335c6259..00000000 Binary files a/.yarn/cache/is-data-descriptor-npm-1.0.0-f7d2e852ca-b8b1f13a53.zip and /dev/null differ diff --git a/.yarn/cache/is-date-object-npm-1.0.4-bc85407e70-69a39c1036.zip b/.yarn/cache/is-date-object-npm-1.0.4-bc85407e70-69a39c1036.zip deleted file mode 100644 index 60facb00..00000000 Binary files a/.yarn/cache/is-date-object-npm-1.0.4-bc85407e70-69a39c1036.zip and /dev/null differ diff --git a/.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-b946ba8421.zip b/.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-b946ba8421.zip deleted file mode 100644 index 86a93599..00000000 Binary files a/.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-b946ba8421.zip and /dev/null differ diff --git a/.yarn/cache/is-descriptor-npm-1.0.2-5cfc02c444-e68059b333.zip b/.yarn/cache/is-descriptor-npm-1.0.2-5cfc02c444-e68059b333.zip deleted file mode 100644 index 8f51c8f0..00000000 Binary files a/.yarn/cache/is-descriptor-npm-1.0.2-5cfc02c444-e68059b333.zip and /dev/null differ diff --git a/.yarn/cache/is-directory-npm-0.3.1-e835db28ed-dce9a9d398.zip b/.yarn/cache/is-directory-npm-0.3.1-e835db28ed-dce9a9d398.zip deleted file mode 100644 index 9c193acc..00000000 Binary files a/.yarn/cache/is-directory-npm-0.3.1-e835db28ed-dce9a9d398.zip and /dev/null differ diff --git a/.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-3fef7ddbf0.zip b/.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-3fef7ddbf0.zip deleted file mode 100644 index 70c44640..00000000 Binary files a/.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-3fef7ddbf0.zip and /dev/null differ diff --git a/.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-3875571d20.zip b/.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-3875571d20.zip deleted file mode 100644 index e3eead3f..00000000 Binary files a/.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-3875571d20.zip and /dev/null differ diff --git a/.yarn/cache/is-extendable-npm-1.0.1-7095ad8b16-db07bc1e9d.zip b/.yarn/cache/is-extendable-npm-1.0.1-7095ad8b16-db07bc1e9d.zip deleted file mode 100644 index a2db00a2..00000000 Binary files a/.yarn/cache/is-extendable-npm-1.0.1-7095ad8b16-db07bc1e9d.zip and /dev/null differ diff --git a/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip b/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip deleted file mode 100644 index 0acbc56e..00000000 Binary files a/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip and /dev/null differ diff --git a/.yarn/cache/is-finite-npm-1.1.0-c6324c0f8f-532b97ed3d.zip b/.yarn/cache/is-finite-npm-1.1.0-c6324c0f8f-532b97ed3d.zip deleted file mode 100644 index d4f48eb9..00000000 Binary files a/.yarn/cache/is-finite-npm-1.1.0-c6324c0f8f-532b97ed3d.zip and /dev/null differ diff --git a/.yarn/cache/is-fullwidth-code-point-npm-1.0.0-0e436ba1ef-4d46a7465a.zip b/.yarn/cache/is-fullwidth-code-point-npm-1.0.0-0e436ba1ef-4d46a7465a.zip deleted file mode 100644 index 6d63e1f5..00000000 Binary files a/.yarn/cache/is-fullwidth-code-point-npm-1.0.0-0e436ba1ef-4d46a7465a.zip and /dev/null differ diff --git a/.yarn/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-eef9c6e15f.zip b/.yarn/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-eef9c6e15f.zip deleted file mode 100644 index 56f17d39..00000000 Binary files a/.yarn/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-eef9c6e15f.zip and /dev/null differ diff --git a/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip b/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip deleted file mode 100644 index dccc80a9..00000000 Binary files a/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip and /dev/null differ diff --git a/.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-a6ad5492cf.zip b/.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-a6ad5492cf.zip deleted file mode 100644 index c9e80742..00000000 Binary files a/.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-a6ad5492cf.zip and /dev/null differ diff --git a/.yarn/cache/is-git-dirty-npm-2.0.1-a42f1034ca-76a4b33d77.zip b/.yarn/cache/is-git-dirty-npm-2.0.1-a42f1034ca-76a4b33d77.zip deleted file mode 100644 index bec89256..00000000 Binary files a/.yarn/cache/is-git-dirty-npm-2.0.1-a42f1034ca-76a4b33d77.zip and /dev/null differ diff --git a/.yarn/cache/is-git-repository-npm-2.0.0-775ac048b7-9eba764379.zip b/.yarn/cache/is-git-repository-npm-2.0.0-775ac048b7-9eba764379.zip deleted file mode 100644 index 573d4c29..00000000 Binary files a/.yarn/cache/is-git-repository-npm-2.0.0-775ac048b7-9eba764379.zip and /dev/null differ diff --git a/.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9d483bca84.zip b/.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9d483bca84.zip deleted file mode 100644 index 74e7d83d..00000000 Binary files a/.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9d483bca84.zip and /dev/null differ diff --git a/.yarn/cache/is-glob-npm-4.0.1-341760116f-998cdc412d.zip b/.yarn/cache/is-glob-npm-4.0.1-341760116f-998cdc412d.zip deleted file mode 100644 index 33c7b0ea..00000000 Binary files a/.yarn/cache/is-glob-npm-4.0.1-341760116f-998cdc412d.zip and /dev/null differ diff --git a/.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-03ebad377d.zip b/.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-03ebad377d.zip deleted file mode 100644 index 4b41ce9e..00000000 Binary files a/.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-03ebad377d.zip and /dev/null differ diff --git a/.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-824808776e.zip b/.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-824808776e.zip deleted file mode 100644 index 0c1f90e0..00000000 Binary files a/.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-824808776e.zip and /dev/null differ diff --git a/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip b/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip deleted file mode 100644 index f981b1be..00000000 Binary files a/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip and /dev/null differ diff --git a/.yarn/cache/is-negative-zero-npm-2.0.1-d8f3dbcfe1-3a017d57c2.zip b/.yarn/cache/is-negative-zero-npm-2.0.1-d8f3dbcfe1-3a017d57c2.zip deleted file mode 100644 index f9406641..00000000 Binary files a/.yarn/cache/is-negative-zero-npm-2.0.1-d8f3dbcfe1-3a017d57c2.zip and /dev/null differ diff --git a/.yarn/cache/is-npm-npm-5.0.0-2758bcd54b-9baff02b0c.zip b/.yarn/cache/is-npm-npm-5.0.0-2758bcd54b-9baff02b0c.zip deleted file mode 100644 index e09ab33f..00000000 Binary files a/.yarn/cache/is-npm-npm-5.0.0-2758bcd54b-9baff02b0c.zip and /dev/null differ diff --git a/.yarn/cache/is-number-npm-3.0.0-9088035ade-0c62bf8e9d.zip b/.yarn/cache/is-number-npm-3.0.0-9088035ade-0c62bf8e9d.zip deleted file mode 100644 index 6fcd31f9..00000000 Binary files a/.yarn/cache/is-number-npm-3.0.0-9088035ade-0c62bf8e9d.zip and /dev/null differ diff --git a/.yarn/cache/is-number-npm-7.0.0-060086935c-6a6c3383f6.zip b/.yarn/cache/is-number-npm-7.0.0-060086935c-6a6c3383f6.zip deleted file mode 100644 index dabc126e..00000000 Binary files a/.yarn/cache/is-number-npm-7.0.0-060086935c-6a6c3383f6.zip and /dev/null differ diff --git a/.yarn/cache/is-number-object-npm-1.0.5-fb5fdccdde-360b0c6cc9.zip b/.yarn/cache/is-number-object-npm-1.0.5-fb5fdccdde-360b0c6cc9.zip deleted file mode 100644 index d9b192f0..00000000 Binary files a/.yarn/cache/is-number-object-npm-1.0.5-fb5fdccdde-360b0c6cc9.zip and /dev/null differ diff --git a/.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-c9916ac8f4.zip b/.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-c9916ac8f4.zip deleted file mode 100644 index a7f0e896..00000000 Binary files a/.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-c9916ac8f4.zip and /dev/null differ diff --git a/.yarn/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-46a840921b.zip b/.yarn/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-46a840921b.zip deleted file mode 100644 index 95fe5597..00000000 Binary files a/.yarn/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-46a840921b.zip and /dev/null differ diff --git a/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip b/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip deleted file mode 100644 index 27f29d70..00000000 Binary files a/.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip and /dev/null differ diff --git a/.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip b/.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip deleted file mode 100644 index 8b9e5983..00000000 Binary files a/.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip and /dev/null differ diff --git a/.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip b/.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip deleted file mode 100644 index 8b68965a..00000000 Binary files a/.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip and /dev/null differ diff --git a/.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip b/.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip deleted file mode 100644 index fd9d03a7..00000000 Binary files a/.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip and /dev/null differ diff --git a/.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip b/.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip deleted file mode 100644 index ce2147e2..00000000 Binary files a/.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip and /dev/null differ diff --git a/.yarn/cache/is-regex-npm-1.1.3-5a00a17388-f3f66c934e.zip b/.yarn/cache/is-regex-npm-1.1.3-5a00a17388-f3f66c934e.zip deleted file mode 100644 index a1a9d85a..00000000 Binary files a/.yarn/cache/is-regex-npm-1.1.3-5a00a17388-f3f66c934e.zip and /dev/null differ diff --git a/.yarn/cache/is-relative-npm-1.0.0-af71733ca6-3271a0df10.zip b/.yarn/cache/is-relative-npm-1.0.0-af71733ca6-3271a0df10.zip deleted file mode 100644 index 5d9c5ecd..00000000 Binary files a/.yarn/cache/is-relative-npm-1.0.0-af71733ca6-3271a0df10.zip and /dev/null differ diff --git a/.yarn/cache/is-ssh-npm-1.3.3-dae2e96b9a-fca677f3cb.zip b/.yarn/cache/is-ssh-npm-1.3.3-dae2e96b9a-fca677f3cb.zip deleted file mode 100644 index a77e9920..00000000 Binary files a/.yarn/cache/is-ssh-npm-1.3.3-dae2e96b9a-fca677f3cb.zip and /dev/null differ diff --git a/.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-351aa77c54.zip b/.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-351aa77c54.zip deleted file mode 100644 index b87f33fb..00000000 Binary files a/.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-351aa77c54.zip and /dev/null differ diff --git a/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip b/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip deleted file mode 100644 index 4604ffcf..00000000 Binary files a/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip and /dev/null differ diff --git a/.yarn/cache/is-string-npm-1.0.6-2e7dbd354f-6813897bb0.zip b/.yarn/cache/is-string-npm-1.0.6-2e7dbd354f-6813897bb0.zip deleted file mode 100644 index b23e9e67..00000000 Binary files a/.yarn/cache/is-string-npm-1.0.6-2e7dbd354f-6813897bb0.zip and /dev/null differ diff --git a/.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-a47dd899a8.zip b/.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-a47dd899a8.zip deleted file mode 100644 index 7b6b1d44..00000000 Binary files a/.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-a47dd899a8.zip and /dev/null differ diff --git a/.yarn/cache/is-text-path-npm-1.0.1-92c78fe58d-fb5d78752c.zip b/.yarn/cache/is-text-path-npm-1.0.1-92c78fe58d-fb5d78752c.zip deleted file mode 100644 index 03514391..00000000 Binary files a/.yarn/cache/is-text-path-npm-1.0.1-92c78fe58d-fb5d78752c.zip and /dev/null differ diff --git a/.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4b433bfb0f.zip b/.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4b433bfb0f.zip deleted file mode 100644 index 6163e45c..00000000 Binary files a/.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4b433bfb0f.zip and /dev/null differ diff --git a/.yarn/cache/is-unc-path-npm-1.0.0-9cee24d85f-e8abfde203.zip b/.yarn/cache/is-unc-path-npm-1.0.0-9cee24d85f-e8abfde203.zip deleted file mode 100644 index 357fae2d..00000000 Binary files a/.yarn/cache/is-unc-path-npm-1.0.0-9cee24d85f-e8abfde203.zip and /dev/null differ diff --git a/.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip b/.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip deleted file mode 100644 index 7425daa3..00000000 Binary files a/.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip and /dev/null differ diff --git a/.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-167ccd2be8.zip b/.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-167ccd2be8.zip deleted file mode 100644 index 952563a4..00000000 Binary files a/.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-167ccd2be8.zip and /dev/null differ diff --git a/.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip b/.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip deleted file mode 100644 index 927b3c5c..00000000 Binary files a/.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip and /dev/null differ diff --git a/.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-ea157d2323.zip b/.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-ea157d2323.zip deleted file mode 100644 index 7b433763..00000000 Binary files a/.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-ea157d2323.zip and /dev/null differ diff --git a/.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-20849846ae.zip b/.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-20849846ae.zip deleted file mode 100644 index eaddb88d..00000000 Binary files a/.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-20849846ae.zip and /dev/null differ diff --git a/.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-bca013d65f.zip b/.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-bca013d65f.zip deleted file mode 100644 index 2eadd438..00000000 Binary files a/.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-bca013d65f.zip and /dev/null differ diff --git a/.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip b/.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip deleted file mode 100644 index 67c393dc..00000000 Binary files a/.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip and /dev/null differ diff --git a/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7c9f715c03.zip b/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7c9f715c03.zip deleted file mode 100644 index 39cf1406..00000000 Binary files a/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7c9f715c03.zip and /dev/null differ diff --git a/.yarn/cache/isobject-npm-2.1.0-2798cf0d94-811c6f5a86.zip b/.yarn/cache/isobject-npm-2.1.0-2798cf0d94-811c6f5a86.zip deleted file mode 100644 index 2cd86162..00000000 Binary files a/.yarn/cache/isobject-npm-2.1.0-2798cf0d94-811c6f5a86.zip and /dev/null differ diff --git a/.yarn/cache/isobject-npm-3.0.1-8145901fd2-db85c4c970.zip b/.yarn/cache/isobject-npm-3.0.1-8145901fd2-db85c4c970.zip deleted file mode 100644 index 214104c8..00000000 Binary files a/.yarn/cache/isobject-npm-3.0.1-8145901fd2-db85c4c970.zip and /dev/null differ diff --git a/.yarn/cache/isstream-npm-0.1.2-8581c75385-22d9c18101.zip b/.yarn/cache/isstream-npm-0.1.2-8581c75385-22d9c18101.zip deleted file mode 100644 index 08ffe284..00000000 Binary files a/.yarn/cache/isstream-npm-0.1.2-8581c75385-22d9c18101.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-eb0ba20589.zip b/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-eb0ba20589.zip deleted file mode 100644 index ef765e35..00000000 Binary files a/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-eb0ba20589.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-6e04ab365b.zip b/.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-6e04ab365b.zip deleted file mode 100644 index c8b8349e..00000000 Binary files a/.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-6e04ab365b.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-06b37952e9.zip b/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-06b37952e9.zip deleted file mode 100644 index 117daec1..00000000 Binary files a/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-06b37952e9.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-765252abc6.zip b/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-765252abc6.zip deleted file mode 100644 index a36ac3cc..00000000 Binary files a/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-765252abc6.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-3be3b0a80b.zip b/.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-3be3b0a80b.zip deleted file mode 100644 index ffc520b5..00000000 Binary files a/.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-3be3b0a80b.zip and /dev/null differ diff --git a/.yarn/cache/jake-npm-10.8.2-e211473cb9-7a64df8060.zip b/.yarn/cache/jake-npm-10.8.2-e211473cb9-7a64df8060.zip deleted file mode 100644 index 0b86ef44..00000000 Binary files a/.yarn/cache/jake-npm-10.8.2-e211473cb9-7a64df8060.zip and /dev/null differ diff --git a/.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-0cb25665c9.zip b/.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-0cb25665c9.zip deleted file mode 100644 index fd39ca0a..00000000 Binary files a/.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-0cb25665c9.zip and /dev/null differ diff --git a/.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-9b0c2d277c.zip b/.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-9b0c2d277c.zip deleted file mode 100644 index 91eaae67..00000000 Binary files a/.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-9b0c2d277c.zip and /dev/null differ diff --git a/.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-58b748cd63.zip b/.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-58b748cd63.zip deleted file mode 100644 index 6f30e2bf..00000000 Binary files a/.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-58b748cd63.zip and /dev/null differ diff --git a/.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-1aaac60e32.zip b/.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-1aaac60e32.zip deleted file mode 100644 index 8b5de59d..00000000 Binary files a/.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-1aaac60e32.zip and /dev/null differ diff --git a/.yarn/cache/jest-docblock-npm-26.0.0-7d0129b0be-a189f89ba3.zip b/.yarn/cache/jest-docblock-npm-26.0.0-7d0129b0be-a189f89ba3.zip deleted file mode 100644 index 7f8c9a1a..00000000 Binary files a/.yarn/cache/jest-docblock-npm-26.0.0-7d0129b0be-a189f89ba3.zip and /dev/null differ diff --git a/.yarn/cache/jest-each-npm-26.6.2-651078df67-099a0e9c3b.zip b/.yarn/cache/jest-each-npm-26.6.2-651078df67-099a0e9c3b.zip deleted file mode 100644 index 19ee2dbf..00000000 Binary files a/.yarn/cache/jest-each-npm-26.6.2-651078df67-099a0e9c3b.zip and /dev/null differ diff --git a/.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-8af9ffdf1b.zip b/.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-8af9ffdf1b.zip deleted file mode 100644 index a7f4c359..00000000 Binary files a/.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-8af9ffdf1b.zip and /dev/null differ diff --git a/.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-0b69b481e6.zip b/.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-0b69b481e6.zip deleted file mode 100644 index c536dfe4..00000000 Binary files a/.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-0b69b481e6.zip and /dev/null differ diff --git a/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-9cf7045adf.zip b/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-9cf7045adf.zip deleted file mode 100644 index 0dcaedf0..00000000 Binary files a/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-9cf7045adf.zip and /dev/null differ diff --git a/.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-1cc6465ae4.zip b/.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-1cc6465ae4.zip deleted file mode 100644 index 6f0f90af..00000000 Binary files a/.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-1cc6465ae4.zip and /dev/null differ diff --git a/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip b/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip deleted file mode 100644 index 8afbbd1b..00000000 Binary files a/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip and /dev/null differ diff --git a/.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-bb4261a0f3.zip b/.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-bb4261a0f3.zip deleted file mode 100644 index e8e6ab17..00000000 Binary files a/.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-bb4261a0f3.zip and /dev/null differ diff --git a/.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-e39b92003f.zip b/.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-e39b92003f.zip deleted file mode 100644 index 1451fff1..00000000 Binary files a/.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-e39b92003f.zip and /dev/null differ diff --git a/.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-364dd4d021.zip b/.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-364dd4d021.zip deleted file mode 100644 index 5d722be2..00000000 Binary files a/.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-364dd4d021.zip and /dev/null differ diff --git a/.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-1c07921612.zip b/.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-1c07921612.zip deleted file mode 100644 index 02a7adf5..00000000 Binary files a/.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-1c07921612.zip and /dev/null differ diff --git a/.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-8b1fb4b0e4.zip b/.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-8b1fb4b0e4.zip deleted file mode 100644 index 3509aaaf..00000000 Binary files a/.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-8b1fb4b0e4.zip and /dev/null differ diff --git a/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-31d53c6ed2.zip b/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-31d53c6ed2.zip deleted file mode 100644 index 770cff6a..00000000 Binary files a/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-31d53c6ed2.zip and /dev/null differ diff --git a/.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-6ac5e23b0a.zip b/.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-6ac5e23b0a.zip deleted file mode 100644 index c1723d70..00000000 Binary files a/.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-6ac5e23b0a.zip and /dev/null differ diff --git a/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-ae51d1b4f8.zip b/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-ae51d1b4f8.zip deleted file mode 100644 index b4a1e43c..00000000 Binary files a/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-ae51d1b4f8.zip and /dev/null differ diff --git a/.yarn/cache/jest-npm-26.6.3-dafe93d52f-e3a10f27af.zip b/.yarn/cache/jest-npm-26.6.3-dafe93d52f-e3a10f27af.zip deleted file mode 100644 index 6ab9f53f..00000000 Binary files a/.yarn/cache/jest-npm-26.6.3-dafe93d52f-e3a10f27af.zip and /dev/null differ diff --git a/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip b/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip deleted file mode 100644 index 36125b53..00000000 Binary files a/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip and /dev/null differ diff --git a/.yarn/cache/jest-regex-util-npm-26.0.0-310f72dd82-930a00665e.zip b/.yarn/cache/jest-regex-util-npm-26.0.0-310f72dd82-930a00665e.zip deleted file mode 100644 index fcd30056..00000000 Binary files a/.yarn/cache/jest-regex-util-npm-26.0.0-310f72dd82-930a00665e.zip and /dev/null differ diff --git a/.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-533ea1e271.zip b/.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-533ea1e271.zip deleted file mode 100644 index 6fb485a7..00000000 Binary files a/.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-533ea1e271.zip and /dev/null differ diff --git a/.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-72b7ef3f56.zip b/.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-72b7ef3f56.zip deleted file mode 100644 index de823b79..00000000 Binary files a/.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-72b7ef3f56.zip and /dev/null differ diff --git a/.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-065e525b8f.zip b/.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-065e525b8f.zip deleted file mode 100644 index b9846997..00000000 Binary files a/.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-065e525b8f.zip and /dev/null differ diff --git a/.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-6a569b9edb.zip b/.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-6a569b9edb.zip deleted file mode 100644 index 51879b34..00000000 Binary files a/.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-6a569b9edb.zip and /dev/null differ diff --git a/.yarn/cache/jest-serializer-npm-26.6.2-0907990487-dbecfb0d01.zip b/.yarn/cache/jest-serializer-npm-26.6.2-0907990487-dbecfb0d01.zip deleted file mode 100644 index 2c290c1a..00000000 Binary files a/.yarn/cache/jest-serializer-npm-26.6.2-0907990487-dbecfb0d01.zip and /dev/null differ diff --git a/.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-ce60c5b295.zip b/.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-ce60c5b295.zip deleted file mode 100644 index 0fd3416b..00000000 Binary files a/.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-ce60c5b295.zip and /dev/null differ diff --git a/.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-4502bc699f.zip b/.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-4502bc699f.zip deleted file mode 100644 index 153e54ba..00000000 Binary files a/.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-4502bc699f.zip and /dev/null differ diff --git a/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-30d58af696.zip b/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-30d58af696.zip deleted file mode 100644 index af20ef41..00000000 Binary files a/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-30d58af696.zip and /dev/null differ diff --git a/.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-ecef94010e.zip b/.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-ecef94010e.zip deleted file mode 100644 index 14c76f14..00000000 Binary files a/.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-ecef94010e.zip and /dev/null differ diff --git a/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-8ee1163666.zip b/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-8ee1163666.zip deleted file mode 100644 index a2deccc1..00000000 Binary files a/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-8ee1163666.zip and /dev/null differ diff --git a/.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-9babed3211.zip b/.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-9babed3211.zip deleted file mode 100644 index 70cfae93..00000000 Binary files a/.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-9babed3211.zip and /dev/null differ diff --git a/.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5f6b94cf0e.zip b/.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5f6b94cf0e.zip deleted file mode 100644 index aef2fada..00000000 Binary files a/.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5f6b94cf0e.zip and /dev/null differ diff --git a/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-364cbaef00.zip b/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-364cbaef00.zip deleted file mode 100644 index 3005dfe0..00000000 Binary files a/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-364cbaef00.zip and /dev/null differ diff --git a/.yarn/cache/jetifier-npm-1.6.8-940248aabe-88bcdab703.zip b/.yarn/cache/jetifier-npm-1.6.8-940248aabe-88bcdab703.zip deleted file mode 100644 index 221f7e84..00000000 Binary files a/.yarn/cache/jetifier-npm-1.6.8-940248aabe-88bcdab703.zip and /dev/null differ diff --git a/.yarn/cache/joi-npm-17.13.3-866dad5bc8-4c150db0c8.zip b/.yarn/cache/joi-npm-17.13.3-866dad5bc8-4c150db0c8.zip deleted file mode 100644 index 09b4eada..00000000 Binary files a/.yarn/cache/joi-npm-17.13.3-866dad5bc8-4c150db0c8.zip and /dev/null differ diff --git a/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-af37d0d913.zip b/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-af37d0d913.zip deleted file mode 100644 index 681cac42..00000000 Binary files a/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-af37d0d913.zip and /dev/null differ diff --git a/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-9e22d80b4d.zip b/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-9e22d80b4d.zip deleted file mode 100644 index 431983ca..00000000 Binary files a/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-9e22d80b4d.zip and /dev/null differ diff --git a/.yarn/cache/jsbn-npm-0.1.1-0eb7132404-5450133242.zip b/.yarn/cache/jsbn-npm-0.1.1-0eb7132404-5450133242.zip deleted file mode 100644 index 04ae1ba3..00000000 Binary files a/.yarn/cache/jsbn-npm-0.1.1-0eb7132404-5450133242.zip and /dev/null differ diff --git a/.yarn/cache/jsc-android-npm-250231.0.0-8322f50944-aa5cf773f5.zip b/.yarn/cache/jsc-android-npm-250231.0.0-8322f50944-aa5cf773f5.zip deleted file mode 100644 index 37e54c04..00000000 Binary files a/.yarn/cache/jsc-android-npm-250231.0.0-8322f50944-aa5cf773f5.zip and /dev/null differ diff --git a/.yarn/cache/jsc-safe-url-npm-0.2.4-4c5f8d6d7b-2729b32e69.zip b/.yarn/cache/jsc-safe-url-npm-0.2.4-4c5f8d6d7b-2729b32e69.zip deleted file mode 100644 index 770eccc5..00000000 Binary files a/.yarn/cache/jsc-safe-url-npm-0.2.4-4c5f8d6d7b-2729b32e69.zip and /dev/null differ diff --git a/.yarn/cache/jscodeshift-npm-0.14.0-76e38c9080-fc355dde22.zip b/.yarn/cache/jscodeshift-npm-0.14.0-76e38c9080-fc355dde22.zip deleted file mode 100644 index b2f711dd..00000000 Binary files a/.yarn/cache/jscodeshift-npm-0.14.0-76e38c9080-fc355dde22.zip and /dev/null differ diff --git a/.yarn/cache/jsdom-npm-16.5.3-a7674d3b6b-eb48af5767.zip b/.yarn/cache/jsdom-npm-16.5.3-a7674d3b6b-eb48af5767.zip deleted file mode 100644 index e1f3e7e4..00000000 Binary files a/.yarn/cache/jsdom-npm-16.5.3-a7674d3b6b-eb48af5767.zip and /dev/null differ diff --git a/.yarn/cache/jsesc-npm-0.5.0-6827074492-fab949f585.zip b/.yarn/cache/jsesc-npm-0.5.0-6827074492-fab949f585.zip deleted file mode 100644 index 881ccbe8..00000000 Binary files a/.yarn/cache/jsesc-npm-0.5.0-6827074492-fab949f585.zip and /dev/null differ diff --git a/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-d2096abdcd.zip b/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-d2096abdcd.zip deleted file mode 100644 index aa7eb964..00000000 Binary files a/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-d2096abdcd.zip and /dev/null differ diff --git a/.yarn/cache/json-buffer-npm-3.0.0-21c267a314-6e36458560.zip b/.yarn/cache/json-buffer-npm-3.0.0-21c267a314-6e36458560.zip deleted file mode 100644 index 2ecc0c9c..00000000 Binary files a/.yarn/cache/json-buffer-npm-3.0.0-21c267a314-6e36458560.zip and /dev/null differ diff --git a/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-8287615452.zip b/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-8287615452.zip deleted file mode 100644 index 634da562..00000000 Binary files a/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-8287615452.zip and /dev/null differ diff --git a/.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-5553232045.zip b/.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-5553232045.zip deleted file mode 100644 index f2850c2d..00000000 Binary files a/.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-5553232045.zip and /dev/null differ diff --git a/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-5f3a99009e.zip b/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-5f3a99009e.zip deleted file mode 100644 index 2675b907..00000000 Binary files a/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-5f3a99009e.zip and /dev/null differ diff --git a/.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-2f98d28db7.zip b/.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-2f98d28db7.zip deleted file mode 100644 index 638bd788..00000000 Binary files a/.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-2f98d28db7.zip and /dev/null differ diff --git a/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip b/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip deleted file mode 100644 index 54f0a7ac..00000000 Binary files a/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip and /dev/null differ diff --git a/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip b/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip deleted file mode 100644 index bfd6fdcd..00000000 Binary files a/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip and /dev/null differ diff --git a/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-12786c2e2f.zip b/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-12786c2e2f.zip deleted file mode 100644 index a2887b72..00000000 Binary files a/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-12786c2e2f.zip and /dev/null differ diff --git a/.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-59169a081e.zip b/.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-59169a081e.zip deleted file mode 100644 index 8b1c6138..00000000 Binary files a/.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-59169a081e.zip and /dev/null differ diff --git a/.yarn/cache/json5-npm-2.2.0-da49dc7cb5-d72ea87423.zip b/.yarn/cache/json5-npm-2.2.0-da49dc7cb5-d72ea87423.zip deleted file mode 100644 index 9642fe22..00000000 Binary files a/.yarn/cache/json5-npm-2.2.0-da49dc7cb5-d72ea87423.zip and /dev/null differ diff --git a/.yarn/cache/json5-npm-2.2.3-9962c55073-1db67b853f.zip b/.yarn/cache/json5-npm-2.2.3-9962c55073-1db67b853f.zip deleted file mode 100644 index 96e99366..00000000 Binary files a/.yarn/cache/json5-npm-2.2.3-9962c55073-1db67b853f.zip and /dev/null differ diff --git a/.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-17796f0ab1.zip b/.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-17796f0ab1.zip deleted file mode 100644 index 215fcb1a..00000000 Binary files a/.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-17796f0ab1.zip and /dev/null differ diff --git a/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-03014769e7.zip b/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-03014769e7.zip deleted file mode 100644 index a271b8b0..00000000 Binary files a/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-03014769e7.zip and /dev/null differ diff --git a/.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-24531e956f.zip b/.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-24531e956f.zip deleted file mode 100644 index 04e1315f..00000000 Binary files a/.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-24531e956f.zip and /dev/null differ diff --git a/.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-819f15255a.zip b/.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-819f15255a.zip deleted file mode 100644 index e90bdb15..00000000 Binary files a/.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-819f15255a.zip and /dev/null differ diff --git a/.yarn/cache/jsx-ast-utils-npm-3.2.0-c3558dbd96-7a6c160f1c.zip b/.yarn/cache/jsx-ast-utils-npm-3.2.0-c3558dbd96-7a6c160f1c.zip deleted file mode 100644 index 4d5724d9..00000000 Binary files a/.yarn/cache/jsx-ast-utils-npm-3.2.0-c3558dbd96-7a6c160f1c.zip and /dev/null differ diff --git a/.yarn/cache/keyv-npm-3.1.0-81c9ff4454-6de272b3f7.zip b/.yarn/cache/keyv-npm-3.1.0-81c9ff4454-6de272b3f7.zip deleted file mode 100644 index c343cf80..00000000 Binary files a/.yarn/cache/keyv-npm-3.1.0-81c9ff4454-6de272b3f7.zip and /dev/null differ diff --git a/.yarn/cache/keyv-npm-4.0.3-4018fb536e-2c6c8f7635.zip b/.yarn/cache/keyv-npm-4.0.3-4018fb536e-2c6c8f7635.zip deleted file mode 100644 index 71acfc04..00000000 Binary files a/.yarn/cache/keyv-npm-4.0.3-4018fb536e-2c6c8f7635.zip and /dev/null differ diff --git a/.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-b6e7eed10f.zip b/.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-b6e7eed10f.zip deleted file mode 100644 index f0598786..00000000 Binary files a/.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-b6e7eed10f.zip and /dev/null differ diff --git a/.yarn/cache/kind-of-npm-4.0.0-69fd153375-b35a90e069.zip b/.yarn/cache/kind-of-npm-4.0.0-69fd153375-b35a90e069.zip deleted file mode 100644 index b3b2c865..00000000 Binary files a/.yarn/cache/kind-of-npm-4.0.0-69fd153375-b35a90e069.zip and /dev/null differ diff --git a/.yarn/cache/kind-of-npm-5.1.0-ce82f43eaa-acf7cc7388.zip b/.yarn/cache/kind-of-npm-5.1.0-ce82f43eaa-acf7cc7388.zip deleted file mode 100644 index 2604960e..00000000 Binary files a/.yarn/cache/kind-of-npm-5.1.0-ce82f43eaa-acf7cc7388.zip and /dev/null differ diff --git a/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-5873d303fb.zip b/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-5873d303fb.zip deleted file mode 100644 index fca133a5..00000000 Binary files a/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-5873d303fb.zip and /dev/null differ diff --git a/.yarn/cache/kleur-npm-3.0.3-f6f53649a4-0c0ecaf00a.zip b/.yarn/cache/kleur-npm-3.0.3-f6f53649a4-0c0ecaf00a.zip deleted file mode 100644 index 88bc7541..00000000 Binary files a/.yarn/cache/kleur-npm-3.0.3-f6f53649a4-0c0ecaf00a.zip and /dev/null differ diff --git a/.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-fbc72b071e.zip b/.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-fbc72b071e.zip deleted file mode 100644 index d4ad3598..00000000 Binary files a/.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-fbc72b071e.zip and /dev/null differ diff --git a/.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip b/.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip deleted file mode 100644 index 227800ee..00000000 Binary files a/.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip and /dev/null differ diff --git a/.yarn/cache/levn-npm-0.3.0-48d774b1c2-e1c3e75b5c.zip b/.yarn/cache/levn-npm-0.3.0-48d774b1c2-e1c3e75b5c.zip deleted file mode 100644 index 5abc3136..00000000 Binary files a/.yarn/cache/levn-npm-0.3.0-48d774b1c2-e1c3e75b5c.zip and /dev/null differ diff --git a/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2e4720ff79.zip b/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2e4720ff79.zip deleted file mode 100644 index a7c5860e..00000000 Binary files a/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2e4720ff79.zip and /dev/null differ diff --git a/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ffcedbf687.zip b/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ffcedbf687.zip deleted file mode 100644 index 86d8a1c3..00000000 Binary files a/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ffcedbf687.zip and /dev/null differ diff --git a/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip b/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip deleted file mode 100644 index 7a35cefd..00000000 Binary files a/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip and /dev/null differ diff --git a/.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-bb16e169d8.zip b/.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-bb16e169d8.zip deleted file mode 100644 index d4db8ff3..00000000 Binary files a/.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-bb16e169d8.zip and /dev/null differ diff --git a/.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip b/.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip deleted file mode 100644 index 48ad7d38..00000000 Binary files a/.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip and /dev/null differ diff --git a/.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-02d581edbb.zip b/.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-02d581edbb.zip deleted file mode 100644 index 0841fd1c..00000000 Binary files a/.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-02d581edbb.zip and /dev/null differ diff --git a/.yarn/cache/locate-path-npm-3.0.0-991671ae9f-53db399667.zip b/.yarn/cache/locate-path-npm-3.0.0-991671ae9f-53db399667.zip deleted file mode 100644 index 71f39c47..00000000 Binary files a/.yarn/cache/locate-path-npm-3.0.0-991671ae9f-53db399667.zip and /dev/null differ diff --git a/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip b/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip deleted file mode 100644 index e2471349..00000000 Binary files a/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip and /dev/null differ diff --git a/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip b/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip deleted file mode 100644 index b67b7744..00000000 Binary files a/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip and /dev/null differ diff --git a/.yarn/cache/lodash-npm-4.17.20-c0db62021c-a5f94125d7.zip b/.yarn/cache/lodash-npm-4.17.20-c0db62021c-a5f94125d7.zip deleted file mode 100644 index e7beeb57..00000000 Binary files a/.yarn/cache/lodash-npm-4.17.20-c0db62021c-a5f94125d7.zip and /dev/null differ diff --git a/.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip b/.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip deleted file mode 100644 index 5c76f21a..00000000 Binary files a/.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip and /dev/null differ diff --git a/.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-957ed243f8.zip b/.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-957ed243f8.zip deleted file mode 100644 index b57bf254..00000000 Binary files a/.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-957ed243f8.zip and /dev/null differ diff --git a/.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-cd0b281978.zip b/.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-cd0b281978.zip deleted file mode 100644 index ab951371..00000000 Binary files a/.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-cd0b281978.zip and /dev/null differ diff --git a/.yarn/cache/lodash.ismatch-npm-4.4.0-e538fd6c3d-946a7176cd.zip b/.yarn/cache/lodash.ismatch-npm-4.4.0-e538fd6c3d-946a7176cd.zip deleted file mode 100644 index ce73a9df..00000000 Binary files a/.yarn/cache/lodash.ismatch-npm-4.4.0-e538fd6c3d-946a7176cd.zip and /dev/null differ diff --git a/.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-192b2168f3.zip b/.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-192b2168f3.zip deleted file mode 100644 index b10ece4c..00000000 Binary files a/.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-192b2168f3.zip and /dev/null differ diff --git a/.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-9be9fb2ffd.zip b/.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-9be9fb2ffd.zip deleted file mode 100644 index e5aa279d..00000000 Binary files a/.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-9be9fb2ffd.zip and /dev/null differ diff --git a/.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-7a49561612.zip b/.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-7a49561612.zip deleted file mode 100644 index 904d9e2d..00000000 Binary files a/.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-7a49561612.zip and /dev/null differ diff --git a/.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip b/.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip deleted file mode 100644 index 6a7e0761..00000000 Binary files a/.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip and /dev/null differ diff --git a/.yarn/cache/logkitty-npm-0.7.1-222a2102c2-1b9ab87319.zip b/.yarn/cache/logkitty-npm-0.7.1-222a2102c2-1b9ab87319.zip deleted file mode 100644 index 7e902cc8..00000000 Binary files a/.yarn/cache/logkitty-npm-0.7.1-222a2102c2-1b9ab87319.zip and /dev/null differ diff --git a/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip b/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip deleted file mode 100644 index ba25b876..00000000 Binary files a/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip and /dev/null differ diff --git a/.yarn/cache/loud-rejection-npm-1.6.0-1d4b7666c5-750e12defd.zip b/.yarn/cache/loud-rejection-npm-1.6.0-1d4b7666c5-750e12defd.zip deleted file mode 100644 index 556826c9..00000000 Binary files a/.yarn/cache/loud-rejection-npm-1.6.0-1d4b7666c5-750e12defd.zip and /dev/null differ diff --git a/.yarn/cache/lower-case-npm-2.0.2-151055f1c2-83a0a5f159.zip b/.yarn/cache/lower-case-npm-2.0.2-151055f1c2-83a0a5f159.zip deleted file mode 100644 index 0f0a86e1..00000000 Binary files a/.yarn/cache/lower-case-npm-2.0.2-151055f1c2-83a0a5f159.zip and /dev/null differ diff --git a/.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-12ba64572d.zip b/.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-12ba64572d.zip deleted file mode 100644 index c1c5d1ff..00000000 Binary files a/.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-12ba64572d.zip and /dev/null differ diff --git a/.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-1c233d2da3.zip b/.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-1c233d2da3.zip deleted file mode 100644 index 2c666828..00000000 Binary files a/.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-1c233d2da3.zip and /dev/null differ diff --git a/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-951d2673dc.zip b/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-951d2673dc.zip deleted file mode 100644 index 50cba37e..00000000 Binary files a/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-951d2673dc.zip and /dev/null differ diff --git a/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-fc1fe2ee20.zip b/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-fc1fe2ee20.zip deleted file mode 100644 index 0c4b9d6b..00000000 Binary files a/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-fc1fe2ee20.zip and /dev/null differ diff --git a/.yarn/cache/macos-release-npm-2.4.1-4856441ab1-3271698f08.zip b/.yarn/cache/macos-release-npm-2.4.1-4856441ab1-3271698f08.zip deleted file mode 100644 index 8cafee3a..00000000 Binary files a/.yarn/cache/macos-release-npm-2.4.1-4856441ab1-3271698f08.zip and /dev/null differ diff --git a/.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-043548886b.zip b/.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-043548886b.zip deleted file mode 100644 index ee28fceb..00000000 Binary files a/.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-043548886b.zip and /dev/null differ diff --git a/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip b/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip deleted file mode 100644 index e466cd8a..00000000 Binary files a/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip and /dev/null differ diff --git a/.yarn/cache/make-fetch-happen-npm-8.0.14-fa5d78adad-d28f020818.zip b/.yarn/cache/make-fetch-happen-npm-8.0.14-fa5d78adad-d28f020818.zip deleted file mode 100644 index 8fd584fb..00000000 Binary files a/.yarn/cache/make-fetch-happen-npm-8.0.14-fa5d78adad-d28f020818.zip and /dev/null differ diff --git a/.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-b08b6120da.zip b/.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-b08b6120da.zip deleted file mode 100644 index 626612d5..00000000 Binary files a/.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-b08b6120da.zip and /dev/null differ diff --git a/.yarn/cache/map-cache-npm-0.2.2-1620199b05-3067cea542.zip b/.yarn/cache/map-cache-npm-0.2.2-1620199b05-3067cea542.zip deleted file mode 100644 index 6499e97c..00000000 Binary files a/.yarn/cache/map-cache-npm-0.2.2-1620199b05-3067cea542.zip and /dev/null differ diff --git a/.yarn/cache/map-obj-npm-1.0.1-fa55100fac-f8e6fc7f61.zip b/.yarn/cache/map-obj-npm-1.0.1-fa55100fac-f8e6fc7f61.zip deleted file mode 100644 index d26e30c2..00000000 Binary files a/.yarn/cache/map-obj-npm-1.0.1-fa55100fac-f8e6fc7f61.zip and /dev/null differ diff --git a/.yarn/cache/map-obj-npm-4.2.1-754eda8456-2745227b11.zip b/.yarn/cache/map-obj-npm-4.2.1-754eda8456-2745227b11.zip deleted file mode 100644 index 49edb400..00000000 Binary files a/.yarn/cache/map-obj-npm-4.2.1-754eda8456-2745227b11.zip and /dev/null differ diff --git a/.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-c27045a502.zip b/.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-c27045a502.zip deleted file mode 100644 index 19cfdbdf..00000000 Binary files a/.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-c27045a502.zip and /dev/null differ diff --git a/.yarn/cache/marky-npm-1.2.5-007e6cc885-ae775cea93.zip b/.yarn/cache/marky-npm-1.2.5-007e6cc885-ae775cea93.zip deleted file mode 100644 index 626ee585..00000000 Binary files a/.yarn/cache/marky-npm-1.2.5-007e6cc885-ae775cea93.zip and /dev/null differ diff --git a/.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-b7141dc148.zip b/.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-b7141dc148.zip deleted file mode 100644 index 41b9397e..00000000 Binary files a/.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-b7141dc148.zip and /dev/null differ diff --git a/.yarn/cache/meow-npm-3.7.0-5653cc98af-dd1f7fc0e5.zip b/.yarn/cache/meow-npm-3.7.0-5653cc98af-dd1f7fc0e5.zip deleted file mode 100644 index 3106685e..00000000 Binary files a/.yarn/cache/meow-npm-3.7.0-5653cc98af-dd1f7fc0e5.zip and /dev/null differ diff --git a/.yarn/cache/meow-npm-8.1.2-bcfe48d4f3-d4770f9013.zip b/.yarn/cache/meow-npm-8.1.2-bcfe48d4f3-d4770f9013.zip deleted file mode 100644 index 609bd644..00000000 Binary files a/.yarn/cache/meow-npm-8.1.2-bcfe48d4f3-d4770f9013.zip and /dev/null differ diff --git a/.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip b/.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip deleted file mode 100644 index 1cf9d57d..00000000 Binary files a/.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip and /dev/null differ diff --git a/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip b/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip deleted file mode 100644 index 76aa4f0b..00000000 Binary files a/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip and /dev/null differ diff --git a/.yarn/cache/metro-babel-transformer-npm-0.80.12-181bafda20-3912367e26.zip b/.yarn/cache/metro-babel-transformer-npm-0.80.12-181bafda20-3912367e26.zip deleted file mode 100644 index 97b56b83..00000000 Binary files a/.yarn/cache/metro-babel-transformer-npm-0.80.12-181bafda20-3912367e26.zip and /dev/null differ diff --git a/.yarn/cache/metro-cache-key-npm-0.80.12-38ad08be54-7a06601180.zip b/.yarn/cache/metro-cache-key-npm-0.80.12-38ad08be54-7a06601180.zip deleted file mode 100644 index 07a53080..00000000 Binary files a/.yarn/cache/metro-cache-key-npm-0.80.12-38ad08be54-7a06601180.zip and /dev/null differ diff --git a/.yarn/cache/metro-cache-npm-0.80.12-711aaffee1-914b599ad4.zip b/.yarn/cache/metro-cache-npm-0.80.12-711aaffee1-914b599ad4.zip deleted file mode 100644 index 433dda3e..00000000 Binary files a/.yarn/cache/metro-cache-npm-0.80.12-711aaffee1-914b599ad4.zip and /dev/null differ diff --git a/.yarn/cache/metro-config-npm-0.80.12-2cfceb58bb-2d11745d32.zip b/.yarn/cache/metro-config-npm-0.80.12-2cfceb58bb-2d11745d32.zip deleted file mode 100644 index df1f0c39..00000000 Binary files a/.yarn/cache/metro-config-npm-0.80.12-2cfceb58bb-2d11745d32.zip and /dev/null differ diff --git a/.yarn/cache/metro-core-npm-0.80.12-ff30cce463-d29ab20df4.zip b/.yarn/cache/metro-core-npm-0.80.12-ff30cce463-d29ab20df4.zip deleted file mode 100644 index 2fd80c62..00000000 Binary files a/.yarn/cache/metro-core-npm-0.80.12-ff30cce463-d29ab20df4.zip and /dev/null differ diff --git a/.yarn/cache/metro-file-map-npm-0.80.12-b1afc5df14-a0c06da7c8.zip b/.yarn/cache/metro-file-map-npm-0.80.12-b1afc5df14-a0c06da7c8.zip deleted file mode 100644 index d63fbfc6..00000000 Binary files a/.yarn/cache/metro-file-map-npm-0.80.12-b1afc5df14-a0c06da7c8.zip and /dev/null differ diff --git a/.yarn/cache/metro-minify-terser-npm-0.80.12-7e0e86c5f6-ff527b3f04.zip b/.yarn/cache/metro-minify-terser-npm-0.80.12-7e0e86c5f6-ff527b3f04.zip deleted file mode 100644 index 30a1cbef..00000000 Binary files a/.yarn/cache/metro-minify-terser-npm-0.80.12-7e0e86c5f6-ff527b3f04.zip and /dev/null differ diff --git a/.yarn/cache/metro-npm-0.80.12-22fc2f7367-b44280b16d.zip b/.yarn/cache/metro-npm-0.80.12-22fc2f7367-b44280b16d.zip deleted file mode 100644 index 8399a660..00000000 Binary files a/.yarn/cache/metro-npm-0.80.12-22fc2f7367-b44280b16d.zip and /dev/null differ diff --git a/.yarn/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-df77573df3.zip b/.yarn/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-df77573df3.zip deleted file mode 100644 index 852eb37d..00000000 Binary files a/.yarn/cache/metro-react-native-babel-preset-npm-0.66.0-9c9cc6862e-df77573df3.zip and /dev/null differ diff --git a/.yarn/cache/metro-resolver-npm-0.80.12-de2c2a6cdf-e8609f1b93.zip b/.yarn/cache/metro-resolver-npm-0.80.12-de2c2a6cdf-e8609f1b93.zip deleted file mode 100644 index 034ac306..00000000 Binary files a/.yarn/cache/metro-resolver-npm-0.80.12-de2c2a6cdf-e8609f1b93.zip and /dev/null differ diff --git a/.yarn/cache/metro-runtime-npm-0.80.12-8e7410ce37-8a09e7001b.zip b/.yarn/cache/metro-runtime-npm-0.80.12-8e7410ce37-8a09e7001b.zip deleted file mode 100644 index 73255777..00000000 Binary files a/.yarn/cache/metro-runtime-npm-0.80.12-8e7410ce37-8a09e7001b.zip and /dev/null differ diff --git a/.yarn/cache/metro-source-map-npm-0.80.12-be9e4ab885-ad6e0cf7f4.zip b/.yarn/cache/metro-source-map-npm-0.80.12-be9e4ab885-ad6e0cf7f4.zip deleted file mode 100644 index bd77e33a..00000000 Binary files a/.yarn/cache/metro-source-map-npm-0.80.12-be9e4ab885-ad6e0cf7f4.zip and /dev/null differ diff --git a/.yarn/cache/metro-symbolicate-npm-0.80.12-e606a89ac8-0c1dd05569.zip b/.yarn/cache/metro-symbolicate-npm-0.80.12-e606a89ac8-0c1dd05569.zip deleted file mode 100644 index b23d1e08..00000000 Binary files a/.yarn/cache/metro-symbolicate-npm-0.80.12-e606a89ac8-0c1dd05569.zip and /dev/null differ diff --git a/.yarn/cache/metro-transform-plugins-npm-0.80.12-07eb90f0b6-801510bde9.zip b/.yarn/cache/metro-transform-plugins-npm-0.80.12-07eb90f0b6-801510bde9.zip deleted file mode 100644 index c38021a2..00000000 Binary files a/.yarn/cache/metro-transform-plugins-npm-0.80.12-07eb90f0b6-801510bde9.zip and /dev/null differ diff --git a/.yarn/cache/metro-transform-worker-npm-0.80.12-382c009c6c-a0802ebbc3.zip b/.yarn/cache/metro-transform-worker-npm-0.80.12-382c009c6c-a0802ebbc3.zip deleted file mode 100644 index a4645479..00000000 Binary files a/.yarn/cache/metro-transform-worker-npm-0.80.12-382c009c6c-a0802ebbc3.zip and /dev/null differ diff --git a/.yarn/cache/micromatch-npm-3.1.10-016e80c79d-4102bac836.zip b/.yarn/cache/micromatch-npm-3.1.10-016e80c79d-4102bac836.zip deleted file mode 100644 index 14c75d07..00000000 Binary files a/.yarn/cache/micromatch-npm-3.1.10-016e80c79d-4102bac836.zip and /dev/null differ diff --git a/.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-c499da5aad.zip b/.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-c499da5aad.zip deleted file mode 100644 index 5e134325..00000000 Binary files a/.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-c499da5aad.zip and /dev/null differ diff --git a/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-6bf2a01672.zip b/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-6bf2a01672.zip deleted file mode 100644 index f8ac6b5f..00000000 Binary files a/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-6bf2a01672.zip and /dev/null differ diff --git a/.yarn/cache/microtime-npm-3.0.0-eb762146b0-61c3217f51.zip b/.yarn/cache/microtime-npm-3.0.0-eb762146b0-61c3217f51.zip deleted file mode 100644 index bc41f8db..00000000 Binary files a/.yarn/cache/microtime-npm-3.0.0-eb762146b0-61c3217f51.zip and /dev/null differ diff --git a/.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-7cde7b1d8e.zip b/.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-7cde7b1d8e.zip deleted file mode 100644 index ca6b0578..00000000 Binary files a/.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-7cde7b1d8e.zip and /dev/null differ diff --git a/.yarn/cache/mime-db-npm-1.47.0-a85d74ef62-1f91f81149.zip b/.yarn/cache/mime-db-npm-1.47.0-a85d74ef62-1f91f81149.zip deleted file mode 100644 index 32d433cf..00000000 Binary files a/.yarn/cache/mime-db-npm-1.47.0-a85d74ef62-1f91f81149.zip and /dev/null differ diff --git a/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-54bb60bf39.zip b/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-54bb60bf39.zip deleted file mode 100644 index ad4301ea..00000000 Binary files a/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-54bb60bf39.zip and /dev/null differ diff --git a/.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-82409c568a.zip b/.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-82409c568a.zip deleted file mode 100644 index fcf3aead..00000000 Binary files a/.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-82409c568a.zip and /dev/null differ diff --git a/.yarn/cache/mime-npm-1.6.0-60ae95038a-b7d98bb1e0.zip b/.yarn/cache/mime-npm-1.6.0-60ae95038a-b7d98bb1e0.zip deleted file mode 100644 index bed4a27f..00000000 Binary files a/.yarn/cache/mime-npm-1.6.0-60ae95038a-b7d98bb1e0.zip and /dev/null differ diff --git a/.yarn/cache/mime-npm-2.6.0-88b89d8de0-7da117808b.zip b/.yarn/cache/mime-npm-2.6.0-88b89d8de0-7da117808b.zip deleted file mode 100644 index cbd90d4b..00000000 Binary files a/.yarn/cache/mime-npm-2.6.0-88b89d8de0-7da117808b.zip and /dev/null differ diff --git a/.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-056a862572.zip b/.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-056a862572.zip deleted file mode 100644 index 8bcd8fc9..00000000 Binary files a/.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-056a862572.zip and /dev/null differ diff --git a/.yarn/cache/mime-types-npm-2.1.30-500b101efd-b490804d57.zip b/.yarn/cache/mime-types-npm-2.1.30-500b101efd-b490804d57.zip deleted file mode 100644 index 65544f8d..00000000 Binary files a/.yarn/cache/mime-types-npm-2.1.30-500b101efd-b490804d57.zip and /dev/null differ diff --git a/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89aa9651b6.zip b/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89aa9651b6.zip deleted file mode 100644 index 51ae192e..00000000 Binary files a/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89aa9651b6.zip and /dev/null differ diff --git a/.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.zip b/.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.zip deleted file mode 100644 index 1cc2414f..00000000 Binary files a/.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.zip and /dev/null differ diff --git a/.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-034c78753b.zip b/.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-034c78753b.zip deleted file mode 100644 index acf641b2..00000000 Binary files a/.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-034c78753b.zip and /dev/null differ diff --git a/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-7e71904761.zip b/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-7e71904761.zip deleted file mode 100644 index bb6d1a17..00000000 Binary files a/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-7e71904761.zip and /dev/null differ diff --git a/.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip b/.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip deleted file mode 100644 index 5ab689d4..00000000 Binary files a/.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip and /dev/null differ diff --git a/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-3b3f17f765.zip b/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-3b3f17f765.zip deleted file mode 100644 index 4a6cc2ef..00000000 Binary files a/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-3b3f17f765.zip and /dev/null differ diff --git a/.yarn/cache/minimatch-npm-3.1.2-9405269906-e0b25b04cd.zip b/.yarn/cache/minimatch-npm-3.1.2-9405269906-e0b25b04cd.zip deleted file mode 100644 index d3ea7327..00000000 Binary files a/.yarn/cache/minimatch-npm-3.1.2-9405269906-e0b25b04cd.zip and /dev/null differ diff --git a/.yarn/cache/minimist-npm-1.2.5-ced0e1f617-9dff2c7d84.zip b/.yarn/cache/minimist-npm-1.2.5-ced0e1f617-9dff2c7d84.zip deleted file mode 100644 index 11759003..00000000 Binary files a/.yarn/cache/minimist-npm-1.2.5-ced0e1f617-9dff2c7d84.zip and /dev/null differ diff --git a/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-908491b6cc.zip b/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-908491b6cc.zip deleted file mode 100644 index 1e6dec7d..00000000 Binary files a/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-908491b6cc.zip and /dev/null differ diff --git a/.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip b/.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip deleted file mode 100644 index 192e11c5..00000000 Binary files a/.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip and /dev/null differ diff --git a/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip b/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip deleted file mode 100644 index 582f61ca..00000000 Binary files a/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip and /dev/null differ diff --git a/.yarn/cache/minipass-fetch-npm-1.3.3-6dd11d4b13-7ae4b649a3.zip b/.yarn/cache/minipass-fetch-npm-1.3.3-6dd11d4b13-7ae4b649a3.zip deleted file mode 100644 index c87a99b0..00000000 Binary files a/.yarn/cache/minipass-fetch-npm-1.3.3-6dd11d4b13-7ae4b649a3.zip and /dev/null differ diff --git a/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip b/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip deleted file mode 100644 index 913b687a..00000000 Binary files a/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip and /dev/null differ diff --git a/.yarn/cache/minipass-npm-3.1.3-af723e33f3-cf2aec122a.zip b/.yarn/cache/minipass-npm-3.1.3-af723e33f3-cf2aec122a.zip deleted file mode 100644 index 368bab23..00000000 Binary files a/.yarn/cache/minipass-npm-3.1.3-af723e33f3-cf2aec122a.zip and /dev/null differ diff --git a/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip b/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip deleted file mode 100644 index 4deae416..00000000 Binary files a/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip and /dev/null differ diff --git a/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-40982d8d83.zip b/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-40982d8d83.zip deleted file mode 100644 index 8870af85..00000000 Binary files a/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-40982d8d83.zip and /dev/null differ diff --git a/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-ae0f45436f.zip b/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-ae0f45436f.zip deleted file mode 100644 index 62a00a32..00000000 Binary files a/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-ae0f45436f.zip and /dev/null differ diff --git a/.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-820d5a51fc.zip b/.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-820d5a51fc.zip deleted file mode 100644 index 543d9a7d..00000000 Binary files a/.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-820d5a51fc.zip and /dev/null differ diff --git a/.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip b/.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip deleted file mode 100644 index 7a69bc7e..00000000 Binary files a/.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip and /dev/null differ diff --git a/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-d71b8dcd4b.zip b/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-d71b8dcd4b.zip deleted file mode 100644 index 5388c2be..00000000 Binary files a/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-d71b8dcd4b.zip and /dev/null differ diff --git a/.yarn/cache/modify-values-npm-1.0.1-9b2377e166-16fa93f7dd.zip b/.yarn/cache/modify-values-npm-1.0.1-9b2377e166-16fa93f7dd.zip deleted file mode 100644 index b8f9964e..00000000 Binary files a/.yarn/cache/modify-values-npm-1.0.1-9b2377e166-16fa93f7dd.zip and /dev/null differ diff --git a/.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip b/.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip deleted file mode 100644 index 1cb6ffa5..00000000 Binary files a/.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip and /dev/null differ diff --git a/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip b/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip deleted file mode 100644 index 725e9b8c..00000000 Binary files a/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip and /dev/null differ diff --git a/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip b/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip deleted file mode 100644 index 2b635f28..00000000 Binary files a/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip and /dev/null differ diff --git a/.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-a2d2e79dde.zip b/.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-a2d2e79dde.zip deleted file mode 100644 index 0f040f47..00000000 Binary files a/.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-a2d2e79dde.zip and /dev/null differ diff --git a/.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-5c4ec7d626.zip b/.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-5c4ec7d626.zip deleted file mode 100644 index 480dee8b..00000000 Binary files a/.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-5c4ec7d626.zip and /dev/null differ diff --git a/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip b/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip deleted file mode 100644 index db454c31..00000000 Binary files a/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip and /dev/null differ diff --git a/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-2723fb822a.zip b/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-2723fb822a.zip deleted file mode 100644 index af804a05..00000000 Binary files a/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-2723fb822a.zip and /dev/null differ diff --git a/.yarn/cache/neo-async-npm-2.6.2-75d6902586-1a7948fea8.zip b/.yarn/cache/neo-async-npm-2.6.2-75d6902586-1a7948fea8.zip deleted file mode 100644 index 5aae9af6..00000000 Binary files a/.yarn/cache/neo-async-npm-2.6.2-75d6902586-1a7948fea8.zip and /dev/null differ diff --git a/.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip b/.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip deleted file mode 100644 index e022a139..00000000 Binary files a/.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip and /dev/null differ diff --git a/.yarn/cache/no-case-npm-3.0.4-12884c3d98-0b2ebc113d.zip b/.yarn/cache/no-case-npm-3.0.4-12884c3d98-0b2ebc113d.zip deleted file mode 100644 index 1e5347b7..00000000 Binary files a/.yarn/cache/no-case-npm-3.0.4-12884c3d98-0b2ebc113d.zip and /dev/null differ diff --git a/.yarn/cache/nocache-npm-3.0.4-9393fdc373-e980eac3c6.zip b/.yarn/cache/nocache-npm-3.0.4-9393fdc373-e980eac3c6.zip deleted file mode 100644 index d2d965a3..00000000 Binary files a/.yarn/cache/nocache-npm-3.0.4-9393fdc373-e980eac3c6.zip and /dev/null differ diff --git a/.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-0a2cdb7ec0.zip b/.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-0a2cdb7ec0.zip deleted file mode 100644 index 4f3f94be..00000000 Binary files a/.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-0a2cdb7ec0.zip and /dev/null differ diff --git a/.yarn/cache/node-addon-api-npm-1.7.2-c341ccaeb6-6bf8217a8c.zip b/.yarn/cache/node-addon-api-npm-1.7.2-c341ccaeb6-6bf8217a8c.zip deleted file mode 100644 index 1f39189a..00000000 Binary files a/.yarn/cache/node-addon-api-npm-1.7.2-c341ccaeb6-6bf8217a8c.zip and /dev/null differ diff --git a/.yarn/cache/node-dir-npm-0.1.17-e25963e120-281fdea12d.zip b/.yarn/cache/node-dir-npm-0.1.17-e25963e120-281fdea12d.zip deleted file mode 100644 index 86b64a4b..00000000 Binary files a/.yarn/cache/node-dir-npm-0.1.17-e25963e120-281fdea12d.zip and /dev/null differ diff --git a/.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-0b54e56681.zip b/.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-0b54e56681.zip deleted file mode 100644 index 2dbe0609..00000000 Binary files a/.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-0b54e56681.zip and /dev/null differ diff --git a/.yarn/cache/node-fetch-npm-2.7.0-587d57004e-b24f8a3dc9.zip b/.yarn/cache/node-fetch-npm-2.7.0-587d57004e-b24f8a3dc9.zip deleted file mode 100644 index 7c9ec083..00000000 Binary files a/.yarn/cache/node-fetch-npm-2.7.0-587d57004e-b24f8a3dc9.zip and /dev/null differ diff --git a/.yarn/cache/node-forge-npm-1.3.1-f31fd566cc-05bab68686.zip b/.yarn/cache/node-forge-npm-1.3.1-f31fd566cc-05bab68686.zip deleted file mode 100644 index 6b0d0f9b..00000000 Binary files a/.yarn/cache/node-forge-npm-1.3.1-f31fd566cc-05bab68686.zip and /dev/null differ diff --git a/.yarn/cache/node-gyp-build-npm-3.9.0-b5d3188708-c94f1fc077.zip b/.yarn/cache/node-gyp-build-npm-3.9.0-b5d3188708-c94f1fc077.zip deleted file mode 100644 index 527c7364..00000000 Binary files a/.yarn/cache/node-gyp-build-npm-3.9.0-b5d3188708-c94f1fc077.zip and /dev/null differ diff --git a/.yarn/cache/node-gyp-npm-8.0.0-a27599670d-1d9b7b27ae.zip b/.yarn/cache/node-gyp-npm-8.0.0-a27599670d-1d9b7b27ae.zip deleted file mode 100644 index 58bf7cb5..00000000 Binary files a/.yarn/cache/node-gyp-npm-8.0.0-a27599670d-1d9b7b27ae.zip and /dev/null differ diff --git a/.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-b7afc2b65e.zip b/.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-b7afc2b65e.zip deleted file mode 100644 index ce7b4fb4..00000000 Binary files a/.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-b7afc2b65e.zip and /dev/null differ diff --git a/.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-9954190353.zip b/.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-9954190353.zip deleted file mode 100644 index 00bcda0b..00000000 Binary files a/.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-9954190353.zip and /dev/null differ diff --git a/.yarn/cache/node-notifier-npm-8.0.2-e8d89b5d6b-34bf286d5d.zip b/.yarn/cache/node-notifier-npm-8.0.2-e8d89b5d6b-34bf286d5d.zip deleted file mode 100644 index e98f6b2c..00000000 Binary files a/.yarn/cache/node-notifier-npm-8.0.2-e8d89b5d6b-34bf286d5d.zip and /dev/null differ diff --git a/.yarn/cache/node-releases-npm-1.1.72-662e905d8e-5fdc3f2cdd.zip b/.yarn/cache/node-releases-npm-1.1.72-662e905d8e-5fdc3f2cdd.zip deleted file mode 100644 index 2fefb396..00000000 Binary files a/.yarn/cache/node-releases-npm-1.1.72-662e905d8e-5fdc3f2cdd.zip and /dev/null differ diff --git a/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip b/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip deleted file mode 100644 index 47073a11..00000000 Binary files a/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip and /dev/null differ diff --git a/.yarn/cache/node-stream-zip-npm-1.15.0-47adb9fcfb-3fb56144d2.zip b/.yarn/cache/node-stream-zip-npm-1.15.0-47adb9fcfb-3fb56144d2.zip deleted file mode 100644 index 26be5a6d..00000000 Binary files a/.yarn/cache/node-stream-zip-npm-1.15.0-47adb9fcfb-3fb56144d2.zip and /dev/null differ diff --git a/.yarn/cache/nopt-npm-5.0.0-304b40fbfe-00f9bb2d16.zip b/.yarn/cache/nopt-npm-5.0.0-304b40fbfe-00f9bb2d16.zip deleted file mode 100644 index e9176b4a..00000000 Binary files a/.yarn/cache/nopt-npm-5.0.0-304b40fbfe-00f9bb2d16.zip and /dev/null differ diff --git a/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-644f830a8b.zip b/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-644f830a8b.zip deleted file mode 100644 index 66efe646..00000000 Binary files a/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-644f830a8b.zip and /dev/null differ diff --git a/.yarn/cache/normalize-package-data-npm-3.0.2-4ca0cf04d6-b006f9359b.zip b/.yarn/cache/normalize-package-data-npm-3.0.2-4ca0cf04d6-b006f9359b.zip deleted file mode 100644 index 4018ca66..00000000 Binary files a/.yarn/cache/normalize-package-data-npm-3.0.2-4ca0cf04d6-b006f9359b.zip and /dev/null differ diff --git a/.yarn/cache/normalize-path-npm-2.1.1-65c4766716-7e9cbdcf7f.zip b/.yarn/cache/normalize-path-npm-2.1.1-65c4766716-7e9cbdcf7f.zip deleted file mode 100644 index 4204327e..00000000 Binary files a/.yarn/cache/normalize-path-npm-2.1.1-65c4766716-7e9cbdcf7f.zip and /dev/null differ diff --git a/.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip b/.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip deleted file mode 100644 index 855af70e..00000000 Binary files a/.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip and /dev/null differ diff --git a/.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-f6aa4a1a94.zip b/.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-f6aa4a1a94.zip deleted file mode 100644 index 32e3dc7a..00000000 Binary files a/.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-f6aa4a1a94.zip and /dev/null differ diff --git a/.yarn/cache/normalize-url-npm-4.5.0-14a0c5430f-c70ee89880.zip b/.yarn/cache/normalize-url-npm-4.5.0-14a0c5430f-c70ee89880.zip deleted file mode 100644 index 05ff59cf..00000000 Binary files a/.yarn/cache/normalize-url-npm-4.5.0-14a0c5430f-c70ee89880.zip and /dev/null differ diff --git a/.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-acd5ad8164.zip b/.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-acd5ad8164.zip deleted file mode 100644 index dae249c8..00000000 Binary files a/.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-acd5ad8164.zip and /dev/null differ diff --git a/.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-5374c0cea4.zip b/.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-5374c0cea4.zip deleted file mode 100644 index 18ef7040..00000000 Binary files a/.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-5374c0cea4.zip and /dev/null differ diff --git a/.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-b6b85c9f33.zip b/.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-b6b85c9f33.zip deleted file mode 100644 index 7bf4ea44..00000000 Binary files a/.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-b6b85c9f33.zip and /dev/null differ diff --git a/.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-c7cf377a09.zip b/.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-c7cf377a09.zip deleted file mode 100644 index 88db14fb..00000000 Binary files a/.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-c7cf377a09.zip and /dev/null differ diff --git a/.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-13656bc9aa.zip b/.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-13656bc9aa.zip deleted file mode 100644 index 4ef9a256..00000000 Binary files a/.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-13656bc9aa.zip and /dev/null differ diff --git a/.yarn/cache/nwsapi-npm-2.2.0-8f05590043-d278126549.zip b/.yarn/cache/nwsapi-npm-2.2.0-8f05590043-d278126549.zip deleted file mode 100644 index 4f16e70a..00000000 Binary files a/.yarn/cache/nwsapi-npm-2.2.0-8f05590043-d278126549.zip and /dev/null differ diff --git a/.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-1809a366d2.zip b/.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-1809a366d2.zip deleted file mode 100644 index 297cc1ec..00000000 Binary files a/.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-1809a366d2.zip and /dev/null differ diff --git a/.yarn/cache/ob1-npm-0.80.12-b815aaa055-c78af51d6e.zip b/.yarn/cache/ob1-npm-0.80.12-b815aaa055-c78af51d6e.zip deleted file mode 100644 index f1668485..00000000 Binary files a/.yarn/cache/ob1-npm-0.80.12-b815aaa055-c78af51d6e.zip and /dev/null differ diff --git a/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip b/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip deleted file mode 100644 index 8c8ab03b..00000000 Binary files a/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip and /dev/null differ diff --git a/.yarn/cache/object-copy-npm-0.1.0-e229d02f2b-a9e35f07e3.zip b/.yarn/cache/object-copy-npm-0.1.0-e229d02f2b-a9e35f07e3.zip deleted file mode 100644 index 31801c61..00000000 Binary files a/.yarn/cache/object-copy-npm-0.1.0-e229d02f2b-a9e35f07e3.zip and /dev/null differ diff --git a/.yarn/cache/object-inspect-npm-1.10.3-5aa499f036-74e2a92c68.zip b/.yarn/cache/object-inspect-npm-1.10.3-5aa499f036-74e2a92c68.zip deleted file mode 100644 index 36707c5a..00000000 Binary files a/.yarn/cache/object-inspect-npm-1.10.3-5aa499f036-74e2a92c68.zip and /dev/null differ diff --git a/.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-3d81d02674.zip b/.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-3d81d02674.zip deleted file mode 100644 index 0f1124b1..00000000 Binary files a/.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-3d81d02674.zip and /dev/null differ diff --git a/.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-77abf807de.zip b/.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-77abf807de.zip deleted file mode 100644 index 5823def3..00000000 Binary files a/.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-77abf807de.zip and /dev/null differ diff --git a/.yarn/cache/object.assign-npm-4.1.2-d52edada1c-83fdff0208.zip b/.yarn/cache/object.assign-npm-4.1.2-d52edada1c-83fdff0208.zip deleted file mode 100644 index f1554847..00000000 Binary files a/.yarn/cache/object.assign-npm-4.1.2-d52edada1c-83fdff0208.zip and /dev/null differ diff --git a/.yarn/cache/object.entries-npm-1.1.3-204f993709-42751e9470.zip b/.yarn/cache/object.entries-npm-1.1.3-204f993709-42751e9470.zip deleted file mode 100644 index 49d5b9a9..00000000 Binary files a/.yarn/cache/object.entries-npm-1.1.3-204f993709-42751e9470.zip and /dev/null differ diff --git a/.yarn/cache/object.fromentries-npm-2.0.4-cc608f8739-62ae902d1b.zip b/.yarn/cache/object.fromentries-npm-2.0.4-cc608f8739-62ae902d1b.zip deleted file mode 100644 index cfb6825a..00000000 Binary files a/.yarn/cache/object.fromentries-npm-2.0.4-cc608f8739-62ae902d1b.zip and /dev/null differ diff --git a/.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-92d7226a6b.zip b/.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-92d7226a6b.zip deleted file mode 100644 index 700f3a6b..00000000 Binary files a/.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-92d7226a6b.zip and /dev/null differ diff --git a/.yarn/cache/object.values-npm-1.1.3-dd86635500-528523a295.zip b/.yarn/cache/object.values-npm-1.1.3-dd86635500-528523a295.zip deleted file mode 100644 index 58165a1e..00000000 Binary files a/.yarn/cache/object.values-npm-1.1.3-dd86635500-528523a295.zip and /dev/null differ diff --git a/.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-1db595bd96.zip b/.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-1db595bd96.zip deleted file mode 100644 index 3afaa2a9..00000000 Binary files a/.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-1db595bd96.zip and /dev/null differ diff --git a/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip b/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip deleted file mode 100644 index 2c026245..00000000 Binary files a/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip and /dev/null differ diff --git a/.yarn/cache/on-headers-npm-1.0.2-e7cd3ea25e-870766c163.zip b/.yarn/cache/on-headers-npm-1.0.2-e7cd3ea25e-870766c163.zip deleted file mode 100644 index 1e9301ef..00000000 Binary files a/.yarn/cache/on-headers-npm-1.0.2-e7cd3ea25e-870766c163.zip and /dev/null differ diff --git a/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip b/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip deleted file mode 100644 index 1b943eec..00000000 Binary files a/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip and /dev/null differ diff --git a/.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e9fd0695a0.zip b/.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e9fd0695a0.zip deleted file mode 100644 index 1c00b778..00000000 Binary files a/.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e9fd0695a0.zip and /dev/null differ diff --git a/.yarn/cache/open-npm-6.4.0-d2020c939f-9b1cfda7a6.zip b/.yarn/cache/open-npm-6.4.0-d2020c939f-9b1cfda7a6.zip deleted file mode 100644 index a11f6b10..00000000 Binary files a/.yarn/cache/open-npm-6.4.0-d2020c939f-9b1cfda7a6.zip and /dev/null differ diff --git a/.yarn/cache/open-npm-7.4.2-a378c23959-4fc02ed336.zip b/.yarn/cache/open-npm-7.4.2-a378c23959-4fc02ed336.zip deleted file mode 100644 index 312cb0df..00000000 Binary files a/.yarn/cache/open-npm-7.4.2-a378c23959-4fc02ed336.zip and /dev/null differ diff --git a/.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-6fa3c841b5.zip b/.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-6fa3c841b5.zip deleted file mode 100644 index 5b90ef62..00000000 Binary files a/.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-6fa3c841b5.zip and /dev/null differ diff --git a/.yarn/cache/optionator-npm-0.9.1-577e397aae-19cfb625ba.zip b/.yarn/cache/optionator-npm-0.9.1-577e397aae-19cfb625ba.zip deleted file mode 100644 index 820c7857..00000000 Binary files a/.yarn/cache/optionator-npm-0.9.1-577e397aae-19cfb625ba.zip and /dev/null differ diff --git a/.yarn/cache/ora-npm-5.1.0-0f7ce18b2d-16c0f1f54d.zip b/.yarn/cache/ora-npm-5.1.0-0f7ce18b2d-16c0f1f54d.zip deleted file mode 100644 index 0da5202d..00000000 Binary files a/.yarn/cache/ora-npm-5.1.0-0f7ce18b2d-16c0f1f54d.zip and /dev/null differ diff --git a/.yarn/cache/ora-npm-5.4.1-4f0343adb7-8d071828f4.zip b/.yarn/cache/ora-npm-5.4.1-4f0343adb7-8d071828f4.zip deleted file mode 100644 index 2ee716eb..00000000 Binary files a/.yarn/cache/ora-npm-5.4.1-4f0343adb7-8d071828f4.zip and /dev/null differ diff --git a/.yarn/cache/os-name-npm-4.0.0-a24c30b783-a1f1122587.zip b/.yarn/cache/os-name-npm-4.0.0-a24c30b783-a1f1122587.zip deleted file mode 100644 index 38c0254a..00000000 Binary files a/.yarn/cache/os-name-npm-4.0.0-a24c30b783-a1f1122587.zip and /dev/null differ diff --git a/.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-5666560f7b.zip b/.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-5666560f7b.zip deleted file mode 100644 index d68d7106..00000000 Binary files a/.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-5666560f7b.zip and /dev/null differ diff --git a/.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-2db3814fef.zip b/.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-2db3814fef.zip deleted file mode 100644 index 19c7d3aa..00000000 Binary files a/.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-2db3814fef.zip and /dev/null differ diff --git a/.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-7f1b64db17.zip b/.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-7f1b64db17.zip deleted file mode 100644 index ec00d536..00000000 Binary files a/.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-7f1b64db17.zip and /dev/null differ diff --git a/.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-5fbe2f1f19.zip b/.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-5fbe2f1f19.zip deleted file mode 100644 index 9b881720..00000000 Binary files a/.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-5fbe2f1f19.zip and /dev/null differ diff --git a/.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-93a654c53d.zip b/.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-93a654c53d.zip deleted file mode 100644 index 091273a2..00000000 Binary files a/.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-93a654c53d.zip and /dev/null differ diff --git a/.yarn/cache/p-limit-npm-1.3.0-fdb471d864-eb9d9bc378.zip b/.yarn/cache/p-limit-npm-1.3.0-fdb471d864-eb9d9bc378.zip deleted file mode 100644 index 8ab67876..00000000 Binary files a/.yarn/cache/p-limit-npm-1.3.0-fdb471d864-eb9d9bc378.zip and /dev/null differ diff --git a/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip b/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip deleted file mode 100644 index 099c3a07..00000000 Binary files a/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip and /dev/null differ diff --git a/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip b/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip deleted file mode 100644 index b87d97cc..00000000 Binary files a/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip and /dev/null differ diff --git a/.yarn/cache/p-locate-npm-2.0.0-3a2ee263dd-e2dceb9b49.zip b/.yarn/cache/p-locate-npm-2.0.0-3a2ee263dd-e2dceb9b49.zip deleted file mode 100644 index f6f9f09b..00000000 Binary files a/.yarn/cache/p-locate-npm-2.0.0-3a2ee263dd-e2dceb9b49.zip and /dev/null differ diff --git a/.yarn/cache/p-locate-npm-3.0.0-74de74f952-83991734a9.zip b/.yarn/cache/p-locate-npm-3.0.0-74de74f952-83991734a9.zip deleted file mode 100644 index 789312b8..00000000 Binary files a/.yarn/cache/p-locate-npm-3.0.0-74de74f952-83991734a9.zip and /dev/null differ diff --git a/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip b/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip deleted file mode 100644 index bf0aef9e..00000000 Binary files a/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip and /dev/null differ diff --git a/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip b/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip deleted file mode 100644 index 077f1c6e..00000000 Binary files a/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip and /dev/null differ diff --git a/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-7ba4a2b1e2.zip b/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-7ba4a2b1e2.zip deleted file mode 100644 index f5555c5b..00000000 Binary files a/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-7ba4a2b1e2.zip and /dev/null differ diff --git a/.yarn/cache/p-try-npm-1.0.0-7373139e40-20d9735f57.zip b/.yarn/cache/p-try-npm-1.0.0-7373139e40-20d9735f57.zip deleted file mode 100644 index 5ff0a34d..00000000 Binary files a/.yarn/cache/p-try-npm-1.0.0-7373139e40-20d9735f57.zip and /dev/null differ diff --git a/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip b/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip deleted file mode 100644 index bdcd88a3..00000000 Binary files a/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip and /dev/null differ diff --git a/.yarn/cache/package-json-npm-6.5.0-30e58237bb-adb8e49f35.zip b/.yarn/cache/package-json-npm-6.5.0-30e58237bb-adb8e49f35.zip deleted file mode 100644 index f1850ba4..00000000 Binary files a/.yarn/cache/package-json-npm-6.5.0-30e58237bb-adb8e49f35.zip and /dev/null differ diff --git a/.yarn/cache/param-case-npm-3.0.4-cfb242ad97-b34227fd0f.zip b/.yarn/cache/param-case-npm-3.0.4-cfb242ad97-b34227fd0f.zip deleted file mode 100644 index 8da8250a..00000000 Binary files a/.yarn/cache/param-case-npm-3.0.4-cfb242ad97-b34227fd0f.zip and /dev/null differ diff --git a/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip b/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip deleted file mode 100644 index 5b900e17..00000000 Binary files a/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip and /dev/null differ diff --git a/.yarn/cache/parse-github-repo-url-npm-1.4.1-a6f5f1254e-a584efd7ff.zip b/.yarn/cache/parse-github-repo-url-npm-1.4.1-a6f5f1254e-a584efd7ff.zip deleted file mode 100644 index 49266872..00000000 Binary files a/.yarn/cache/parse-github-repo-url-npm-1.4.1-a6f5f1254e-a584efd7ff.zip and /dev/null differ diff --git a/.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-39924c0ddb.zip b/.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-39924c0ddb.zip deleted file mode 100644 index e9b80492..00000000 Binary files a/.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-39924c0ddb.zip and /dev/null differ diff --git a/.yarn/cache/parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip b/.yarn/cache/parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip deleted file mode 100644 index 4832780e..00000000 Binary files a/.yarn/cache/parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip and /dev/null differ diff --git a/.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-0c0c299347.zip b/.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-0c0c299347.zip deleted file mode 100644 index 40dc907a..00000000 Binary files a/.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-0c0c299347.zip and /dev/null differ diff --git a/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip b/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip deleted file mode 100644 index 141b5217..00000000 Binary files a/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip and /dev/null differ diff --git a/.yarn/cache/parse-path-npm-4.0.3-6d729a9baf-7285b5d23f.zip b/.yarn/cache/parse-path-npm-4.0.3-6d729a9baf-7285b5d23f.zip deleted file mode 100644 index 0f1b210e..00000000 Binary files a/.yarn/cache/parse-path-npm-4.0.3-6d729a9baf-7285b5d23f.zip and /dev/null differ diff --git a/.yarn/cache/parse-url-npm-5.0.2-ebef68506c-6e7c586d95.zip b/.yarn/cache/parse-url-npm-5.0.2-ebef68506c-6e7c586d95.zip deleted file mode 100644 index fbb90f8e..00000000 Binary files a/.yarn/cache/parse-url-npm-5.0.2-ebef68506c-6e7c586d95.zip and /dev/null differ diff --git a/.yarn/cache/parse5-npm-6.0.1-70a35a494a-dfb110581f.zip b/.yarn/cache/parse5-npm-6.0.1-70a35a494a-dfb110581f.zip deleted file mode 100644 index 764c374f..00000000 Binary files a/.yarn/cache/parse5-npm-6.0.1-70a35a494a-dfb110581f.zip and /dev/null differ diff --git a/.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip b/.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip deleted file mode 100644 index 794eb17d..00000000 Binary files a/.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip and /dev/null differ diff --git a/.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-f83681c3c8.zip b/.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-f83681c3c8.zip deleted file mode 100644 index 4305e3d7..00000000 Binary files a/.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-f83681c3c8.zip and /dev/null differ diff --git a/.yarn/cache/path-dirname-npm-1.0.2-d158cba006-0d2f6604ae.zip b/.yarn/cache/path-dirname-npm-1.0.2-d158cba006-0d2f6604ae.zip deleted file mode 100644 index e9576b11..00000000 Binary files a/.yarn/cache/path-dirname-npm-1.0.2-d158cba006-0d2f6604ae.zip and /dev/null differ diff --git a/.yarn/cache/path-exists-npm-2.1.0-be4aa2cccc-fdb734f1d0.zip b/.yarn/cache/path-exists-npm-2.1.0-be4aa2cccc-fdb734f1d0.zip deleted file mode 100644 index 9b38c74f..00000000 Binary files a/.yarn/cache/path-exists-npm-2.1.0-be4aa2cccc-fdb734f1d0.zip and /dev/null differ diff --git a/.yarn/cache/path-exists-npm-3.0.0-e80371aa68-96e92643aa.zip b/.yarn/cache/path-exists-npm-3.0.0-e80371aa68-96e92643aa.zip deleted file mode 100644 index bdaa46fd..00000000 Binary files a/.yarn/cache/path-exists-npm-3.0.0-e80371aa68-96e92643aa.zip and /dev/null differ diff --git a/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip b/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip deleted file mode 100644 index b5048416..00000000 Binary files a/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip and /dev/null differ diff --git a/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip b/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip deleted file mode 100644 index ce195de7..00000000 Binary files a/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip and /dev/null differ diff --git a/.yarn/cache/path-key-npm-2.0.1-b1a971833d-6e654864e3.zip b/.yarn/cache/path-key-npm-2.0.1-b1a971833d-6e654864e3.zip deleted file mode 100644 index a643be7b..00000000 Binary files a/.yarn/cache/path-key-npm-2.0.1-b1a971833d-6e654864e3.zip and /dev/null differ diff --git a/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip b/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip deleted file mode 100644 index dd7212e2..00000000 Binary files a/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip and /dev/null differ diff --git a/.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-962a85dd38.zip b/.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-962a85dd38.zip deleted file mode 100644 index cb6f027e..00000000 Binary files a/.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-962a85dd38.zip and /dev/null differ diff --git a/.yarn/cache/path-type-npm-1.1.0-3949afd6c1-59a4b2c0e5.zip b/.yarn/cache/path-type-npm-1.1.0-3949afd6c1-59a4b2c0e5.zip deleted file mode 100644 index d58758a4..00000000 Binary files a/.yarn/cache/path-type-npm-1.1.0-3949afd6c1-59a4b2c0e5.zip and /dev/null differ diff --git a/.yarn/cache/path-type-npm-3.0.0-252361a0eb-735b35e256.zip b/.yarn/cache/path-type-npm-3.0.0-252361a0eb-735b35e256.zip deleted file mode 100644 index 3a59d9b0..00000000 Binary files a/.yarn/cache/path-type-npm-3.0.0-252361a0eb-735b35e256.zip and /dev/null differ diff --git a/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip b/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip deleted file mode 100644 index f37ca5bc..00000000 Binary files a/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip and /dev/null differ diff --git a/.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip b/.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip deleted file mode 100644 index fa9ee04f..00000000 Binary files a/.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip and /dev/null differ diff --git a/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-a2ad60d94d.zip b/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-a2ad60d94d.zip deleted file mode 100644 index b4c59f03..00000000 Binary files a/.yarn/cache/picocolors-npm-1.1.0-ea12a640bd-a2ad60d94d.zip and /dev/null differ diff --git a/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-f1ea1c8122.zip b/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-f1ea1c8122.zip deleted file mode 100644 index 5a7c54e6..00000000 Binary files a/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-f1ea1c8122.zip and /dev/null differ diff --git a/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-60c2595003.zip b/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-60c2595003.zip deleted file mode 100644 index dbf505d9..00000000 Binary files a/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-60c2595003.zip and /dev/null differ diff --git a/.yarn/cache/pify-npm-2.3.0-8b63310934-9503aaeaf4.zip b/.yarn/cache/pify-npm-2.3.0-8b63310934-9503aaeaf4.zip deleted file mode 100644 index 4cbc70a0..00000000 Binary files a/.yarn/cache/pify-npm-2.3.0-8b63310934-9503aaeaf4.zip and /dev/null differ diff --git a/.yarn/cache/pify-npm-3.0.0-679ee405c8-668c1dc8d9.zip b/.yarn/cache/pify-npm-3.0.0-679ee405c8-668c1dc8d9.zip deleted file mode 100644 index acdbd656..00000000 Binary files a/.yarn/cache/pify-npm-3.0.0-679ee405c8-668c1dc8d9.zip and /dev/null differ diff --git a/.yarn/cache/pify-npm-4.0.1-062756097b-8b97cbf9dc.zip b/.yarn/cache/pify-npm-4.0.1-062756097b-8b97cbf9dc.zip deleted file mode 100644 index c4e09aff..00000000 Binary files a/.yarn/cache/pify-npm-4.0.1-062756097b-8b97cbf9dc.zip and /dev/null differ diff --git a/.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-11d207257a.zip b/.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-11d207257a.zip deleted file mode 100644 index ecc40ed3..00000000 Binary files a/.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-11d207257a.zip and /dev/null differ diff --git a/.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-b53a4a2e73.zip b/.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-b53a4a2e73.zip deleted file mode 100644 index b7f8a1b9..00000000 Binary files a/.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-b53a4a2e73.zip and /dev/null differ diff --git a/.yarn/cache/pirates-npm-4.0.1-377058e8fc-091e232aac.zip b/.yarn/cache/pirates-npm-4.0.1-377058e8fc-091e232aac.zip deleted file mode 100644 index af81ad54..00000000 Binary files a/.yarn/cache/pirates-npm-4.0.1-377058e8fc-091e232aac.zip and /dev/null differ diff --git a/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-d02dda76f4.zip b/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-d02dda76f4.zip deleted file mode 100644 index ba21d414..00000000 Binary files a/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-d02dda76f4.zip and /dev/null differ diff --git a/.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-70c9476ffe.zip b/.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-70c9476ffe.zip deleted file mode 100644 index f2d90fc3..00000000 Binary files a/.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-70c9476ffe.zip and /dev/null differ diff --git a/.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip b/.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip deleted file mode 100644 index 4718605f..00000000 Binary files a/.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip and /dev/null differ diff --git a/.yarn/cache/platform-npm-1.3.6-8c3cef9352-1f2d8333e2.zip b/.yarn/cache/platform-npm-1.3.6-8c3cef9352-1f2d8333e2.zip deleted file mode 100644 index f053de17..00000000 Binary files a/.yarn/cache/platform-npm-1.3.6-8c3cef9352-1f2d8333e2.zip and /dev/null differ diff --git a/.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-dedb99913c.zip b/.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-dedb99913c.zip deleted file mode 100644 index e7048c4e..00000000 Binary files a/.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-dedb99913c.zip and /dev/null differ diff --git a/.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-dac294ad5f.zip b/.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-dac294ad5f.zip deleted file mode 100644 index 0cc92fba..00000000 Binary files a/.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-dac294ad5f.zip and /dev/null differ diff --git a/.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-946a9f60d3.zip b/.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-946a9f60d3.zip deleted file mode 100644 index cfc6067c..00000000 Binary files a/.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-946a9f60d3.zip and /dev/null differ diff --git a/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-0b9d2c7680.zip b/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-0b9d2c7680.zip deleted file mode 100644 index 236bc380..00000000 Binary files a/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-0b9d2c7680.zip and /dev/null differ diff --git a/.yarn/cache/prepend-file-npm-2.0.0-396312303b-79bcbed105.zip b/.yarn/cache/prepend-file-npm-2.0.0-396312303b-79bcbed105.zip deleted file mode 100644 index f95ee5dc..00000000 Binary files a/.yarn/cache/prepend-file-npm-2.0.0-396312303b-79bcbed105.zip and /dev/null differ diff --git a/.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-7694a95254.zip b/.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-7694a95254.zip deleted file mode 100644 index e068e24e..00000000 Binary files a/.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-7694a95254.zip and /dev/null differ diff --git a/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip b/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip deleted file mode 100644 index ec7b0a0b..00000000 Binary files a/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip and /dev/null differ diff --git a/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-b3a03b35fa.zip b/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-b3a03b35fa.zip deleted file mode 100644 index d74ddc7d..00000000 Binary files a/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-b3a03b35fa.zip and /dev/null differ diff --git a/.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-94a4c661bf.zip b/.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-94a4c661bf.zip deleted file mode 100644 index f5b7a40e..00000000 Binary files a/.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-94a4c661bf.zip and /dev/null differ diff --git a/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-dea96bc83c.zip b/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-dea96bc83c.zip deleted file mode 100644 index dc231885..00000000 Binary files a/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-dea96bc83c.zip and /dev/null differ diff --git a/.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip b/.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip deleted file mode 100644 index 33fadfd3..00000000 Binary files a/.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip and /dev/null differ diff --git a/.yarn/cache/progress-npm-2.0.3-d1f87e2ac6-e6f0bcb71f.zip b/.yarn/cache/progress-npm-2.0.3-d1f87e2ac6-e6f0bcb71f.zip deleted file mode 100644 index 03d4c4c2..00000000 Binary files a/.yarn/cache/progress-npm-2.0.3-d1f87e2ac6-e6f0bcb71f.zip and /dev/null differ diff --git a/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-1560d413ea.zip b/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-1560d413ea.zip deleted file mode 100644 index fafed3e3..00000000 Binary files a/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-1560d413ea.zip and /dev/null differ diff --git a/.yarn/cache/promise-npm-8.3.0-fbfb957417-55e9d0d723.zip b/.yarn/cache/promise-npm-8.3.0-fbfb957417-55e9d0d723.zip deleted file mode 100644 index a9b93205..00000000 Binary files a/.yarn/cache/promise-npm-8.3.0-fbfb957417-55e9d0d723.zip and /dev/null differ diff --git a/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-96e1a82453.zip b/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-96e1a82453.zip deleted file mode 100644 index a361d796..00000000 Binary files a/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-96e1a82453.zip and /dev/null differ diff --git a/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-ee40d417a7.zip b/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-ee40d417a7.zip deleted file mode 100644 index 71be8ce1..00000000 Binary files a/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-ee40d417a7.zip and /dev/null differ diff --git a/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-c52536521a.zip b/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-c52536521a.zip deleted file mode 100644 index 06c10d76..00000000 Binary files a/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-c52536521a.zip and /dev/null differ diff --git a/.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-1d2b646255.zip b/.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-1d2b646255.zip deleted file mode 100644 index 6fe23ca3..00000000 Binary files a/.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-1d2b646255.zip and /dev/null differ diff --git a/.yarn/cache/protocols-npm-1.4.8-f05b04a69f-2d555c013d.zip b/.yarn/cache/protocols-npm-1.4.8-f05b04a69f-2d555c013d.zip deleted file mode 100644 index 9b437879..00000000 Binary files a/.yarn/cache/protocols-npm-1.4.8-f05b04a69f-2d555c013d.zip and /dev/null differ diff --git a/.yarn/cache/psl-npm-1.8.0-226099d70e-5f62a8eca0.zip b/.yarn/cache/psl-npm-1.8.0-226099d70e-5f62a8eca0.zip deleted file mode 100644 index 426d5011..00000000 Binary files a/.yarn/cache/psl-npm-1.8.0-226099d70e-5f62a8eca0.zip and /dev/null differ diff --git a/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip b/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip deleted file mode 100644 index 05856836..00000000 Binary files a/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip and /dev/null differ diff --git a/.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-939daa010c.zip b/.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-939daa010c.zip deleted file mode 100644 index 211cf447..00000000 Binary files a/.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-939daa010c.zip and /dev/null differ diff --git a/.yarn/cache/pupa-npm-2.1.1-fb256825ba-49529e5037.zip b/.yarn/cache/pupa-npm-2.1.1-fb256825ba-49529e5037.zip deleted file mode 100644 index 2cb125c1..00000000 Binary files a/.yarn/cache/pupa-npm-2.1.1-fb256825ba-49529e5037.zip and /dev/null differ diff --git a/.yarn/cache/q-npm-1.5.1-a28b3cfeaf-70c4a30b30.zip b/.yarn/cache/q-npm-1.5.1-a28b3cfeaf-70c4a30b30.zip deleted file mode 100644 index 872ee805..00000000 Binary files a/.yarn/cache/q-npm-1.5.1-a28b3cfeaf-70c4a30b30.zip and /dev/null differ diff --git a/.yarn/cache/qs-npm-6.10.1-12d3ab7795-95f6725796.zip b/.yarn/cache/qs-npm-6.10.1-12d3ab7795-95f6725796.zip deleted file mode 100644 index e87597b6..00000000 Binary files a/.yarn/cache/qs-npm-6.10.1-12d3ab7795-95f6725796.zip and /dev/null differ diff --git a/.yarn/cache/qs-npm-6.5.2-dbf9d8386b-ef17caa6e1.zip b/.yarn/cache/qs-npm-6.5.2-dbf9d8386b-ef17caa6e1.zip deleted file mode 100644 index 6bc244a0..00000000 Binary files a/.yarn/cache/qs-npm-6.5.2-dbf9d8386b-ef17caa6e1.zip and /dev/null differ diff --git a/.yarn/cache/query-string-npm-6.14.1-dad16e37e6-95f5a372f7.zip b/.yarn/cache/query-string-npm-6.14.1-dad16e37e6-95f5a372f7.zip deleted file mode 100644 index bc1956af..00000000 Binary files a/.yarn/cache/query-string-npm-6.14.1-dad16e37e6-95f5a372f7.zip and /dev/null differ diff --git a/.yarn/cache/querystring-npm-0.2.1-15cb60859d-5ae2eeb8c6.zip b/.yarn/cache/querystring-npm-0.2.1-15cb60859d-5ae2eeb8c6.zip deleted file mode 100644 index 07857150..00000000 Binary files a/.yarn/cache/querystring-npm-0.2.1-15cb60859d-5ae2eeb8c6.zip and /dev/null differ diff --git a/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-72900df061.zip b/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-72900df061.zip deleted file mode 100644 index 6ebde3fc..00000000 Binary files a/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-72900df061.zip and /dev/null differ diff --git a/.yarn/cache/queue-npm-6.0.2-ebbcf599cf-3437954ef1.zip b/.yarn/cache/queue-npm-6.0.2-ebbcf599cf-3437954ef1.zip deleted file mode 100644 index 24870a4e..00000000 Binary files a/.yarn/cache/queue-npm-6.0.2-ebbcf599cf-3437954ef1.zip and /dev/null differ diff --git a/.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-5c7c75f1c6.zip b/.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-5c7c75f1c6.zip deleted file mode 100644 index 204dcbbb..00000000 Binary files a/.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-5c7c75f1c6.zip and /dev/null differ diff --git a/.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-a516faa255.zip b/.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-a516faa255.zip deleted file mode 100644 index 0720cd35..00000000 Binary files a/.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-a516faa255.zip and /dev/null differ diff --git a/.yarn/cache/ramda-npm-0.27.2-5f4ede0eb9-75b359ed0e.zip b/.yarn/cache/ramda-npm-0.27.2-5f4ede0eb9-75b359ed0e.zip deleted file mode 100644 index 3695eeba..00000000 Binary files a/.yarn/cache/ramda-npm-0.27.2-5f4ede0eb9-75b359ed0e.zip and /dev/null differ diff --git a/.yarn/cache/range-parser-npm-1.2.1-1a470fa390-ce21ef2a2d.zip b/.yarn/cache/range-parser-npm-1.2.1-1a470fa390-ce21ef2a2d.zip deleted file mode 100644 index 86dc0e19..00000000 Binary files a/.yarn/cache/range-parser-npm-1.2.1-1a470fa390-ce21ef2a2d.zip and /dev/null differ diff --git a/.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip b/.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip deleted file mode 100644 index ca4a7913..00000000 Binary files a/.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip and /dev/null differ diff --git a/.yarn/cache/react-devtools-core-npm-5.3.1-57e06d278c-247056e0cb.zip b/.yarn/cache/react-devtools-core-npm-5.3.1-57e06d278c-247056e0cb.zip deleted file mode 100644 index 02e37bce..00000000 Binary files a/.yarn/cache/react-devtools-core-npm-5.3.1-57e06d278c-247056e0cb.zip and /dev/null differ diff --git a/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip b/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip deleted file mode 100644 index 39d1323f..00000000 Binary files a/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip and /dev/null differ diff --git a/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-73b36281e5.zip b/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-73b36281e5.zip deleted file mode 100644 index e8b121d0..00000000 Binary files a/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-73b36281e5.zip and /dev/null differ diff --git a/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-d5f60c87d2.zip b/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-d5f60c87d2.zip deleted file mode 100644 index 9dbb5c43..00000000 Binary files a/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-d5f60c87d2.zip and /dev/null differ diff --git a/.yarn/cache/react-native-npm-0.74.5-3cfd406787-3ffd5ec753.zip b/.yarn/cache/react-native-npm-0.74.5-3cfd406787-3ffd5ec753.zip deleted file mode 100644 index df8a784f..00000000 Binary files a/.yarn/cache/react-native-npm-0.74.5-3cfd406787-3ffd5ec753.zip and /dev/null differ diff --git a/.yarn/cache/react-npm-17.0.2-99ba37d931-ece60c31c1.zip b/.yarn/cache/react-npm-17.0.2-99ba37d931-ece60c31c1.zip deleted file mode 100644 index d6a9074f..00000000 Binary files a/.yarn/cache/react-npm-17.0.2-99ba37d931-ece60c31c1.zip and /dev/null differ diff --git a/.yarn/cache/react-refresh-npm-0.14.2-95df341b4d-512abf9727.zip b/.yarn/cache/react-refresh-npm-0.14.2-95df341b4d-512abf9727.zip deleted file mode 100644 index 4a6273c1..00000000 Binary files a/.yarn/cache/react-refresh-npm-0.14.2-95df341b4d-512abf9727.zip and /dev/null differ diff --git a/.yarn/cache/react-refresh-npm-0.4.3-9a91aa5898-0cb1e09311.zip b/.yarn/cache/react-refresh-npm-0.4.3-9a91aa5898-0cb1e09311.zip deleted file mode 100644 index 6521b5df..00000000 Binary files a/.yarn/cache/react-refresh-npm-0.4.3-9a91aa5898-0cb1e09311.zip and /dev/null differ diff --git a/.yarn/cache/react-shallow-renderer-npm-16.15.0-cf95219885-06457fe5bc.zip b/.yarn/cache/react-shallow-renderer-npm-16.15.0-cf95219885-06457fe5bc.zip deleted file mode 100644 index 19e9b10d..00000000 Binary files a/.yarn/cache/react-shallow-renderer-npm-16.15.0-cf95219885-06457fe5bc.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-a0f5d5e322.zip b/.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-a0f5d5e322.zip deleted file mode 100644 index 2bb517b0..00000000 Binary files a/.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-a0f5d5e322.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-npm-3.0.0-41471436cb-398903ebae.zip b/.yarn/cache/read-pkg-npm-3.0.0-41471436cb-398903ebae.zip deleted file mode 100644 index e0a22aff..00000000 Binary files a/.yarn/cache/read-pkg-npm-3.0.0-41471436cb-398903ebae.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-eb696e6052.zip b/.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-eb696e6052.zip deleted file mode 100644 index 9749e742..00000000 Binary files a/.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-eb696e6052.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-up-npm-1.0.1-5b23d2a7ab-d18399a0f4.zip b/.yarn/cache/read-pkg-up-npm-1.0.1-5b23d2a7ab-d18399a0f4.zip deleted file mode 100644 index 5af0d288..00000000 Binary files a/.yarn/cache/read-pkg-up-npm-1.0.1-5b23d2a7ab-d18399a0f4.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-up-npm-3.0.0-3d7faf047f-16175573f2.zip b/.yarn/cache/read-pkg-up-npm-3.0.0-3d7faf047f-16175573f2.zip deleted file mode 100644 index f1f0a309..00000000 Binary files a/.yarn/cache/read-pkg-up-npm-3.0.0-3d7faf047f-16175573f2.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.zip b/.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.zip deleted file mode 100644 index 04f7307c..00000000 Binary files a/.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.zip and /dev/null differ diff --git a/.yarn/cache/readable-stream-npm-2.3.7-77b22a9818-d04c677c17.zip b/.yarn/cache/readable-stream-npm-2.3.7-77b22a9818-d04c677c17.zip deleted file mode 100644 index 80ed5fbb..00000000 Binary files a/.yarn/cache/readable-stream-npm-2.3.7-77b22a9818-d04c677c17.zip and /dev/null differ diff --git a/.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-b80b3e6a7f.zip b/.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-b80b3e6a7f.zip deleted file mode 100644 index 57b8b2b9..00000000 Binary files a/.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-b80b3e6a7f.zip and /dev/null differ diff --git a/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-d9e3e53193.zip b/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-d9e3e53193.zip deleted file mode 100644 index 1e44a541..00000000 Binary files a/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-d9e3e53193.zip and /dev/null differ diff --git a/.yarn/cache/readdirp-npm-2.2.1-33cb5df2b8-14af3408ac.zip b/.yarn/cache/readdirp-npm-2.2.1-33cb5df2b8-14af3408ac.zip deleted file mode 100644 index e5daebe6..00000000 Binary files a/.yarn/cache/readdirp-npm-2.2.1-33cb5df2b8-14af3408ac.zip and /dev/null differ diff --git a/.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-5441c90a13.zip b/.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-5441c90a13.zip deleted file mode 100644 index 3798e299..00000000 Binary files a/.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-5441c90a13.zip and /dev/null differ diff --git a/.yarn/cache/readline-npm-1.3.0-c1788eeabc-2cb7c27433.zip b/.yarn/cache/readline-npm-1.3.0-c1788eeabc-2cb7c27433.zip deleted file mode 100644 index f550cbe3..00000000 Binary files a/.yarn/cache/readline-npm-1.3.0-c1788eeabc-2cb7c27433.zip and /dev/null differ diff --git a/.yarn/cache/recast-npm-0.21.5-8dcd3e46d3-b41da2bcf7.zip b/.yarn/cache/recast-npm-0.21.5-8dcd3e46d3-b41da2bcf7.zip deleted file mode 100644 index 13260ca0..00000000 Binary files a/.yarn/cache/recast-npm-0.21.5-8dcd3e46d3-b41da2bcf7.zip and /dev/null differ diff --git a/.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-fe76bf9c21.zip b/.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-fe76bf9c21.zip deleted file mode 100644 index f571eebe..00000000 Binary files a/.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-fe76bf9c21.zip and /dev/null differ diff --git a/.yarn/cache/redent-npm-1.0.0-b4da60611f-2bb8f76fda.zip b/.yarn/cache/redent-npm-1.0.0-b4da60611f-2bb8f76fda.zip deleted file mode 100644 index ce4888f0..00000000 Binary files a/.yarn/cache/redent-npm-1.0.0-b4da60611f-2bb8f76fda.zip and /dev/null differ diff --git a/.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip b/.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip deleted file mode 100644 index f0b77dfb..00000000 Binary files a/.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip and /dev/null differ diff --git a/.yarn/cache/regenerate-npm-1.4.2-b296c5b63a-dc6c95ae4b.zip b/.yarn/cache/regenerate-npm-1.4.2-b296c5b63a-dc6c95ae4b.zip deleted file mode 100644 index c525e74f..00000000 Binary files a/.yarn/cache/regenerate-npm-1.4.2-b296c5b63a-dc6c95ae4b.zip and /dev/null differ diff --git a/.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-9150eae6fe.zip b/.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-9150eae6fe.zip deleted file mode 100644 index 153a110e..00000000 Binary files a/.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-9150eae6fe.zip and /dev/null differ diff --git a/.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-403fe5bd7b.zip b/.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-403fe5bd7b.zip deleted file mode 100644 index dbfdb63e..00000000 Binary files a/.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-403fe5bd7b.zip and /dev/null differ diff --git a/.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-d493e9e118.zip b/.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-d493e9e118.zip deleted file mode 100644 index d903881c..00000000 Binary files a/.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-d493e9e118.zip and /dev/null differ diff --git a/.yarn/cache/regenerator-runtime-npm-0.13.8-0450f887d6-f56633f805.zip b/.yarn/cache/regenerator-runtime-npm-0.13.8-0450f887d6-f56633f805.zip deleted file mode 100644 index 1cbebe6a..00000000 Binary files a/.yarn/cache/regenerator-runtime-npm-0.13.8-0450f887d6-f56633f805.zip and /dev/null differ diff --git a/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-5db3161abb.zip b/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-5db3161abb.zip deleted file mode 100644 index 176e7550..00000000 Binary files a/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-5db3161abb.zip and /dev/null differ diff --git a/.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-f9db6e6f00.zip b/.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-f9db6e6f00.zip deleted file mode 100644 index b8283dbc..00000000 Binary files a/.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-f9db6e6f00.zip and /dev/null differ diff --git a/.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3081403de7.zip b/.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3081403de7.zip deleted file mode 100644 index d147b240..00000000 Binary files a/.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3081403de7.zip and /dev/null differ diff --git a/.yarn/cache/regexp.prototype.flags-npm-1.3.1-f0c34f894f-751e69bf6c.zip b/.yarn/cache/regexp.prototype.flags-npm-1.3.1-f0c34f894f-751e69bf6c.zip deleted file mode 100644 index 92eb88a8..00000000 Binary files a/.yarn/cache/regexp.prototype.flags-npm-1.3.1-f0c34f894f-751e69bf6c.zip and /dev/null differ diff --git a/.yarn/cache/regexpp-npm-3.1.0-94a1868d49-2f68db77f3.zip b/.yarn/cache/regexpp-npm-3.1.0-94a1868d49-2f68db77f3.zip deleted file mode 100644 index a7292e1f..00000000 Binary files a/.yarn/cache/regexpp-npm-3.1.0-94a1868d49-2f68db77f3.zip and /dev/null differ diff --git a/.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-3d1b6c6117.zip b/.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-3d1b6c6117.zip deleted file mode 100644 index 800af19d..00000000 Binary files a/.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-3d1b6c6117.zip and /dev/null differ diff --git a/.yarn/cache/regexpu-core-npm-5.3.2-89effc52a2-ed0d7c66d8.zip b/.yarn/cache/regexpu-core-npm-5.3.2-89effc52a2-ed0d7c66d8.zip deleted file mode 100644 index d1c53522..00000000 Binary files a/.yarn/cache/regexpu-core-npm-5.3.2-89effc52a2-ed0d7c66d8.zip and /dev/null differ diff --git a/.yarn/cache/registry-auth-token-npm-4.2.1-200e2be697-d1a5c28c0b.zip b/.yarn/cache/registry-auth-token-npm-4.2.1-200e2be697-d1a5c28c0b.zip deleted file mode 100644 index fcd418c4..00000000 Binary files a/.yarn/cache/registry-auth-token-npm-4.2.1-200e2be697-d1a5c28c0b.zip and /dev/null differ diff --git a/.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-bcea86c84a.zip b/.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-bcea86c84a.zip deleted file mode 100644 index de154212..00000000 Binary files a/.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-bcea86c84a.zip and /dev/null differ diff --git a/.yarn/cache/regjsgen-npm-0.5.2-4c9c408ab2-4f8dc74b5a.zip b/.yarn/cache/regjsgen-npm-0.5.2-4c9c408ab2-4f8dc74b5a.zip deleted file mode 100644 index b44cbf25..00000000 Binary files a/.yarn/cache/regjsgen-npm-0.5.2-4c9c408ab2-4f8dc74b5a.zip and /dev/null differ diff --git a/.yarn/cache/regjsparser-npm-0.6.9-4fe5869344-7654f46607.zip b/.yarn/cache/regjsparser-npm-0.6.9-4fe5869344-7654f46607.zip deleted file mode 100644 index 84dcfac1..00000000 Binary files a/.yarn/cache/regjsparser-npm-0.6.9-4fe5869344-7654f46607.zip and /dev/null differ diff --git a/.yarn/cache/regjsparser-npm-0.9.1-47cd7c2ee2-be7757ef76.zip b/.yarn/cache/regjsparser-npm-0.9.1-47cd7c2ee2-be7757ef76.zip deleted file mode 100644 index 34426cc0..00000000 Binary files a/.yarn/cache/regjsparser-npm-0.9.1-47cd7c2ee2-be7757ef76.zip and /dev/null differ diff --git a/.yarn/cache/release-it-npm-14.0.4-f6f97538e0-c82645d90e.zip b/.yarn/cache/release-it-npm-14.0.4-f6f97538e0-c82645d90e.zip deleted file mode 100644 index d03be5b8..00000000 Binary files a/.yarn/cache/release-it-npm-14.0.4-f6f97538e0-c82645d90e.zip and /dev/null differ diff --git a/.yarn/cache/release-it-patch-dd4968a530-d9cff90c75.zip b/.yarn/cache/release-it-patch-dd4968a530-d9cff90c75.zip deleted file mode 100644 index d9a67c6b..00000000 Binary files a/.yarn/cache/release-it-patch-dd4968a530-d9cff90c75.zip and /dev/null differ diff --git a/.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-d3c20b5a2d.zip b/.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-d3c20b5a2d.zip deleted file mode 100644 index 33c88a9a..00000000 Binary files a/.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-d3c20b5a2d.zip and /dev/null differ diff --git a/.yarn/cache/repeat-element-npm-1.1.4-7e649ab5b1-1edd0301b7.zip b/.yarn/cache/repeat-element-npm-1.1.4-7e649ab5b1-1edd0301b7.zip deleted file mode 100644 index 2b5c2447..00000000 Binary files a/.yarn/cache/repeat-element-npm-1.1.4-7e649ab5b1-1edd0301b7.zip and /dev/null differ diff --git a/.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-1b809fc6db.zip b/.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-1b809fc6db.zip deleted file mode 100644 index c42d7fea..00000000 Binary files a/.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-1b809fc6db.zip and /dev/null differ diff --git a/.yarn/cache/repeating-npm-2.0.1-b05693cc77-d2db0b69c5.zip b/.yarn/cache/repeating-npm-2.0.1-b05693cc77-d2db0b69c5.zip deleted file mode 100644 index d4ae2d2d..00000000 Binary files a/.yarn/cache/repeating-npm-2.0.1-b05693cc77-d2db0b69c5.zip and /dev/null differ diff --git a/.yarn/cache/request-npm-2.88.2-f4a57c72c4-005b8b237b.zip b/.yarn/cache/request-npm-2.88.2-f4a57c72c4-005b8b237b.zip deleted file mode 100644 index c2ec3596..00000000 Binary files a/.yarn/cache/request-npm-2.88.2-f4a57c72c4-005b8b237b.zip and /dev/null differ diff --git a/.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-79714e46b0.zip b/.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-79714e46b0.zip deleted file mode 100644 index 54f283af..00000000 Binary files a/.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-79714e46b0.zip and /dev/null differ diff --git a/.yarn/cache/request-promise-native-npm-1.0.9-6ae8e592e8-6df0cf75cb.zip b/.yarn/cache/request-promise-native-npm-1.0.9-6ae8e592e8-6df0cf75cb.zip deleted file mode 100644 index 1aea51ae..00000000 Binary files a/.yarn/cache/request-promise-native-npm-1.0.9-6ae8e592e8-6df0cf75cb.zip and /dev/null differ diff --git a/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-a72468e258.zip b/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-a72468e258.zip deleted file mode 100644 index bc4ba9cb..00000000 Binary files a/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-a72468e258.zip and /dev/null differ diff --git a/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-839a3a8901.zip b/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-839a3a8901.zip deleted file mode 100644 index 9dcfd42e..00000000 Binary files a/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-839a3a8901.zip and /dev/null differ diff --git a/.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8604a570c0.zip b/.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8604a570c0.zip deleted file mode 100644 index 749ee6f4..00000000 Binary files a/.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8604a570c0.zip and /dev/null differ diff --git a/.yarn/cache/resolve-alpn-npm-1.1.2-cb74069612-f66f105a88.zip b/.yarn/cache/resolve-alpn-npm-1.1.2-cb74069612-f66f105a88.zip deleted file mode 100644 index ca005d57..00000000 Binary files a/.yarn/cache/resolve-alpn-npm-1.1.2-cb74069612-f66f105a88.zip and /dev/null differ diff --git a/.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip b/.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip deleted file mode 100644 index d629f224..00000000 Binary files a/.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip and /dev/null differ diff --git a/.yarn/cache/resolve-from-npm-3.0.0-0bff35697e-c4189f1592.zip b/.yarn/cache/resolve-from-npm-3.0.0-0bff35697e-c4189f1592.zip deleted file mode 100644 index 8f971f94..00000000 Binary files a/.yarn/cache/resolve-from-npm-3.0.0-0bff35697e-c4189f1592.zip and /dev/null differ diff --git a/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-91eb76ce83.zip b/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-91eb76ce83.zip deleted file mode 100644 index 6f45f0ef..00000000 Binary files a/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-91eb76ce83.zip and /dev/null differ diff --git a/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-be18a5e4d7.zip b/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-be18a5e4d7.zip deleted file mode 100644 index eca22531..00000000 Binary files a/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-be18a5e4d7.zip and /dev/null differ diff --git a/.yarn/cache/resolve-global-npm-1.0.0-9097e8a466-c4e11d33e8.zip b/.yarn/cache/resolve-global-npm-1.0.0-9097e8a466-c4e11d33e8.zip deleted file mode 100644 index ee27f613..00000000 Binary files a/.yarn/cache/resolve-global-npm-1.0.0-9097e8a466-c4e11d33e8.zip and /dev/null differ diff --git a/.yarn/cache/resolve-npm-1.20.0-1bc5878aa9-5a2cc3254c.zip b/.yarn/cache/resolve-npm-1.20.0-1bc5878aa9-5a2cc3254c.zip deleted file mode 100644 index 265226a4..00000000 Binary files a/.yarn/cache/resolve-npm-1.20.0-1bc5878aa9-5a2cc3254c.zip and /dev/null differ diff --git a/.yarn/cache/resolve-npm-2.0.0-next.3-6be30bb506-2037883948.zip b/.yarn/cache/resolve-npm-2.0.0-next.3-6be30bb506-2037883948.zip deleted file mode 100644 index 3eba5ff8..00000000 Binary files a/.yarn/cache/resolve-npm-2.0.0-next.3-6be30bb506-2037883948.zip and /dev/null differ diff --git a/.yarn/cache/resolve-patch-63f1eb0464-197ca6b762.zip b/.yarn/cache/resolve-patch-63f1eb0464-197ca6b762.zip deleted file mode 100644 index 2e5345f2..00000000 Binary files a/.yarn/cache/resolve-patch-63f1eb0464-197ca6b762.zip and /dev/null differ diff --git a/.yarn/cache/resolve-patch-c1472719c0-e29030dd55.zip b/.yarn/cache/resolve-patch-c1472719c0-e29030dd55.zip deleted file mode 100644 index baafd022..00000000 Binary files a/.yarn/cache/resolve-patch-c1472719c0-e29030dd55.zip and /dev/null differ diff --git a/.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-c8bbf63857.zip b/.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-c8bbf63857.zip deleted file mode 100644 index 6ccd5527..00000000 Binary files a/.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-c8bbf63857.zip and /dev/null differ diff --git a/.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-2e9e70f1dc.zip b/.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-2e9e70f1dc.zip deleted file mode 100644 index 28377c26..00000000 Binary files a/.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-2e9e70f1dc.zip and /dev/null differ diff --git a/.yarn/cache/responselike-npm-2.0.0-7813864e97-6a4d32c37d.zip b/.yarn/cache/responselike-npm-2.0.0-7813864e97-6a4d32c37d.zip deleted file mode 100644 index 8a908923..00000000 Binary files a/.yarn/cache/responselike-npm-2.0.0-7813864e97-6a4d32c37d.zip and /dev/null differ diff --git a/.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-f877dd8741.zip b/.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-f877dd8741.zip deleted file mode 100644 index f11afe99..00000000 Binary files a/.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-f877dd8741.zip and /dev/null differ diff --git a/.yarn/cache/ret-npm-0.1.15-0d3c19de76-07c9e7619b.zip b/.yarn/cache/ret-npm-0.1.15-0d3c19de76-07c9e7619b.zip deleted file mode 100644 index d30a5c94..00000000 Binary files a/.yarn/cache/ret-npm-0.1.15-0d3c19de76-07c9e7619b.zip and /dev/null differ diff --git a/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-1f914879f9.zip b/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-1f914879f9.zip deleted file mode 100644 index 4b0d8797..00000000 Binary files a/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-1f914879f9.zip and /dev/null differ diff --git a/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-14222c9e1d.zip b/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-14222c9e1d.zip deleted file mode 100644 index dae6d2ed..00000000 Binary files a/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-14222c9e1d.zip and /dev/null differ diff --git a/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-756419f2fa.zip b/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-756419f2fa.zip deleted file mode 100644 index 3525dda1..00000000 Binary files a/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-756419f2fa.zip and /dev/null differ diff --git a/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-063ffaccaa.zip b/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-063ffaccaa.zip deleted file mode 100644 index 7706eede..00000000 Binary files a/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-063ffaccaa.zip and /dev/null differ diff --git a/.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-3c81905a0c.zip b/.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-3c81905a0c.zip deleted file mode 100644 index 3166b321..00000000 Binary files a/.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-3c81905a0c.zip and /dev/null differ diff --git a/.yarn/cache/run-async-npm-2.4.1-a94bb90861-c79551224d.zip b/.yarn/cache/run-async-npm-2.4.1-a94bb90861-c79551224d.zip deleted file mode 100644 index b613ab44..00000000 Binary files a/.yarn/cache/run-async-npm-2.4.1-a94bb90861-c79551224d.zip and /dev/null differ diff --git a/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip b/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip deleted file mode 100644 index fefbad56..00000000 Binary files a/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip and /dev/null differ diff --git a/.yarn/cache/rxjs-npm-6.6.7-055046ea3c-c8263ebb20.zip b/.yarn/cache/rxjs-npm-6.6.7-055046ea3c-c8263ebb20.zip deleted file mode 100644 index 9d3267db..00000000 Binary files a/.yarn/cache/rxjs-npm-6.6.7-055046ea3c-c8263ebb20.zip and /dev/null differ diff --git a/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-7eb5b48f2e.zip b/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-7eb5b48f2e.zip deleted file mode 100644 index 3aeead19..00000000 Binary files a/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-7eb5b48f2e.zip and /dev/null differ diff --git a/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-32872cd0ff.zip b/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-32872cd0ff.zip deleted file mode 100644 index 498ffdef..00000000 Binary files a/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-32872cd0ff.zip and /dev/null differ diff --git a/.yarn/cache/safe-regex-npm-1.1.0-a908e8515c-5405b5a3ef.zip b/.yarn/cache/safe-regex-npm-1.1.0-a908e8515c-5405b5a3ef.zip deleted file mode 100644 index f7cf2ce4..00000000 Binary files a/.yarn/cache/safe-regex-npm-1.1.0-a908e8515c-5405b5a3ef.zip and /dev/null differ diff --git a/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7eaf7a0cf3.zip b/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7eaf7a0cf3.zip deleted file mode 100644 index ad9ac7f5..00000000 Binary files a/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7eaf7a0cf3.zip and /dev/null differ diff --git a/.yarn/cache/sane-npm-4.1.0-8ab7d6a963-2bcdb8d563.zip b/.yarn/cache/sane-npm-4.1.0-8ab7d6a963-2bcdb8d563.zip deleted file mode 100644 index cf494518..00000000 Binary files a/.yarn/cache/sane-npm-4.1.0-8ab7d6a963-2bcdb8d563.zip and /dev/null differ diff --git a/.yarn/cache/saxes-npm-5.0.1-57abf031ae-148b5f98fd.zip b/.yarn/cache/saxes-npm-5.0.1-57abf031ae-148b5f98fd.zip deleted file mode 100644 index abba3137..00000000 Binary files a/.yarn/cache/saxes-npm-5.0.1-57abf031ae-148b5f98fd.zip and /dev/null differ diff --git a/.yarn/cache/scheduler-npm-0.24.0-canary-efb381bbf-20230505-6f74d88bd1-862881c8d3.zip b/.yarn/cache/scheduler-npm-0.24.0-canary-efb381bbf-20230505-6f74d88bd1-862881c8d3.zip deleted file mode 100644 index 7ac84a92..00000000 Binary files a/.yarn/cache/scheduler-npm-0.24.0-canary-efb381bbf-20230505-6f74d88bd1-862881c8d3.zip and /dev/null differ diff --git a/.yarn/cache/selfsigned-npm-2.4.1-1ca1b883c5-52536623f1.zip b/.yarn/cache/selfsigned-npm-2.4.1-1ca1b883c5-52536623f1.zip deleted file mode 100644 index 5aa6a87f..00000000 Binary files a/.yarn/cache/selfsigned-npm-2.4.1-1ca1b883c5-52536623f1.zip and /dev/null differ diff --git a/.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-8bbe5a5d7a.zip b/.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-8bbe5a5d7a.zip deleted file mode 100644 index 29223bb3..00000000 Binary files a/.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-8bbe5a5d7a.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-5.7.1-40bcea106b-fbc71cf007.zip b/.yarn/cache/semver-npm-5.7.1-40bcea106b-fbc71cf007.zip deleted file mode 100644 index f5b88932..00000000 Binary files a/.yarn/cache/semver-npm-5.7.1-40bcea106b-fbc71cf007.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-6.3.0-b3eace8bfd-8dd72e7c7c.zip b/.yarn/cache/semver-npm-6.3.0-b3eace8bfd-8dd72e7c7c.zip deleted file mode 100644 index 7f41d117..00000000 Binary files a/.yarn/cache/semver-npm-6.3.0-b3eace8bfd-8dd72e7c7c.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-1ef3a85bd0.zip b/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-1ef3a85bd0.zip deleted file mode 100644 index 86b785f4..00000000 Binary files a/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-1ef3a85bd0.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-7.0.0-218e8c00ca-be264384c7.zip b/.yarn/cache/semver-npm-7.0.0-218e8c00ca-be264384c7.zip deleted file mode 100644 index ebc99ef0..00000000 Binary files a/.yarn/cache/semver-npm-7.0.0-218e8c00ca-be264384c7.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-7.3.2-161b023bbb-52f87756b6.zip b/.yarn/cache/semver-npm-7.3.2-161b023bbb-52f87756b6.zip deleted file mode 100644 index c6eb9c15..00000000 Binary files a/.yarn/cache/semver-npm-7.3.2-161b023bbb-52f87756b6.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-7.3.5-618cf5db6a-2285437859.zip b/.yarn/cache/semver-npm-7.3.5-618cf5db6a-2285437859.zip deleted file mode 100644 index 915db2a0..00000000 Binary files a/.yarn/cache/semver-npm-7.3.5-618cf5db6a-2285437859.zip and /dev/null differ diff --git a/.yarn/cache/semver-npm-7.6.3-57e82c14d5-36b1fbe1a2.zip b/.yarn/cache/semver-npm-7.6.3-57e82c14d5-36b1fbe1a2.zip deleted file mode 100644 index bb2a4c25..00000000 Binary files a/.yarn/cache/semver-npm-7.6.3-57e82c14d5-36b1fbe1a2.zip and /dev/null differ diff --git a/.yarn/cache/send-npm-0.19.0-4297594770-1f6064dea0.zip b/.yarn/cache/send-npm-0.19.0-4297594770-1f6064dea0.zip deleted file mode 100644 index 34d76d09..00000000 Binary files a/.yarn/cache/send-npm-0.19.0-4297594770-1f6064dea0.zip and /dev/null differ diff --git a/.yarn/cache/serialize-error-npm-2.1.0-51bc0e0932-28464a6f65.zip b/.yarn/cache/serialize-error-npm-2.1.0-51bc0e0932-28464a6f65.zip deleted file mode 100644 index a55a1472..00000000 Binary files a/.yarn/cache/serialize-error-npm-2.1.0-51bc0e0932-28464a6f65.zip and /dev/null differ diff --git a/.yarn/cache/serve-static-npm-1.16.2-5d8e560aec-7fa9d9c680.zip b/.yarn/cache/serve-static-npm-1.16.2-5d8e560aec-7fa9d9c680.zip deleted file mode 100644 index 924ee419..00000000 Binary files a/.yarn/cache/serve-static-npm-1.16.2-5d8e560aec-7fa9d9c680.zip and /dev/null differ diff --git a/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-8980ebf7ae.zip b/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-8980ebf7ae.zip deleted file mode 100644 index 81aea387..00000000 Binary files a/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-8980ebf7ae.zip and /dev/null differ diff --git a/.yarn/cache/set-value-npm-2.0.1-35da5f8180-4f1ccac2e9.zip b/.yarn/cache/set-value-npm-2.0.1-35da5f8180-4f1ccac2e9.zip deleted file mode 100644 index 5a9e0ce5..00000000 Binary files a/.yarn/cache/set-value-npm-2.0.1-35da5f8180-4f1ccac2e9.zip and /dev/null differ diff --git a/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip b/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip deleted file mode 100644 index ea426181..00000000 Binary files a/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip and /dev/null differ diff --git a/.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e066bd540c.zip b/.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e066bd540c.zip deleted file mode 100644 index 7cbb2219..00000000 Binary files a/.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e066bd540c.zip and /dev/null differ diff --git a/.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip b/.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip deleted file mode 100644 index 9b734d10..00000000 Binary files a/.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip and /dev/null differ diff --git a/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip b/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip deleted file mode 100644 index 727c5471..00000000 Binary files a/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip and /dev/null differ diff --git a/.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip b/.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip deleted file mode 100644 index 607d724c..00000000 Binary files a/.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip and /dev/null differ diff --git a/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip b/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip deleted file mode 100644 index 3e891cda..00000000 Binary files a/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip and /dev/null differ diff --git a/.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-af19ab5a1e.zip b/.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-af19ab5a1e.zip deleted file mode 100644 index 2aacbb5e..00000000 Binary files a/.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-af19ab5a1e.zip and /dev/null differ diff --git a/.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-4ce7d31faa.zip b/.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-4ce7d31faa.zip deleted file mode 100644 index 5018527a..00000000 Binary files a/.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-4ce7d31faa.zip and /dev/null differ diff --git a/.yarn/cache/shellwords-npm-0.1.1-a091a78197-c122808ca5.zip b/.yarn/cache/shellwords-npm-0.1.1-a091a78197-c122808ca5.zip deleted file mode 100644 index 1548fda7..00000000 Binary files a/.yarn/cache/shellwords-npm-0.1.1-a091a78197-c122808ca5.zip and /dev/null differ diff --git a/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-c4998d9fc5.zip b/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-c4998d9fc5.zip deleted file mode 100644 index 7bf5307f..00000000 Binary files a/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-c4998d9fc5.zip and /dev/null differ diff --git a/.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f0169d3f12.zip b/.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f0169d3f12.zip deleted file mode 100644 index d313e128..00000000 Binary files a/.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f0169d3f12.zip and /dev/null differ diff --git a/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip b/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip deleted file mode 100644 index 98720bd8..00000000 Binary files a/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip and /dev/null differ diff --git a/.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip b/.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip deleted file mode 100644 index 606f0db3..00000000 Binary files a/.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip and /dev/null differ diff --git a/.yarn/cache/slash-npm-2.0.0-69009eac54-512d435073.zip b/.yarn/cache/slash-npm-2.0.0-69009eac54-512d435073.zip deleted file mode 100644 index 39c8b135..00000000 Binary files a/.yarn/cache/slash-npm-2.0.0-69009eac54-512d435073.zip and /dev/null differ diff --git a/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip b/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip deleted file mode 100644 index 40d6b511..00000000 Binary files a/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip and /dev/null differ diff --git a/.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-4e82995aa5.zip b/.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-4e82995aa5.zip deleted file mode 100644 index 23b558a2..00000000 Binary files a/.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-4e82995aa5.zip and /dev/null differ diff --git a/.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip b/.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip deleted file mode 100644 index ef2012f3..00000000 Binary files a/.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip and /dev/null differ diff --git a/.yarn/cache/smart-buffer-npm-4.1.0-2a8829a5b4-eede9ea445.zip b/.yarn/cache/smart-buffer-npm-4.1.0-2a8829a5b4-eede9ea445.zip deleted file mode 100644 index 6d4b2295..00000000 Binary files a/.yarn/cache/smart-buffer-npm-4.1.0-2a8829a5b4-eede9ea445.zip and /dev/null differ diff --git a/.yarn/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-093c3584ef.zip b/.yarn/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-093c3584ef.zip deleted file mode 100644 index a1c6d918..00000000 Binary files a/.yarn/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-093c3584ef.zip and /dev/null differ diff --git a/.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-cbe35b25dc.zip b/.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-cbe35b25dc.zip deleted file mode 100644 index 94e1e41b..00000000 Binary files a/.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-cbe35b25dc.zip and /dev/null differ diff --git a/.yarn/cache/snapdragon-util-npm-3.0.1-36b5a7829d-b776b15bf6.zip b/.yarn/cache/snapdragon-util-npm-3.0.1-36b5a7829d-b776b15bf6.zip deleted file mode 100644 index 003502c7..00000000 Binary files a/.yarn/cache/snapdragon-util-npm-3.0.1-36b5a7829d-b776b15bf6.zip and /dev/null differ diff --git a/.yarn/cache/socks-npm-2.6.1-09133d0d22-6ae166bd1a.zip b/.yarn/cache/socks-npm-2.6.1-09133d0d22-6ae166bd1a.zip deleted file mode 100644 index 8327fc3d..00000000 Binary files a/.yarn/cache/socks-npm-2.6.1-09133d0d22-6ae166bd1a.zip and /dev/null differ diff --git a/.yarn/cache/socks-proxy-agent-npm-5.0.0-0416dc71b7-c9f13e0c46.zip b/.yarn/cache/socks-proxy-agent-npm-5.0.0-0416dc71b7-c9f13e0c46.zip deleted file mode 100644 index d4ed0de9..00000000 Binary files a/.yarn/cache/socks-proxy-agent-npm-5.0.0-0416dc71b7-c9f13e0c46.zip and /dev/null differ diff --git a/.yarn/cache/source-map-npm-0.5.7-7c3f035429-9b4ac749ec.zip b/.yarn/cache/source-map-npm-0.5.7-7c3f035429-9b4ac749ec.zip deleted file mode 100644 index e3bc38bd..00000000 Binary files a/.yarn/cache/source-map-npm-0.5.7-7c3f035429-9b4ac749ec.zip and /dev/null differ diff --git a/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ef7462f1.zip b/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ef7462f1.zip deleted file mode 100644 index 1f5147c1..00000000 Binary files a/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ef7462f1.zip and /dev/null differ diff --git a/.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-89c388902a.zip b/.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-89c388902a.zip deleted file mode 100644 index 5c0c9c1a..00000000 Binary files a/.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-89c388902a.zip and /dev/null differ diff --git a/.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-98e281cceb.zip b/.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-98e281cceb.zip deleted file mode 100644 index 0cb913cc..00000000 Binary files a/.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-98e281cceb.zip and /dev/null differ diff --git a/.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-5a30564f9d.zip b/.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-5a30564f9d.zip deleted file mode 100644 index ff473f12..00000000 Binary files a/.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-5a30564f9d.zip and /dev/null differ diff --git a/.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-8317e12d84.zip b/.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-8317e12d84.zip deleted file mode 100644 index beb8b2f7..00000000 Binary files a/.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-8317e12d84.zip and /dev/null differ diff --git a/.yarn/cache/source-map-url-npm-0.4.1-747a1f6eba-7fec0460ca.zip b/.yarn/cache/source-map-url-npm-0.4.1-747a1f6eba-7fec0460ca.zip deleted file mode 100644 index 66e0cd13..00000000 Binary files a/.yarn/cache/source-map-url-npm-0.4.1-747a1f6eba-7fec0460ca.zip and /dev/null differ diff --git a/.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-688e028c3c.zip b/.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-688e028c3c.zip deleted file mode 100644 index e172b34a..00000000 Binary files a/.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-688e028c3c.zip and /dev/null differ diff --git a/.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip b/.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip deleted file mode 100644 index faebf421..00000000 Binary files a/.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip and /dev/null differ diff --git a/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip b/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip deleted file mode 100644 index dcb97d09..00000000 Binary files a/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip and /dev/null differ diff --git a/.yarn/cache/spdx-license-ids-npm-3.0.7-f2c686cec2-e6a3ea80d8.zip b/.yarn/cache/spdx-license-ids-npm-3.0.7-f2c686cec2-e6a3ea80d8.zip deleted file mode 100644 index 2489ee20..00000000 Binary files a/.yarn/cache/spdx-license-ids-npm-3.0.7-f2c686cec2-e6a3ea80d8.zip and /dev/null differ diff --git a/.yarn/cache/split-npm-1.0.1-88871d88a2-12f4554a57.zip b/.yarn/cache/split-npm-1.0.1-88871d88a2-12f4554a57.zip deleted file mode 100644 index b2109d88..00000000 Binary files a/.yarn/cache/split-npm-1.0.1-88871d88a2-12f4554a57.zip and /dev/null differ diff --git a/.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-16ff85b54d.zip b/.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-16ff85b54d.zip deleted file mode 100644 index 8045223c..00000000 Binary files a/.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-16ff85b54d.zip and /dev/null differ diff --git a/.yarn/cache/split-string-npm-3.1.0-df5d83450e-f31f4709d2.zip b/.yarn/cache/split-string-npm-3.1.0-df5d83450e-f31f4709d2.zip deleted file mode 100644 index 4245cd6c..00000000 Binary files a/.yarn/cache/split-string-npm-3.1.0-df5d83450e-f31f4709d2.zip and /dev/null differ diff --git a/.yarn/cache/split2-npm-3.2.2-4ccd21b4f7-a426e1e671.zip b/.yarn/cache/split2-npm-3.2.2-4ccd21b4f7-a426e1e671.zip deleted file mode 100644 index 205a3c27..00000000 Binary files a/.yarn/cache/split2-npm-3.2.2-4ccd21b4f7-a426e1e671.zip and /dev/null differ diff --git a/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-c34828732a.zip b/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-c34828732a.zip deleted file mode 100644 index 9b206617..00000000 Binary files a/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-c34828732a.zip and /dev/null differ diff --git a/.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-b437fd3fd2.zip b/.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-b437fd3fd2.zip deleted file mode 100644 index 3a237086..00000000 Binary files a/.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-b437fd3fd2.zip and /dev/null differ diff --git a/.yarn/cache/ssri-npm-8.0.1-a369e72ce2-fde247b710.zip b/.yarn/cache/ssri-npm-8.0.1-a369e72ce2-fde247b710.zip deleted file mode 100644 index 7d97e829..00000000 Binary files a/.yarn/cache/ssri-npm-8.0.1-a369e72ce2-fde247b710.zip and /dev/null differ diff --git a/.yarn/cache/stack-utils-npm-2.0.3-e255395afd-e51cf01614.zip b/.yarn/cache/stack-utils-npm-2.0.3-e255395afd-e51cf01614.zip deleted file mode 100644 index 4a3e4137..00000000 Binary files a/.yarn/cache/stack-utils-npm-2.0.3-e255395afd-e51cf01614.zip and /dev/null differ diff --git a/.yarn/cache/stack-utils-npm-2.0.6-2be1099696-cdc988acbc.zip b/.yarn/cache/stack-utils-npm-2.0.6-2be1099696-cdc988acbc.zip deleted file mode 100644 index 43074d11..00000000 Binary files a/.yarn/cache/stack-utils-npm-2.0.6-2be1099696-cdc988acbc.zip and /dev/null differ diff --git a/.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-29ca71c1fd.zip b/.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-29ca71c1fd.zip deleted file mode 100644 index 9e0581e0..00000000 Binary files a/.yarn/cache/stackframe-npm-1.3.4-bf4b7cc8fd-29ca71c1fd.zip and /dev/null differ diff --git a/.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-f4fbddfc09.zip b/.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-f4fbddfc09.zip deleted file mode 100644 index 7c60bb39..00000000 Binary files a/.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-f4fbddfc09.zip and /dev/null differ diff --git a/.yarn/cache/static-extend-npm-0.1.2-2720ee6882-8657485b83.zip b/.yarn/cache/static-extend-npm-0.1.2-2720ee6882-8657485b83.zip deleted file mode 100644 index cfcc4014..00000000 Binary files a/.yarn/cache/static-extend-npm-0.1.2-2720ee6882-8657485b83.zip and /dev/null differ diff --git a/.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-c469b9519d.zip b/.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-c469b9519d.zip deleted file mode 100644 index 5517a944..00000000 Binary files a/.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-c469b9519d.zip and /dev/null differ diff --git a/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip b/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip deleted file mode 100644 index d54195d6..00000000 Binary files a/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip and /dev/null differ diff --git a/.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-a408a51f5b.zip b/.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-a408a51f5b.zip deleted file mode 100644 index f1a943f1..00000000 Binary files a/.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-a408a51f5b.zip and /dev/null differ diff --git a/.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-eaac4cf978.zip b/.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-eaac4cf978.zip deleted file mode 100644 index 360da3af..00000000 Binary files a/.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-eaac4cf978.zip and /dev/null differ diff --git a/.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip b/.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip deleted file mode 100644 index fd9f62fc..00000000 Binary files a/.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip and /dev/null differ diff --git a/.yarn/cache/string-width-npm-1.0.2-01031f9add-5c79439e95.zip b/.yarn/cache/string-width-npm-1.0.2-01031f9add-5c79439e95.zip deleted file mode 100644 index a1384227..00000000 Binary files a/.yarn/cache/string-width-npm-1.0.2-01031f9add-5c79439e95.zip and /dev/null differ diff --git a/.yarn/cache/string-width-npm-2.1.1-0c2c6ae53f-d6173abe08.zip b/.yarn/cache/string-width-npm-2.1.1-0c2c6ae53f-d6173abe08.zip deleted file mode 100644 index 4547a8bf..00000000 Binary files a/.yarn/cache/string-width-npm-2.1.1-0c2c6ae53f-d6173abe08.zip and /dev/null differ diff --git a/.yarn/cache/string-width-npm-3.1.0-e031bfa4e0-57f7ca73d2.zip b/.yarn/cache/string-width-npm-3.1.0-e031bfa4e0-57f7ca73d2.zip deleted file mode 100644 index 706d03c8..00000000 Binary files a/.yarn/cache/string-width-npm-3.1.0-e031bfa4e0-57f7ca73d2.zip and /dev/null differ diff --git a/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip b/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip deleted file mode 100644 index 0bf94021..00000000 Binary files a/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip and /dev/null differ diff --git a/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip b/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip deleted file mode 100644 index 9b4c0881..00000000 Binary files a/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip and /dev/null differ diff --git a/.yarn/cache/string.prototype.matchall-npm-4.0.4-6ac02f3358-ab3d2d0e0e.zip b/.yarn/cache/string.prototype.matchall-npm-4.0.4-6ac02f3358-ab3d2d0e0e.zip deleted file mode 100644 index f028809f..00000000 Binary files a/.yarn/cache/string.prototype.matchall-npm-4.0.4-6ac02f3358-ab3d2d0e0e.zip and /dev/null differ diff --git a/.yarn/cache/string.prototype.trimend-npm-1.0.4-a656b8fe24-5733b0f980.zip b/.yarn/cache/string.prototype.trimend-npm-1.0.4-a656b8fe24-5733b0f980.zip deleted file mode 100644 index 66ce8a3a..00000000 Binary files a/.yarn/cache/string.prototype.trimend-npm-1.0.4-a656b8fe24-5733b0f980.zip and /dev/null differ diff --git a/.yarn/cache/string.prototype.trimstart-npm-1.0.4-b31f5e7c85-18e0b7362c.zip b/.yarn/cache/string.prototype.trimstart-npm-1.0.4-b31f5e7c85-18e0b7362c.zip deleted file mode 100644 index 50c54bc4..00000000 Binary files a/.yarn/cache/string.prototype.trimstart-npm-1.0.4-b31f5e7c85-18e0b7362c.zip and /dev/null differ diff --git a/.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-7c41c17ed4.zip b/.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-7c41c17ed4.zip deleted file mode 100644 index 917a9ba0..00000000 Binary files a/.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-7c41c17ed4.zip and /dev/null differ diff --git a/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-54d23f4a6a.zip b/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-54d23f4a6a.zip deleted file mode 100644 index a1834ff4..00000000 Binary files a/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-54d23f4a6a.zip and /dev/null differ diff --git a/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip b/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip deleted file mode 100644 index a1c9f6a0..00000000 Binary files a/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip and /dev/null differ diff --git a/.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-d9186e6c0c.zip b/.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-d9186e6c0c.zip deleted file mode 100644 index f39efd27..00000000 Binary files a/.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-d9186e6c0c.zip and /dev/null differ diff --git a/.yarn/cache/strip-ansi-npm-5.2.0-275214c316-bdb5f76ade.zip b/.yarn/cache/strip-ansi-npm-5.2.0-275214c316-bdb5f76ade.zip deleted file mode 100644 index 2231cf58..00000000 Binary files a/.yarn/cache/strip-ansi-npm-5.2.0-275214c316-bdb5f76ade.zip and /dev/null differ diff --git a/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-fb33042c06.zip b/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-fb33042c06.zip deleted file mode 100644 index 963c8300..00000000 Binary files a/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-fb33042c06.zip and /dev/null differ diff --git a/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-ae3b5436d3.zip b/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-ae3b5436d3.zip deleted file mode 100644 index 89675618..00000000 Binary files a/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-ae3b5436d3.zip and /dev/null differ diff --git a/.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-08efb746bc.zip b/.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-08efb746bc.zip deleted file mode 100644 index b33e06cc..00000000 Binary files a/.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-08efb746bc.zip and /dev/null differ diff --git a/.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip b/.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip deleted file mode 100644 index e6e88c61..00000000 Binary files a/.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip and /dev/null differ diff --git a/.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-9dbcfbaf50.zip b/.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-9dbcfbaf50.zip deleted file mode 100644 index 7f5558f2..00000000 Binary files a/.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-9dbcfbaf50.zip and /dev/null differ diff --git a/.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-40bc8ddd7e.zip b/.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-40bc8ddd7e.zip deleted file mode 100644 index 41df0147..00000000 Binary files a/.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-40bc8ddd7e.zip and /dev/null differ diff --git a/.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-69412b5e25.zip b/.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-69412b5e25.zip deleted file mode 100644 index 92534423..00000000 Binary files a/.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-69412b5e25.zip and /dev/null differ diff --git a/.yarn/cache/strip-indent-npm-1.0.1-dabb780da0-81ad9a0b8a.zip b/.yarn/cache/strip-indent-npm-1.0.1-dabb780da0-81ad9a0b8a.zip deleted file mode 100644 index abd4e4e0..00000000 Binary files a/.yarn/cache/strip-indent-npm-1.0.1-dabb780da0-81ad9a0b8a.zip and /dev/null differ diff --git a/.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip b/.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip deleted file mode 100644 index d24c4848..00000000 Binary files a/.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip and /dev/null differ diff --git a/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip b/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip deleted file mode 100644 index 9c537fe0..00000000 Binary files a/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip and /dev/null differ diff --git a/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip b/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip deleted file mode 100644 index e74ed10a..00000000 Binary files a/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip and /dev/null differ diff --git a/.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-d3117975db.zip b/.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-d3117975db.zip deleted file mode 100644 index 60227886..00000000 Binary files a/.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-d3117975db.zip and /dev/null differ diff --git a/.yarn/cache/sudo-prompt-npm-9.2.1-673cc9fe7b-0557d0eece.zip b/.yarn/cache/sudo-prompt-npm-9.2.1-673cc9fe7b-0557d0eece.zip deleted file mode 100644 index 077255e2..00000000 Binary files a/.yarn/cache/sudo-prompt-npm-9.2.1-673cc9fe7b-0557d0eece.zip and /dev/null differ diff --git a/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-5f505c6fa3.zip b/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-5f505c6fa3.zip deleted file mode 100644 index 55a34c67..00000000 Binary files a/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-5f505c6fa3.zip and /dev/null differ diff --git a/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-c8bb7afd56.zip b/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-c8bb7afd56.zip deleted file mode 100644 index 7ee64222..00000000 Binary files a/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-c8bb7afd56.zip and /dev/null differ diff --git a/.yarn/cache/supports-color-npm-8.1.1-289e937149-157b534df8.zip b/.yarn/cache/supports-color-npm-8.1.1-289e937149-157b534df8.zip deleted file mode 100644 index 9e620d0c..00000000 Binary files a/.yarn/cache/supports-color-npm-8.1.1-289e937149-157b534df8.zip and /dev/null differ diff --git a/.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-a63f2acba5.zip b/.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-a63f2acba5.zip deleted file mode 100644 index ae491693..00000000 Binary files a/.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-a63f2acba5.zip and /dev/null differ diff --git a/.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-c09a00aadf.zip b/.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-c09a00aadf.zip deleted file mode 100644 index 7c696d0d..00000000 Binary files a/.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-c09a00aadf.zip and /dev/null differ diff --git a/.yarn/cache/table-npm-6.7.1-7d70e55c6d-654090e317.zip b/.yarn/cache/table-npm-6.7.1-7d70e55c6d-654090e317.zip deleted file mode 100644 index a4ec8414..00000000 Binary files a/.yarn/cache/table-npm-6.7.1-7d70e55c6d-654090e317.zip and /dev/null differ diff --git a/.yarn/cache/tar-npm-6.1.0-21d6116ed9-874e92e99a.zip b/.yarn/cache/tar-npm-6.1.0-21d6116ed9-874e92e99a.zip deleted file mode 100644 index decd42ea..00000000 Binary files a/.yarn/cache/tar-npm-6.1.0-21d6116ed9-874e92e99a.zip and /dev/null differ diff --git a/.yarn/cache/temp-dir-npm-1.0.0-5828254ce3-cb2b58ddfb.zip b/.yarn/cache/temp-dir-npm-1.0.0-5828254ce3-cb2b58ddfb.zip deleted file mode 100644 index 24134591..00000000 Binary files a/.yarn/cache/temp-dir-npm-1.0.0-5828254ce3-cb2b58ddfb.zip and /dev/null differ diff --git a/.yarn/cache/temp-dir-npm-2.0.0-e8af180805-cc4f0404bf.zip b/.yarn/cache/temp-dir-npm-2.0.0-e8af180805-cc4f0404bf.zip deleted file mode 100644 index d84cb672..00000000 Binary files a/.yarn/cache/temp-dir-npm-2.0.0-e8af180805-cc4f0404bf.zip and /dev/null differ diff --git a/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-0a7f76b496.zip b/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-0a7f76b496.zip deleted file mode 100644 index b638d586..00000000 Binary files a/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-0a7f76b496.zip and /dev/null differ diff --git a/.yarn/cache/temp-write-npm-4.0.0-19edc9e6b7-4f94187662.zip b/.yarn/cache/temp-write-npm-4.0.0-19edc9e6b7-4f94187662.zip deleted file mode 100644 index 1428111f..00000000 Binary files a/.yarn/cache/temp-write-npm-4.0.0-19edc9e6b7-4f94187662.zip and /dev/null differ diff --git a/.yarn/cache/term-size-npm-2.2.1-77ce7141d0-f96aca2d41.zip b/.yarn/cache/term-size-npm-2.2.1-77ce7141d0-f96aca2d41.zip deleted file mode 100644 index 0d0d0dc3..00000000 Binary files a/.yarn/cache/term-size-npm-2.2.1-77ce7141d0-f96aca2d41.zip and /dev/null differ diff --git a/.yarn/cache/terminal-link-npm-2.1.1-de80341758-ce3d2cd3a4.zip b/.yarn/cache/terminal-link-npm-2.1.1-de80341758-ce3d2cd3a4.zip deleted file mode 100644 index 65066d39..00000000 Binary files a/.yarn/cache/terminal-link-npm-2.1.1-de80341758-ce3d2cd3a4.zip and /dev/null differ diff --git a/.yarn/cache/terser-npm-5.33.0-58f8b7f7c3-0142382547.zip b/.yarn/cache/terser-npm-5.33.0-58f8b7f7c3-0142382547.zip deleted file mode 100644 index cb9d24f0..00000000 Binary files a/.yarn/cache/terser-npm-5.33.0-58f8b7f7c3-0142382547.zip and /dev/null differ diff --git a/.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-8fccb2cb6c.zip b/.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-8fccb2cb6c.zip deleted file mode 100644 index 57a28b79..00000000 Binary files a/.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-8fccb2cb6c.zip and /dev/null differ diff --git a/.yarn/cache/text-extensions-npm-1.9.0-87655d768f-56a9962c1b.zip b/.yarn/cache/text-extensions-npm-1.9.0-87655d768f-56a9962c1b.zip deleted file mode 100644 index 0c2ccda3..00000000 Binary files a/.yarn/cache/text-extensions-npm-1.9.0-87655d768f-56a9962c1b.zip and /dev/null differ diff --git a/.yarn/cache/text-table-npm-0.2.0-d92a778b59-4383b5baae.zip b/.yarn/cache/text-table-npm-0.2.0-d92a778b59-4383b5baae.zip deleted file mode 100644 index ca82cc66..00000000 Binary files a/.yarn/cache/text-table-npm-0.2.0-d92a778b59-4383b5baae.zip and /dev/null differ diff --git a/.yarn/cache/throat-npm-5.0.0-288ce6540a-00f7197977.zip b/.yarn/cache/throat-npm-5.0.0-288ce6540a-00f7197977.zip deleted file mode 100644 index bf96ec0e..00000000 Binary files a/.yarn/cache/throat-npm-5.0.0-288ce6540a-00f7197977.zip and /dev/null differ diff --git a/.yarn/cache/through-npm-2.3.8-df5f72a16e-5da78346f7.zip b/.yarn/cache/through-npm-2.3.8-df5f72a16e-5da78346f7.zip deleted file mode 100644 index 21d75a45..00000000 Binary files a/.yarn/cache/through-npm-2.3.8-df5f72a16e-5da78346f7.zip and /dev/null differ diff --git a/.yarn/cache/through2-npm-2.0.5-77d90f13cd-cd71f7dcdc.zip b/.yarn/cache/through2-npm-2.0.5-77d90f13cd-cd71f7dcdc.zip deleted file mode 100644 index f1c53a87..00000000 Binary files a/.yarn/cache/through2-npm-2.0.5-77d90f13cd-cd71f7dcdc.zip and /dev/null differ diff --git a/.yarn/cache/through2-npm-4.0.2-da7b2da443-72c246233d.zip b/.yarn/cache/through2-npm-4.0.2-da7b2da443-72c246233d.zip deleted file mode 100644 index d16fe200..00000000 Binary files a/.yarn/cache/through2-npm-4.0.2-da7b2da443-72c246233d.zip and /dev/null differ diff --git a/.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-09c0abfd16.zip b/.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-09c0abfd16.zip deleted file mode 100644 index 0a2c7eb1..00000000 Binary files a/.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-09c0abfd16.zip and /dev/null differ diff --git a/.yarn/cache/tmpl-npm-1.0.4-35b37c2875-72c9333504.zip b/.yarn/cache/tmpl-npm-1.0.4-35b37c2875-72c9333504.zip deleted file mode 100644 index 0366592f..00000000 Binary files a/.yarn/cache/tmpl-npm-1.0.4-35b37c2875-72c9333504.zip and /dev/null differ diff --git a/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip b/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip deleted file mode 100644 index bed5e126..00000000 Binary files a/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip and /dev/null differ diff --git a/.yarn/cache/to-object-path-npm-0.3.0-241b5ffa9c-9425effee5.zip b/.yarn/cache/to-object-path-npm-0.3.0-241b5ffa9c-9425effee5.zip deleted file mode 100644 index f14d22cc..00000000 Binary files a/.yarn/cache/to-object-path-npm-0.3.0-241b5ffa9c-9425effee5.zip and /dev/null differ diff --git a/.yarn/cache/to-readable-stream-npm-1.0.0-4fa4da8130-a99e23d497.zip b/.yarn/cache/to-readable-stream-npm-1.0.0-4fa4da8130-a99e23d497.zip deleted file mode 100644 index b73b8214..00000000 Binary files a/.yarn/cache/to-readable-stream-npm-1.0.0-4fa4da8130-a99e23d497.zip and /dev/null differ diff --git a/.yarn/cache/to-regex-npm-3.0.2-3af893c972-ab87c22f07.zip b/.yarn/cache/to-regex-npm-3.0.2-3af893c972-ab87c22f07.zip deleted file mode 100644 index 3920253f..00000000 Binary files a/.yarn/cache/to-regex-npm-3.0.2-3af893c972-ab87c22f07.zip and /dev/null differ diff --git a/.yarn/cache/to-regex-range-npm-2.1.1-60af4c593e-2eed5f8971.zip b/.yarn/cache/to-regex-range-npm-2.1.1-60af4c593e-2eed5f8971.zip deleted file mode 100644 index f7f0dde8..00000000 Binary files a/.yarn/cache/to-regex-range-npm-2.1.1-60af4c593e-2eed5f8971.zip and /dev/null differ diff --git a/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-10dda13571.zip b/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-10dda13571.zip deleted file mode 100644 index 26d8e09c..00000000 Binary files a/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-10dda13571.zip and /dev/null differ diff --git a/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip b/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip deleted file mode 100644 index 595363e9..00000000 Binary files a/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip and /dev/null differ diff --git a/.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-024cb13a4d.zip b/.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-024cb13a4d.zip deleted file mode 100644 index 9caa7a88..00000000 Binary files a/.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-024cb13a4d.zip and /dev/null differ diff --git a/.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-1c9764cbe1.zip b/.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-1c9764cbe1.zip deleted file mode 100644 index 6a4139f9..00000000 Binary files a/.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-1c9764cbe1.zip and /dev/null differ diff --git a/.yarn/cache/tr46-npm-0.0.3-de53018915-8f1f5aa6cb.zip b/.yarn/cache/tr46-npm-0.0.3-de53018915-8f1f5aa6cb.zip deleted file mode 100644 index a3891fa6..00000000 Binary files a/.yarn/cache/tr46-npm-0.0.3-de53018915-8f1f5aa6cb.zip and /dev/null differ diff --git a/.yarn/cache/tr46-npm-2.0.2-9a9c502938-6f367639e4.zip b/.yarn/cache/tr46-npm-2.0.2-9a9c502938-6f367639e4.zip deleted file mode 100644 index 85da5de0..00000000 Binary files a/.yarn/cache/tr46-npm-2.0.2-9a9c502938-6f367639e4.zip and /dev/null differ diff --git a/.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-ed96eea318.zip b/.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-ed96eea318.zip deleted file mode 100644 index 35900de4..00000000 Binary files a/.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-ed96eea318.zip and /dev/null differ diff --git a/.yarn/cache/trim-newlines-npm-3.0.0-ccf666d8fc-ad99b771e7.zip b/.yarn/cache/trim-newlines-npm-3.0.0-ccf666d8fc-ad99b771e7.zip deleted file mode 100644 index e1f7dff0..00000000 Binary files a/.yarn/cache/trim-newlines-npm-3.0.0-ccf666d8fc-ad99b771e7.zip and /dev/null differ diff --git a/.yarn/cache/trim-off-newlines-npm-1.0.1-1a87bef78d-ca644908ca.zip b/.yarn/cache/trim-off-newlines-npm-1.0.1-1a87bef78d-ca644908ca.zip deleted file mode 100644 index fdf993f7..00000000 Binary files a/.yarn/cache/trim-off-newlines-npm-1.0.1-1a87bef78d-ca644908ca.zip and /dev/null differ diff --git a/.yarn/cache/ts-toolbelt-npm-6.15.5-e42f89942f-1816b11f6a.zip b/.yarn/cache/ts-toolbelt-npm-6.15.5-e42f89942f-1816b11f6a.zip deleted file mode 100644 index 5517113f..00000000 Binary files a/.yarn/cache/ts-toolbelt-npm-6.15.5-e42f89942f-1816b11f6a.zip and /dev/null differ diff --git a/.yarn/cache/tslib-npm-1.14.1-102499115e-7dbf34e6f5.zip b/.yarn/cache/tslib-npm-1.14.1-102499115e-7dbf34e6f5.zip deleted file mode 100644 index 00b8496f..00000000 Binary files a/.yarn/cache/tslib-npm-1.14.1-102499115e-7dbf34e6f5.zip and /dev/null differ diff --git a/.yarn/cache/tslib-npm-2.2.0-e83a07daa5-d5fcf6cf37.zip b/.yarn/cache/tslib-npm-2.2.0-e83a07daa5-d5fcf6cf37.zip deleted file mode 100644 index cf517d5a..00000000 Binary files a/.yarn/cache/tslib-npm-2.2.0-e83a07daa5-d5fcf6cf37.zip and /dev/null differ diff --git a/.yarn/cache/tslib-npm-2.7.0-21668f5c21-9a5b47ddac.zip b/.yarn/cache/tslib-npm-2.7.0-21668f5c21-9a5b47ddac.zip deleted file mode 100644 index accaebc0..00000000 Binary files a/.yarn/cache/tslib-npm-2.7.0-21668f5c21-9a5b47ddac.zip and /dev/null differ diff --git a/.yarn/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip b/.yarn/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip deleted file mode 100644 index 75c33788..00000000 Binary files a/.yarn/cache/tsutils-npm-3.21.0-347e6636c5-ea036bec1d.zip and /dev/null differ diff --git a/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-7f0d9ed5c2.zip b/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-7f0d9ed5c2.zip deleted file mode 100644 index ab0b52e4..00000000 Binary files a/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-7f0d9ed5c2.zip and /dev/null differ diff --git a/.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-04ee27901c.zip b/.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-04ee27901c.zip deleted file mode 100644 index b072ec62..00000000 Binary files a/.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-04ee27901c.zip and /dev/null differ diff --git a/.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-11dec0b50d.zip b/.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-11dec0b50d.zip deleted file mode 100644 index 1d7dc4aa..00000000 Binary files a/.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-11dec0b50d.zip and /dev/null differ diff --git a/.yarn/cache/type-check-npm-0.4.0-60565800ce-1468777647.zip b/.yarn/cache/type-check-npm-0.4.0-60565800ce-1468777647.zip deleted file mode 100644 index 0668140e..00000000 Binary files a/.yarn/cache/type-check-npm-0.4.0-60565800ce-1468777647.zip and /dev/null differ diff --git a/.yarn/cache/type-detect-npm-4.0.8-8d8127b901-5179e3b8eb.zip b/.yarn/cache/type-detect-npm-4.0.8-8d8127b901-5179e3b8eb.zip deleted file mode 100644 index 46f32097..00000000 Binary files a/.yarn/cache/type-detect-npm-4.0.8-8d8127b901-5179e3b8eb.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.18.1-47b079775d-0884437705.zip b/.yarn/cache/type-fest-npm-0.18.1-47b079775d-0884437705.zip deleted file mode 100644 index 96613dd9..00000000 Binary files a/.yarn/cache/type-fest-npm-0.18.1-47b079775d-0884437705.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.20.2-b36432617f-8907e16284.zip b/.yarn/cache/type-fest-npm-0.20.2-b36432617f-8907e16284.zip deleted file mode 100644 index 8246f460..00000000 Binary files a/.yarn/cache/type-fest-npm-0.20.2-b36432617f-8907e16284.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-f4254070d9.zip b/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-f4254070d9.zip deleted file mode 100644 index fddd7d8e..00000000 Binary files a/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-f4254070d9.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.6.0-76b229965b-9ecbf4ba27.zip b/.yarn/cache/type-fest-npm-0.6.0-76b229965b-9ecbf4ba27.zip deleted file mode 100644 index e1666b54..00000000 Binary files a/.yarn/cache/type-fest-npm-0.6.0-76b229965b-9ecbf4ba27.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.7.1-7b37912923-0699b6011b.zip b/.yarn/cache/type-fest-npm-0.7.1-7b37912923-0699b6011b.zip deleted file mode 100644 index 0e056acb..00000000 Binary files a/.yarn/cache/type-fest-npm-0.7.1-7b37912923-0699b6011b.zip and /dev/null differ diff --git a/.yarn/cache/type-fest-npm-0.8.1-351ad028fe-fd4a91bfb7.zip b/.yarn/cache/type-fest-npm-0.8.1-351ad028fe-fd4a91bfb7.zip deleted file mode 100644 index 20a97179..00000000 Binary files a/.yarn/cache/type-fest-npm-0.8.1-351ad028fe-fd4a91bfb7.zip and /dev/null differ diff --git a/.yarn/cache/typedarray-npm-0.0.6-37638b2241-2cc1bcf7d8.zip b/.yarn/cache/typedarray-npm-0.0.6-37638b2241-2cc1bcf7d8.zip deleted file mode 100644 index bcb7cd76..00000000 Binary files a/.yarn/cache/typedarray-npm-0.0.6-37638b2241-2cc1bcf7d8.zip and /dev/null differ diff --git a/.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-7c850c3433.zip b/.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-7c850c3433.zip deleted file mode 100644 index 5015383e..00000000 Binary files a/.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-7c850c3433.zip and /dev/null differ diff --git a/.yarn/cache/typescript-npm-4.2.4-e15e017ccc-ca42873f8c.zip b/.yarn/cache/typescript-npm-4.2.4-e15e017ccc-ca42873f8c.zip deleted file mode 100644 index c78207d8..00000000 Binary files a/.yarn/cache/typescript-npm-4.2.4-e15e017ccc-ca42873f8c.zip and /dev/null differ diff --git a/.yarn/cache/typescript-patch-1f53dbaf4a-1ea3cb3bd8.zip b/.yarn/cache/typescript-patch-1f53dbaf4a-1ea3cb3bd8.zip deleted file mode 100644 index e7359402..00000000 Binary files a/.yarn/cache/typescript-patch-1f53dbaf4a-1ea3cb3bd8.zip and /dev/null differ diff --git a/.yarn/cache/uglify-js-npm-3.13.6-6adc32f008-7148ad9c7f.zip b/.yarn/cache/uglify-js-npm-3.13.6-6adc32f008-7148ad9c7f.zip deleted file mode 100644 index b0d6e802..00000000 Binary files a/.yarn/cache/uglify-js-npm-3.13.6-6adc32f008-7148ad9c7f.zip and /dev/null differ diff --git a/.yarn/cache/unbox-primitive-npm-1.0.1-50b9fde246-16aacdfc55.zip b/.yarn/cache/unbox-primitive-npm-1.0.1-50b9fde246-16aacdfc55.zip deleted file mode 100644 index 800a564f..00000000 Binary files a/.yarn/cache/unbox-primitive-npm-1.0.1-50b9fde246-16aacdfc55.zip and /dev/null differ diff --git a/.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-a05fa2006b.zip b/.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-a05fa2006b.zip deleted file mode 100644 index b3abbac7..00000000 Binary files a/.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-a05fa2006b.zip and /dev/null differ diff --git a/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-0097779d94.zip b/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-0097779d94.zip deleted file mode 100644 index 194c916e..00000000 Binary files a/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-0097779d94.zip and /dev/null differ diff --git a/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-cc1973b18d.zip b/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-cc1973b18d.zip deleted file mode 100644 index ff80d68f..00000000 Binary files a/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-cc1973b18d.zip and /dev/null differ diff --git a/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-2.0.1-80cef17f3b-3c3dabdb1d.zip b/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-2.0.1-80cef17f3b-3c3dabdb1d.zip deleted file mode 100644 index 134dccac..00000000 Binary files a/.yarn/cache/unicode-canonical-property-names-ecmascript-npm-2.0.1-80cef17f3b-3c3dabdb1d.zip and /dev/null differ diff --git a/.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-08e269fac7.zip b/.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-08e269fac7.zip deleted file mode 100644 index 559f63cb..00000000 Binary files a/.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-08e269fac7.zip and /dev/null differ diff --git a/.yarn/cache/unicode-match-property-ecmascript-npm-2.0.0-97a00fd52c-1f34a7434a.zip b/.yarn/cache/unicode-match-property-ecmascript-npm-2.0.0-97a00fd52c-1f34a7434a.zip deleted file mode 100644 index 456f930e..00000000 Binary files a/.yarn/cache/unicode-match-property-ecmascript-npm-2.0.0-97a00fd52c-1f34a7434a.zip and /dev/null differ diff --git a/.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-d6b5d66edf-a5b2c2d583.zip b/.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-d6b5d66edf-a5b2c2d583.zip deleted file mode 100644 index 1c4125df..00000000 Binary files a/.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-d6b5d66edf-a5b2c2d583.zip and /dev/null differ diff --git a/.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-9fd53c657a.zip b/.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-9fd53c657a.zip deleted file mode 100644 index a3b40162..00000000 Binary files a/.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-9fd53c657a.zip and /dev/null differ diff --git a/.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-1a96dc462d.zip b/.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-1a96dc462d.zip deleted file mode 100644 index cde8d391..00000000 Binary files a/.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-1a96dc462d.zip and /dev/null differ diff --git a/.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-2435244318.zip b/.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-2435244318.zip deleted file mode 100644 index be89e75a..00000000 Binary files a/.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-2435244318.zip and /dev/null differ diff --git a/.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-a3464097d3.zip b/.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-a3464097d3.zip deleted file mode 100644 index c2d8d496..00000000 Binary files a/.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-a3464097d3.zip and /dev/null differ diff --git a/.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-9b6969d649.zip b/.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-9b6969d649.zip deleted file mode 100644 index bb38c30e..00000000 Binary files a/.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-9b6969d649.zip and /dev/null differ diff --git a/.yarn/cache/unique-slug-npm-2.0.2-f6ba1ddeb7-6cfaf91976.zip b/.yarn/cache/unique-slug-npm-2.0.2-f6ba1ddeb7-6cfaf91976.zip deleted file mode 100644 index 301487e3..00000000 Binary files a/.yarn/cache/unique-slug-npm-2.0.2-f6ba1ddeb7-6cfaf91976.zip and /dev/null differ diff --git a/.yarn/cache/unique-string-npm-2.0.0-3153c97e47-107cae65b0.zip b/.yarn/cache/unique-string-npm-2.0.0-3153c97e47-107cae65b0.zip deleted file mode 100644 index 518d5a09..00000000 Binary files a/.yarn/cache/unique-string-npm-2.0.0-3153c97e47-107cae65b0.zip and /dev/null differ diff --git a/.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.zip b/.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.zip deleted file mode 100644 index 8a41a76f..00000000 Binary files a/.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.zip and /dev/null differ diff --git a/.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip b/.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip deleted file mode 100644 index b49f2fc0..00000000 Binary files a/.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip and /dev/null differ diff --git a/.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip b/.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip deleted file mode 100644 index fa6b36b0..00000000 Binary files a/.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip and /dev/null differ diff --git a/.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip b/.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip deleted file mode 100644 index 380809cf..00000000 Binary files a/.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip and /dev/null differ diff --git a/.yarn/cache/unset-value-npm-1.0.0-2af803b920-0ca6448706.zip b/.yarn/cache/unset-value-npm-1.0.0-2af803b920-0ca6448706.zip deleted file mode 100644 index 5f1e1ed0..00000000 Binary files a/.yarn/cache/unset-value-npm-1.0.0-2af803b920-0ca6448706.zip and /dev/null differ diff --git a/.yarn/cache/upath-npm-1.2.0-ca00ec3398-ac07351d9e.zip b/.yarn/cache/upath-npm-1.2.0-ca00ec3398-ac07351d9e.zip deleted file mode 100644 index 85b02ed8..00000000 Binary files a/.yarn/cache/upath-npm-1.2.0-ca00ec3398-ac07351d9e.zip and /dev/null differ diff --git a/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip b/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip deleted file mode 100644 index 068c0ccb..00000000 Binary files a/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip and /dev/null differ diff --git a/.yarn/cache/update-notifier-npm-5.0.0-4b1bd931c5-4b1ee14984.zip b/.yarn/cache/update-notifier-npm-5.0.0-4b1bd931c5-4b1ee14984.zip deleted file mode 100644 index 112861d3..00000000 Binary files a/.yarn/cache/update-notifier-npm-5.0.0-4b1bd931c5-4b1ee14984.zip and /dev/null differ diff --git a/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-b271ca7e3d.zip b/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-b271ca7e3d.zip deleted file mode 100644 index 2c446e32..00000000 Binary files a/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-b271ca7e3d.zip and /dev/null differ diff --git a/.yarn/cache/urix-npm-0.1.0-bd5e55a13a-ebf5df5491.zip b/.yarn/cache/urix-npm-0.1.0-bd5e55a13a-ebf5df5491.zip deleted file mode 100644 index 3c5e8a4c..00000000 Binary files a/.yarn/cache/urix-npm-0.1.0-bd5e55a13a-ebf5df5491.zip and /dev/null differ diff --git a/.yarn/cache/url-join-npm-4.0.1-e1f4415722-b53b256a9a.zip b/.yarn/cache/url-join-npm-4.0.1-e1f4415722-b53b256a9a.zip deleted file mode 100644 index 35668784..00000000 Binary files a/.yarn/cache/url-join-npm-4.0.1-e1f4415722-b53b256a9a.zip and /dev/null differ diff --git a/.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-1040e35775.zip b/.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-1040e35775.zip deleted file mode 100644 index b267d703..00000000 Binary files a/.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-1040e35775.zip and /dev/null differ diff --git a/.yarn/cache/use-npm-3.1.1-7ba643714c-08a130289f.zip b/.yarn/cache/use-npm-3.1.1-7ba643714c-08a130289f.zip deleted file mode 100644 index 75936d56..00000000 Binary files a/.yarn/cache/use-npm-3.1.1-7ba643714c-08a130289f.zip and /dev/null differ diff --git a/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip b/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip deleted file mode 100644 index c2309cfe..00000000 Binary files a/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip and /dev/null differ diff --git a/.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-5d6949693d.zip b/.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-5d6949693d.zip deleted file mode 100644 index 906c7090..00000000 Binary files a/.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-5d6949693d.zip and /dev/null differ diff --git a/.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-4f2b86432b.zip b/.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-4f2b86432b.zip deleted file mode 100644 index 17b27c36..00000000 Binary files a/.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-4f2b86432b.zip and /dev/null differ diff --git a/.yarn/cache/uuid-npm-8.3.1-8a5b02e900-be4bb826db.zip b/.yarn/cache/uuid-npm-8.3.1-8a5b02e900-be4bb826db.zip deleted file mode 100644 index 0ce323b2..00000000 Binary files a/.yarn/cache/uuid-npm-8.3.1-8a5b02e900-be4bb826db.zip and /dev/null differ diff --git a/.yarn/cache/uuid-npm-8.3.2-eca0baba53-9a5f7aa1d6.zip b/.yarn/cache/uuid-npm-8.3.2-eca0baba53-9a5f7aa1d6.zip deleted file mode 100644 index d4dfd5a6..00000000 Binary files a/.yarn/cache/uuid-npm-8.3.2-eca0baba53-9a5f7aa1d6.zip and /dev/null differ diff --git a/.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-7de7423db6.zip b/.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-7de7423db6.zip deleted file mode 100644 index 280119a9..00000000 Binary files a/.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-7de7423db6.zip and /dev/null differ diff --git a/.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-6ebd68bd69.zip b/.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-6ebd68bd69.zip deleted file mode 100644 index ca00a815..00000000 Binary files a/.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-6ebd68bd69.zip and /dev/null differ diff --git a/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-86242519b2.zip b/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-86242519b2.zip deleted file mode 100644 index 3c66fb13..00000000 Binary files a/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-86242519b2.zip and /dev/null differ diff --git a/.yarn/cache/validate-npm-package-name-npm-3.0.0-e44c263962-6f89bcc91b.zip b/.yarn/cache/validate-npm-package-name-npm-3.0.0-e44c263962-6f89bcc91b.zip deleted file mode 100644 index b8e7c423..00000000 Binary files a/.yarn/cache/validate-npm-package-name-npm-3.0.0-e44c263962-6f89bcc91b.zip and /dev/null differ diff --git a/.yarn/cache/vary-npm-1.1.2-b49f70ae63-31389debef.zip b/.yarn/cache/vary-npm-1.1.2-b49f70ae63-31389debef.zip deleted file mode 100644 index 8346d882..00000000 Binary files a/.yarn/cache/vary-npm-1.1.2-b49f70ae63-31389debef.zip and /dev/null differ diff --git a/.yarn/cache/verror-npm-1.10.0-c3f839c579-da548149dd.zip b/.yarn/cache/verror-npm-1.10.0-c3f839c579-da548149dd.zip deleted file mode 100644 index a58d9d72..00000000 Binary files a/.yarn/cache/verror-npm-1.10.0-c3f839c579-da548149dd.zip and /dev/null differ diff --git a/.yarn/cache/vlq-npm-1.0.1-2ab4a14841-0f4270cb3c.zip b/.yarn/cache/vlq-npm-1.0.1-2ab4a14841-0f4270cb3c.zip deleted file mode 100644 index 08a0113a..00000000 Binary files a/.yarn/cache/vlq-npm-1.0.1-2ab4a14841-0f4270cb3c.zip and /dev/null differ diff --git a/.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-03851d90c2.zip b/.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-03851d90c2.zip deleted file mode 100644 index b731a784..00000000 Binary files a/.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-03851d90c2.zip and /dev/null differ diff --git a/.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-400c18b75c.zip b/.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-400c18b75c.zip deleted file mode 100644 index 90aa6354..00000000 Binary files a/.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-400c18b75c.zip and /dev/null differ diff --git a/.yarn/cache/walker-npm-1.0.7-a97443bd99-4038fcf92f.zip b/.yarn/cache/walker-npm-1.0.7-a97443bd99-4038fcf92f.zip deleted file mode 100644 index 80d25e3e..00000000 Binary files a/.yarn/cache/walker-npm-1.0.7-a97443bd99-4038fcf92f.zip and /dev/null differ diff --git a/.yarn/cache/wcwidth-npm-1.0.1-05fa596453-182ebac8ca.zip b/.yarn/cache/wcwidth-npm-1.0.1-05fa596453-182ebac8ca.zip deleted file mode 100644 index 80d39a5b..00000000 Binary files a/.yarn/cache/wcwidth-npm-1.0.1-05fa596453-182ebac8ca.zip and /dev/null differ diff --git a/.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-b65b9f8d68.zip b/.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-b65b9f8d68.zip deleted file mode 100644 index e83f737a..00000000 Binary files a/.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-b65b9f8d68.zip and /dev/null differ diff --git a/.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-cea864dd9c.zip b/.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-cea864dd9c.zip deleted file mode 100644 index 2b88daf8..00000000 Binary files a/.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-cea864dd9c.zip and /dev/null differ diff --git a/.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-4454b73060.zip b/.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-4454b73060.zip deleted file mode 100644 index 8c737063..00000000 Binary files a/.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-4454b73060.zip and /dev/null differ diff --git a/.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-5be4efe111.zip b/.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-5be4efe111.zip deleted file mode 100644 index c052a851..00000000 Binary files a/.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-5be4efe111.zip and /dev/null differ diff --git a/.yarn/cache/whatwg-fetch-npm-3.6.20-a6f79b98c4-2b4ed92acd.zip b/.yarn/cache/whatwg-fetch-npm-3.6.20-a6f79b98c4-2b4ed92acd.zip deleted file mode 100644 index 8c788335..00000000 Binary files a/.yarn/cache/whatwg-fetch-npm-3.6.20-a6f79b98c4-2b4ed92acd.zip and /dev/null differ diff --git a/.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-3582c1d74d.zip b/.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-3582c1d74d.zip deleted file mode 100644 index 28e7d4b9..00000000 Binary files a/.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-3582c1d74d.zip and /dev/null differ diff --git a/.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-f95adbc1e8.zip b/.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-f95adbc1e8.zip deleted file mode 100644 index 278c6089..00000000 Binary files a/.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-f95adbc1e8.zip and /dev/null differ diff --git a/.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-7216d75826.zip b/.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-7216d75826.zip deleted file mode 100644 index 5f858985..00000000 Binary files a/.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-7216d75826.zip and /dev/null differ diff --git a/.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-9c7ca78552.zip b/.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-9c7ca78552.zip deleted file mode 100644 index 7fa1f4d9..00000000 Binary files a/.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-9c7ca78552.zip and /dev/null differ diff --git a/.yarn/cache/which-module-npm-2.0.0-daf3daa08d-e3e46c9c84.zip b/.yarn/cache/which-module-npm-2.0.0-daf3daa08d-e3e46c9c84.zip deleted file mode 100644 index c508eda7..00000000 Binary files a/.yarn/cache/which-module-npm-2.0.0-daf3daa08d-e3e46c9c84.zip and /dev/null differ diff --git a/.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-549dcf1752.zip b/.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-549dcf1752.zip deleted file mode 100644 index 843c2ae2..00000000 Binary files a/.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-549dcf1752.zip and /dev/null differ diff --git a/.yarn/cache/which-npm-2.0.2-320ddf72f7-4782f8a1d6.zip b/.yarn/cache/which-npm-2.0.2-320ddf72f7-4782f8a1d6.zip deleted file mode 100644 index a912fecf..00000000 Binary files a/.yarn/cache/which-npm-2.0.2-320ddf72f7-4782f8a1d6.zip and /dev/null differ diff --git a/.yarn/cache/wide-align-npm-1.1.3-48c7d4953c-187642e0bb.zip b/.yarn/cache/wide-align-npm-1.1.3-48c7d4953c-187642e0bb.zip deleted file mode 100644 index 5ea60d68..00000000 Binary files a/.yarn/cache/wide-align-npm-1.1.3-48c7d4953c-187642e0bb.zip and /dev/null differ diff --git a/.yarn/cache/widest-line-npm-3.1.0-717bf2680b-03db6c9d0a.zip b/.yarn/cache/widest-line-npm-3.1.0-717bf2680b-03db6c9d0a.zip deleted file mode 100644 index 4b9315fa..00000000 Binary files a/.yarn/cache/widest-line-npm-3.1.0-717bf2680b-03db6c9d0a.zip and /dev/null differ diff --git a/.yarn/cache/windows-release-npm-4.0.0-0487118638-77c87d332d.zip b/.yarn/cache/windows-release-npm-4.0.0-0487118638-77c87d332d.zip deleted file mode 100644 index f80e5992..00000000 Binary files a/.yarn/cache/windows-release-npm-4.0.0-0487118638-77c87d332d.zip and /dev/null differ diff --git a/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-08a677e157.zip b/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-08a677e157.zip deleted file mode 100644 index f7046368..00000000 Binary files a/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-08a677e157.zip and /dev/null differ diff --git a/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-497d40beb2.zip b/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-497d40beb2.zip deleted file mode 100644 index b7af4a47..00000000 Binary files a/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-497d40beb2.zip and /dev/null differ diff --git a/.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-0d64f2d438.zip b/.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-0d64f2d438.zip deleted file mode 100644 index 72572036..00000000 Binary files a/.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-0d64f2d438.zip and /dev/null differ diff --git a/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-cebdaeca3a.zip b/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-cebdaeca3a.zip deleted file mode 100644 index 9408fde9..00000000 Binary files a/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-cebdaeca3a.zip and /dev/null differ diff --git a/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip b/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip deleted file mode 100644 index 6072a9f2..00000000 Binary files a/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip and /dev/null differ diff --git a/.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-15ce863dce.zip b/.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-15ce863dce.zip deleted file mode 100644 index cc48d759..00000000 Binary files a/.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-15ce863dce.zip and /dev/null differ diff --git a/.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-0955ab9430.zip b/.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-0955ab9430.zip deleted file mode 100644 index 54d08a52..00000000 Binary files a/.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-0955ab9430.zip and /dev/null differ diff --git a/.yarn/cache/ws-npm-6.2.3-0647b230b5-19f8d16083.zip b/.yarn/cache/ws-npm-6.2.3-0647b230b5-19f8d16083.zip deleted file mode 100644 index 16385f51..00000000 Binary files a/.yarn/cache/ws-npm-6.2.3-0647b230b5-19f8d16083.zip and /dev/null differ diff --git a/.yarn/cache/ws-npm-7.4.5-5c28d7e14e-e85ec540bf.zip b/.yarn/cache/ws-npm-7.4.5-5c28d7e14e-e85ec540bf.zip deleted file mode 100644 index 34a1ab83..00000000 Binary files a/.yarn/cache/ws-npm-7.4.5-5c28d7e14e-e85ec540bf.zip and /dev/null differ diff --git a/.yarn/cache/ws-npm-7.5.10-878ccb886b-9c796b84ba.zip b/.yarn/cache/ws-npm-7.5.10-878ccb886b-9c796b84ba.zip deleted file mode 100644 index fd4e64ae..00000000 Binary files a/.yarn/cache/ws-npm-7.5.10-878ccb886b-9c796b84ba.zip and /dev/null differ diff --git a/.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-0073d5b59a.zip b/.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-0073d5b59a.zip deleted file mode 100644 index 3bf6cb24..00000000 Binary files a/.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-0073d5b59a.zip and /dev/null differ diff --git a/.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-24f5d38c77.zip b/.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-24f5d38c77.zip deleted file mode 100644 index 53082314..00000000 Binary files a/.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-24f5d38c77.zip and /dev/null differ diff --git a/.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-4ad5924974.zip b/.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-4ad5924974.zip deleted file mode 100644 index a353e640..00000000 Binary files a/.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-4ad5924974.zip and /dev/null differ diff --git a/.yarn/cache/xtend-npm-4.0.2-7f2375736e-ac5dfa738b.zip b/.yarn/cache/xtend-npm-4.0.2-7f2375736e-ac5dfa738b.zip deleted file mode 100644 index 1090c686..00000000 Binary files a/.yarn/cache/xtend-npm-4.0.2-7f2375736e-ac5dfa738b.zip and /dev/null differ diff --git a/.yarn/cache/y18n-npm-4.0.3-ced95acdbc-392870b2a1.zip b/.yarn/cache/y18n-npm-4.0.3-ced95acdbc-392870b2a1.zip deleted file mode 100644 index 94cd95ba..00000000 Binary files a/.yarn/cache/y18n-npm-4.0.3-ced95acdbc-392870b2a1.zip and /dev/null differ diff --git a/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-5f1b5f95e3.zip b/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-5f1b5f95e3.zip deleted file mode 100644 index 8237762e..00000000 Binary files a/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-5f1b5f95e3.zip and /dev/null differ diff --git a/.yarn/cache/yallist-npm-3.1.1-a568a556b4-9af0a4329c.zip b/.yarn/cache/yallist-npm-3.1.1-a568a556b4-9af0a4329c.zip deleted file mode 100644 index c47958d0..00000000 Binary files a/.yarn/cache/yallist-npm-3.1.1-a568a556b4-9af0a4329c.zip and /dev/null differ diff --git a/.yarn/cache/yallist-npm-4.0.0-b493d9e907-4cb02b42b8.zip b/.yarn/cache/yallist-npm-4.0.0-b493d9e907-4cb02b42b8.zip deleted file mode 100644 index 178e1e66..00000000 Binary files a/.yarn/cache/yallist-npm-4.0.0-b493d9e907-4cb02b42b8.zip and /dev/null differ diff --git a/.yarn/cache/yaml-npm-1.10.0-3e2d763b45-dc65f8d0dc.zip b/.yarn/cache/yaml-npm-1.10.0-3e2d763b45-dc65f8d0dc.zip deleted file mode 100644 index a6722fd1..00000000 Binary files a/.yarn/cache/yaml-npm-1.10.0-3e2d763b45-dc65f8d0dc.zip and /dev/null differ diff --git a/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-e088b37b4d.zip b/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-e088b37b4d.zip deleted file mode 100644 index 39ef27ac..00000000 Binary files a/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-e088b37b4d.zip and /dev/null differ diff --git a/.yarn/cache/yaml-npm-2.5.1-8b2871f510-0eecb679db.zip b/.yarn/cache/yaml-npm-2.5.1-8b2871f510-0eecb679db.zip deleted file mode 100644 index 3ab1f856..00000000 Binary files a/.yarn/cache/yaml-npm-2.5.1-8b2871f510-0eecb679db.zip and /dev/null differ diff --git a/.yarn/cache/yargs-npm-15.4.1-ca1c444de1-bbcc822229.zip b/.yarn/cache/yargs-npm-15.4.1-ca1c444de1-bbcc822229.zip deleted file mode 100644 index dfffc8a9..00000000 Binary files a/.yarn/cache/yargs-npm-15.4.1-ca1c444de1-bbcc822229.zip and /dev/null differ diff --git a/.yarn/cache/yargs-npm-16.2.0-547873d425-807fa21211.zip b/.yarn/cache/yargs-npm-16.2.0-547873d425-807fa21211.zip deleted file mode 100644 index 3e9f7e48..00000000 Binary files a/.yarn/cache/yargs-npm-16.2.0-547873d425-807fa21211.zip and /dev/null differ diff --git a/.yarn/cache/yargs-npm-17.7.2-80b62638e1-abb3e37678.zip b/.yarn/cache/yargs-npm-17.7.2-80b62638e1-abb3e37678.zip deleted file mode 100644 index 44b97347..00000000 Binary files a/.yarn/cache/yargs-npm-17.7.2-80b62638e1-abb3e37678.zip and /dev/null differ diff --git a/.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-235bcbad5b.zip b/.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-235bcbad5b.zip deleted file mode 100644 index 73550655..00000000 Binary files a/.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-235bcbad5b.zip and /dev/null differ diff --git a/.yarn/cache/yargs-parser-npm-20.2.1-b1a18008ef-652ae539cf.zip b/.yarn/cache/yargs-parser-npm-20.2.1-b1a18008ef-652ae539cf.zip deleted file mode 100644 index c4d6b6b4..00000000 Binary files a/.yarn/cache/yargs-parser-npm-20.2.1-b1a18008ef-652ae539cf.zip and /dev/null differ diff --git a/.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-402e468ca9.zip b/.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-402e468ca9.zip deleted file mode 100644 index 0ca7ed01..00000000 Binary files a/.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-402e468ca9.zip and /dev/null differ diff --git a/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-9dc2c217ea.zip b/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-9dc2c217ea.zip deleted file mode 100644 index 32e7f6b5..00000000 Binary files a/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-9dc2c217ea.zip and /dev/null differ diff --git a/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip b/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip deleted file mode 100644 index f56730df..00000000 Binary files a/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip and /dev/null differ diff --git a/.yarn/patches/react-native-accessibility-engine-npm-3.2.0-5709303461.patch b/.yarn/patches/react-native-accessibility-engine-npm-3.2.0-5709303461.patch new file mode 100644 index 00000000..213c9900 --- /dev/null +++ b/.yarn/patches/react-native-accessibility-engine-npm-3.2.0-5709303461.patch @@ -0,0 +1,156 @@ +diff --git a/lib/commonjs/engine/index.js b/lib/commonjs/engine/index.js +index 6845aeb33af24444f0d7c8e636de3de2b15f64c0..66c1a3f31b000a66df033a0b034dc64bde3bbd96 100644 +--- a/lib/commonjs/engine/index.js ++++ b/lib/commonjs/engine/index.js +@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { + }); + exports.default = exports.AccessibilityError = void 0; + +-var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer")); ++var _reactNative = require("@testing-library/react-native"); + + var _rules2 = _interopRequireDefault(require("../rules")); + +@@ -27,7 +27,7 @@ class AccessibilityError extends Error { + exports.AccessibilityError = AccessibilityError; + + const engine = (treeOrTestInstance, options) => { +- let testInstance = (0, _helpers.isReactTestInstance)(treeOrTestInstance) ? treeOrTestInstance : _reactTestRenderer.default.create(treeOrTestInstance).root; ++ let testInstance = (0, _helpers.isReactTestInstance)(treeOrTestInstance) ? treeOrTestInstance : (0, _reactNative.render)(treeOrTestInstance).root; + + const _rules = options !== null && options !== void 0 && options.rules ? options.rules.map(id => _rules2.default.find(rule => rule.id === id)) : _rules2.default; + +diff --git a/lib/commonjs/engine/index.js.map b/lib/commonjs/engine/index.js.map +index 5f2a5bc01b5d138afb304c4ec607321f48e89757..433617c9975df202161e61114d01979a71b21030 100644 +--- a/lib/commonjs/engine/index.js.map ++++ b/lib/commonjs/engine/index.js.map +@@ -1 +1 @@ +-{"version":3,"names":["AccessibilityError","Error","constructor","message","name","engine","treeOrTestInstance","options","testInstance","isReactTestInstance","TestRenderer","create","root","_rules","rules","map","id","allRules","find","rule","violations","matchedComponents","findAll","matcher","deep","push","component","didPassAssertion","isHidden","assertion","pathToComponent","getPathToComponent","help","customViolationHandler","returnViolations","length","generateCheckError"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\nimport TestRenderer, { ReactTestInstance } from 'react-test-renderer';\n\nimport allRules from '../rules';\nimport type { Violation } from '../types';\nimport type { RuleId } from 'src/types/Rule';\nimport type Rule from 'src/types/Rule';\n\nimport { isHidden, isReactTestInstance, getPathToComponent } from '../helpers';\nimport { generateCheckError } from '../utils';\n\nexport class AccessibilityError extends Error {\n constructor(message = '') {\n super(message);\n this.name = 'AccessibilityError';\n }\n}\n\nexport type Options = {\n // Pass in the subset of rules you want to run\n rules?: RuleId[];\n // Return the violation array instead of an error\n returnViolations?: boolean;\n // Utilize for custom handling of jest test matcher output\n customViolationHandler?: (violations: Violation[]) => Violation[];\n};\n\nconst engine = (\n treeOrTestInstance: React.ReactElement | ReactTestInstance,\n options?: Options\n) => {\n let testInstance = isReactTestInstance(treeOrTestInstance)\n ? treeOrTestInstance\n : TestRenderer.create(treeOrTestInstance).root;\n\n const _rules = options?.rules\n ? (options.rules.map((id: RuleId) =>\n allRules.find((rule) => rule.id === id)\n ) as Rule[])\n : allRules;\n const violations: Violation[] = [];\n\n // For every rule\n for (const rule of _rules) {\n // Traverse the component tree below the root to find the components that should be tested\n const matchedComponents = testInstance.findAll(rule.matcher, {\n deep: true,\n });\n\n // Check if the root of the tree should be tested as well\n if (rule.matcher(testInstance)) {\n matchedComponents.push(testInstance);\n }\n\n // For all the components that were found\n for (const component of matchedComponents) {\n let didPassAssertion = false;\n\n if (isHidden(component)) {\n // Skip checks on hidden components\n didPassAssertion = true;\n } else {\n // Check if the component meets the rule's assertion\n didPassAssertion = rule.assertion(component);\n }\n\n // If not, add component to violation array\n if (!didPassAssertion) {\n violations.push({\n pathToComponent: getPathToComponent(component),\n ...rule.help,\n });\n }\n }\n }\n\n if (options?.customViolationHandler) {\n return options.customViolationHandler(violations);\n }\n\n if (options?.returnViolations) {\n return violations;\n }\n\n if (violations.length) {\n throw new AccessibilityError(generateCheckError(violations));\n }\n\n return [];\n};\n\nexport default engine;\n"],"mappings":";;;;;;;AACA;;AAEA;;AAKA;;AACA;;;;AAEO,MAAMA,kBAAN,SAAiCC,KAAjC,CAAuC;EAC5CC,WAAW,GAAe;IAAA,IAAdC,OAAc,uEAAJ,EAAI;IACxB,MAAMA,OAAN;IACA,KAAKC,IAAL,GAAY,oBAAZ;EACD;;AAJ2C;;;;AAgB9C,MAAMC,MAAM,GAAG,CACbC,kBADa,EAEbC,OAFa,KAGV;EACH,IAAIC,YAAY,GAAG,IAAAC,4BAAA,EAAoBH,kBAApB,IACfA,kBADe,GAEfI,0BAAA,CAAaC,MAAb,CAAoBL,kBAApB,EAAwCM,IAF5C;;EAIA,MAAMC,MAAM,GAAGN,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEO,KAAT,GACVP,OAAO,CAACO,KAAR,CAAcC,GAAd,CAAmBC,EAAD,IACjBC,eAAA,CAASC,IAAT,CAAeC,IAAD,IAAUA,IAAI,CAACH,EAAL,KAAYA,EAApC,CADD,CADU,GAIXC,eAJJ;;EAKA,MAAMG,UAAuB,GAAG,EAAhC,CAVG,CAYH;;EACA,KAAK,MAAMD,IAAX,IAAmBN,MAAnB,EAA2B;IACzB;IACA,MAAMQ,iBAAiB,GAAGb,YAAY,CAACc,OAAb,CAAqBH,IAAI,CAACI,OAA1B,EAAmC;MAC3DC,IAAI,EAAE;IADqD,CAAnC,CAA1B,CAFyB,CAMzB;;IACA,IAAIL,IAAI,CAACI,OAAL,CAAaf,YAAb,CAAJ,EAAgC;MAC9Ba,iBAAiB,CAACI,IAAlB,CAAuBjB,YAAvB;IACD,CATwB,CAWzB;;;IACA,KAAK,MAAMkB,SAAX,IAAwBL,iBAAxB,EAA2C;MACzC,IAAIM,gBAAgB,GAAG,KAAvB;;MAEA,IAAI,IAAAC,iBAAA,EAASF,SAAT,CAAJ,EAAyB;QACvB;QACAC,gBAAgB,GAAG,IAAnB;MACD,CAHD,MAGO;QACL;QACAA,gBAAgB,GAAGR,IAAI,CAACU,SAAL,CAAeH,SAAf,CAAnB;MACD,CATwC,CAWzC;;;MACA,IAAI,CAACC,gBAAL,EAAuB;QACrBP,UAAU,CAACK,IAAX,CAAgB;UACdK,eAAe,EAAE,IAAAC,2BAAA,EAAmBL,SAAnB,CADH;UAEd,GAAGP,IAAI,CAACa;QAFM,CAAhB;MAID;IACF;EACF;;EAED,IAAIzB,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE0B,sBAAb,EAAqC;IACnC,OAAO1B,OAAO,CAAC0B,sBAAR,CAA+Bb,UAA/B,CAAP;EACD;;EAED,IAAIb,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE2B,gBAAb,EAA+B;IAC7B,OAAOd,UAAP;EACD;;EAED,IAAIA,UAAU,CAACe,MAAf,EAAuB;IACrB,MAAM,IAAInC,kBAAJ,CAAuB,IAAAoC,yBAAA,EAAmBhB,UAAnB,CAAvB,CAAN;EACD;;EAED,OAAO,EAAP;AACD,CA9DD;;eAgEef,M"} +\ No newline at end of file ++{"version":3,"names":["AccessibilityError","Error","constructor","message","name","engine","treeOrTestInstance","options","testInstance","isReactTestInstance","render","root","_rules","rules","map","id","allRules","find","rule","violations","matchedComponents","findAll","matcher","deep","push","component","didPassAssertion","isHidden","assertion","pathToComponent","getPathToComponent","help","customViolationHandler","returnViolations","length","generateCheckError"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { render } from '@testing-library/react-native';\n\nimport allRules from '../rules';\nimport type { Violation } from '../types';\nimport type { RuleId } from 'src/types/Rule';\nimport type Rule from 'src/types/Rule';\n\nimport { isHidden, isReactTestInstance, getPathToComponent } from '../helpers';\nimport { generateCheckError } from '../utils';\n\nexport class AccessibilityError extends Error {\n constructor(message = '') {\n super(message);\n this.name = 'AccessibilityError';\n }\n}\n\nexport type Options = {\n // Pass in the subset of rules you want to run\n rules?: RuleId[];\n // Return the violation array instead of an error\n returnViolations?: boolean;\n // Utilize for custom handling of jest test matcher output\n customViolationHandler?: (violations: Violation[]) => Violation[];\n};\n\nconst engine = (\n treeOrTestInstance: React.ReactElement | ReactTestInstance,\n options?: Options\n) => {\n let testInstance = isReactTestInstance(treeOrTestInstance)\n ? treeOrTestInstance\n : render(treeOrTestInstance).root;\n\n const _rules = options?.rules\n ? (options.rules.map((id: RuleId) =>\n allRules.find((rule) => rule.id === id)\n ) as Rule[])\n : allRules;\n const violations: Violation[] = [];\n\n // For every rule\n for (const rule of _rules) {\n // Traverse the component tree below the root to find the components that should be tested\n const matchedComponents = testInstance.findAll(rule.matcher, {\n deep: true,\n });\n\n // Check if the root of the tree should be tested as well\n if (rule.matcher(testInstance)) {\n matchedComponents.push(testInstance);\n }\n\n // For all the components that were found\n for (const component of matchedComponents) {\n let didPassAssertion = false;\n\n if (isHidden(component)) {\n // Skip checks on hidden components\n didPassAssertion = true;\n } else {\n // Check if the component meets the rule's assertion\n didPassAssertion = rule.assertion(component);\n }\n\n // If not, add component to violation array\n if (!didPassAssertion) {\n violations.push({\n pathToComponent: getPathToComponent(component),\n ...rule.help,\n });\n }\n }\n }\n\n if (options?.customViolationHandler) {\n return options.customViolationHandler(violations);\n }\n\n if (options?.returnViolations) {\n return violations;\n }\n\n if (violations.length) {\n throw new AccessibilityError(generateCheckError(violations));\n }\n\n return [];\n};\n\nexport default engine;\n"],"mappings":";;;;;;;AAEA;;AAEA;;AAKA;;AACA;;;;AAEO,MAAMA,kBAAN,SAAiCC,KAAjC,CAAuC;EAC5CC,WAAW,GAAe;IAAA,IAAdC,OAAc,uEAAJ,EAAI;IACxB,MAAMA,OAAN;IACA,KAAKC,IAAL,GAAY,oBAAZ;EACD;;AAJ2C;;;;AAgB9C,MAAMC,MAAM,GAAG,CACbC,kBADa,EAEbC,OAFa,KAGV;EACH,IAAIC,YAAY,GAAG,IAAAC,4BAAA,EAAoBH,kBAApB,IACfA,kBADe,GAEf,IAAAI,mBAAA,EAAOJ,kBAAP,EAA2BK,IAF/B;;EAIA,MAAMC,MAAM,GAAGL,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEM,KAAT,GACVN,OAAO,CAACM,KAAR,CAAcC,GAAd,CAAmBC,EAAD,IACjBC,eAAA,CAASC,IAAT,CAAeC,IAAD,IAAUA,IAAI,CAACH,EAAL,KAAYA,EAApC,CADD,CADU,GAIXC,eAJJ;;EAKA,MAAMG,UAAuB,GAAG,EAAhC,CAVG,CAYH;;EACA,KAAK,MAAMD,IAAX,IAAmBN,MAAnB,EAA2B;IACzB;IACA,MAAMQ,iBAAiB,GAAGZ,YAAY,CAACa,OAAb,CAAqBH,IAAI,CAACI,OAA1B,EAAmC;MAC3DC,IAAI,EAAE;IADqD,CAAnC,CAA1B,CAFyB,CAMzB;;IACA,IAAIL,IAAI,CAACI,OAAL,CAAad,YAAb,CAAJ,EAAgC;MAC9BY,iBAAiB,CAACI,IAAlB,CAAuBhB,YAAvB;IACD,CATwB,CAWzB;;;IACA,KAAK,MAAMiB,SAAX,IAAwBL,iBAAxB,EAA2C;MACzC,IAAIM,gBAAgB,GAAG,KAAvB;;MAEA,IAAI,IAAAC,iBAAA,EAASF,SAAT,CAAJ,EAAyB;QACvB;QACAC,gBAAgB,GAAG,IAAnB;MACD,CAHD,MAGO;QACL;QACAA,gBAAgB,GAAGR,IAAI,CAACU,SAAL,CAAeH,SAAf,CAAnB;MACD,CATwC,CAWzC;;;MACA,IAAI,CAACC,gBAAL,EAAuB;QACrBP,UAAU,CAACK,IAAX,CAAgB;UACdK,eAAe,EAAE,IAAAC,2BAAA,EAAmBL,SAAnB,CADH;UAEd,GAAGP,IAAI,CAACa;QAFM,CAAhB;MAID;IACF;EACF;;EAED,IAAIxB,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEyB,sBAAb,EAAqC;IACnC,OAAOzB,OAAO,CAACyB,sBAAR,CAA+Bb,UAA/B,CAAP;EACD;;EAED,IAAIZ,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE0B,gBAAb,EAA+B;IAC7B,OAAOd,UAAP;EACD;;EAED,IAAIA,UAAU,CAACe,MAAf,EAAuB;IACrB,MAAM,IAAIlC,kBAAJ,CAAuB,IAAAmC,yBAAA,EAAmBhB,UAAnB,CAAvB,CAAN;EACD;;EAED,OAAO,EAAP;AACD,CA9DD;;eAgEed,M"} +\ No newline at end of file +diff --git a/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js b/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js +index a9dddf9784dc66f324dc162eabeb3c6fae7b9798..b8959096469ecd178d13e705d7df6c8c1e7197f5 100644 +--- a/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js ++++ b/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js +@@ -7,11 +7,11 @@ exports.default = isReactTestInstance; + + var _react = _interopRequireDefault(require("react")); + +-var _reactTestRenderer = require("react-test-renderer"); ++var _reactNative = require("@testing-library/react-native"); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +-const testInstancePrototype = Object.getPrototypeOf((0, _reactTestRenderer.create)( /*#__PURE__*/_react.default.createElement('div')).root); ++const testInstancePrototype = Object.getPrototypeOf((0, _reactNative.render)( /*#__PURE__*/_react.default.createElement('div')).root); + + function isReactTestInstance(candiate) { + return !!candiate && typeof candiate === 'object' && Object.getPrototypeOf(candiate) === testInstancePrototype; +diff --git a/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js.map b/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js.map +index 2ffef954b2fafaa357de9cbfb2b5e2672bd6119d..9a68857274da8e5f882fba77914ef0883a8aae18 100644 +--- a/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js.map ++++ b/lib/commonjs/helpers/isReactTestInstance/isReactTestInstance.js.map +@@ -1 +1 @@ +-{"version":3,"names":["testInstancePrototype","Object","getPrototypeOf","create","React","createElement","root","isReactTestInstance","candiate"],"sources":["isReactTestInstance.ts"],"sourcesContent":["import React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { create } from 'react-test-renderer';\n\nconst testInstancePrototype = Object.getPrototypeOf(\n create(React.createElement('div')).root\n);\n\nexport default function isReactTestInstance(\n candiate: unknown\n): candiate is ReactTestInstance {\n return (\n !!candiate &&\n typeof candiate === 'object' &&\n Object.getPrototypeOf(candiate) === testInstancePrototype\n );\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAEA,MAAMA,qBAAqB,GAAGC,MAAM,CAACC,cAAP,CAC5B,IAAAC,yBAAA,gBAAOC,cAAA,CAAMC,aAAN,CAAoB,KAApB,CAAP,EAAmCC,IADP,CAA9B;;AAIe,SAASC,mBAAT,CACbC,QADa,EAEkB;EAC/B,OACE,CAAC,CAACA,QAAF,IACA,OAAOA,QAAP,KAAoB,QADpB,IAEAP,MAAM,CAACC,cAAP,CAAsBM,QAAtB,MAAoCR,qBAHtC;AAKD"} +\ No newline at end of file ++{"version":3,"names":["testInstancePrototype","Object","getPrototypeOf","render","React","createElement","root","isReactTestInstance","candiate"],"sources":["isReactTestInstance.ts"],"sourcesContent":["import React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { render } from '@testing-library/react-native';\n\nconst testInstancePrototype = Object.getPrototypeOf(\n render(React.createElement('div')).root\n);\n\nexport default function isReactTestInstance(\n candiate: unknown\n): candiate is ReactTestInstance {\n return (\n !!candiate &&\n typeof candiate === 'object' &&\n Object.getPrototypeOf(candiate) === testInstancePrototype\n );\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAEA,MAAMA,qBAAqB,GAAGC,MAAM,CAACC,cAAP,CAC5B,IAAAC,mBAAA,gBAAOC,cAAA,CAAMC,aAAN,CAAoB,KAApB,CAAP,EAAmCC,IADP,CAA9B;;AAIe,SAASC,mBAAT,CACbC,QADa,EAEkB;EAC/B,OACE,CAAC,CAACA,QAAF,IACA,OAAOA,QAAP,KAAoB,QADpB,IAEAP,MAAM,CAACC,cAAP,CAAsBM,QAAtB,MAAoCR,qBAHtC;AAKD"} +\ No newline at end of file +diff --git a/lib/module/engine/index.js b/lib/module/engine/index.js +index 67d2dc8a14e7101421f6713c304aff45722f3d5c..05b0ed5cd30b1ccb71d57685acdfcff4cfeff9f4 100644 +--- a/lib/module/engine/index.js ++++ b/lib/module/engine/index.js +@@ -1,4 +1,4 @@ +-import TestRenderer from 'react-test-renderer'; ++import { render } from '@testing-library/react-native'; + import allRules from '../rules'; + import { isHidden, isReactTestInstance, getPathToComponent } from '../helpers'; + import { generateCheckError } from '../utils'; +@@ -12,7 +12,7 @@ export class AccessibilityError extends Error { + } + + const engine = (treeOrTestInstance, options) => { +- let testInstance = isReactTestInstance(treeOrTestInstance) ? treeOrTestInstance : TestRenderer.create(treeOrTestInstance).root; ++ let testInstance = isReactTestInstance(treeOrTestInstance) ? treeOrTestInstance : render(treeOrTestInstance).root; + + const _rules = options !== null && options !== void 0 && options.rules ? options.rules.map(id => allRules.find(rule => rule.id === id)) : allRules; + +diff --git a/lib/module/engine/index.js.map b/lib/module/engine/index.js.map +index 4095b9e6249dcc94f1c247a957a0d93a78867768..e6b9745e8ade1074fa5cd27148fd5d7b91abf5c9 100644 +--- a/lib/module/engine/index.js.map ++++ b/lib/module/engine/index.js.map +@@ -1 +1 @@ +-{"version":3,"names":["TestRenderer","allRules","isHidden","isReactTestInstance","getPathToComponent","generateCheckError","AccessibilityError","Error","constructor","message","name","engine","treeOrTestInstance","options","testInstance","create","root","_rules","rules","map","id","find","rule","violations","matchedComponents","findAll","matcher","deep","push","component","didPassAssertion","assertion","pathToComponent","help","customViolationHandler","returnViolations","length"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\nimport TestRenderer, { ReactTestInstance } from 'react-test-renderer';\n\nimport allRules from '../rules';\nimport type { Violation } from '../types';\nimport type { RuleId } from 'src/types/Rule';\nimport type Rule from 'src/types/Rule';\n\nimport { isHidden, isReactTestInstance, getPathToComponent } from '../helpers';\nimport { generateCheckError } from '../utils';\n\nexport class AccessibilityError extends Error {\n constructor(message = '') {\n super(message);\n this.name = 'AccessibilityError';\n }\n}\n\nexport type Options = {\n // Pass in the subset of rules you want to run\n rules?: RuleId[];\n // Return the violation array instead of an error\n returnViolations?: boolean;\n // Utilize for custom handling of jest test matcher output\n customViolationHandler?: (violations: Violation[]) => Violation[];\n};\n\nconst engine = (\n treeOrTestInstance: React.ReactElement | ReactTestInstance,\n options?: Options\n) => {\n let testInstance = isReactTestInstance(treeOrTestInstance)\n ? treeOrTestInstance\n : TestRenderer.create(treeOrTestInstance).root;\n\n const _rules = options?.rules\n ? (options.rules.map((id: RuleId) =>\n allRules.find((rule) => rule.id === id)\n ) as Rule[])\n : allRules;\n const violations: Violation[] = [];\n\n // For every rule\n for (const rule of _rules) {\n // Traverse the component tree below the root to find the components that should be tested\n const matchedComponents = testInstance.findAll(rule.matcher, {\n deep: true,\n });\n\n // Check if the root of the tree should be tested as well\n if (rule.matcher(testInstance)) {\n matchedComponents.push(testInstance);\n }\n\n // For all the components that were found\n for (const component of matchedComponents) {\n let didPassAssertion = false;\n\n if (isHidden(component)) {\n // Skip checks on hidden components\n didPassAssertion = true;\n } else {\n // Check if the component meets the rule's assertion\n didPassAssertion = rule.assertion(component);\n }\n\n // If not, add component to violation array\n if (!didPassAssertion) {\n violations.push({\n pathToComponent: getPathToComponent(component),\n ...rule.help,\n });\n }\n }\n }\n\n if (options?.customViolationHandler) {\n return options.customViolationHandler(violations);\n }\n\n if (options?.returnViolations) {\n return violations;\n }\n\n if (violations.length) {\n throw new AccessibilityError(generateCheckError(violations));\n }\n\n return [];\n};\n\nexport default engine;\n"],"mappings":"AACA,OAAOA,YAAP,MAAgD,qBAAhD;AAEA,OAAOC,QAAP,MAAqB,UAArB;AAKA,SAASC,QAAT,EAAmBC,mBAAnB,EAAwCC,kBAAxC,QAAkE,YAAlE;AACA,SAASC,kBAAT,QAAmC,UAAnC;AAEA,OAAO,MAAMC,kBAAN,SAAiCC,KAAjC,CAAuC;EAC5CC,WAAW,GAAe;IAAA,IAAdC,OAAc,uEAAJ,EAAI;IACxB,MAAMA,OAAN;IACA,KAAKC,IAAL,GAAY,oBAAZ;EACD;;AAJ2C;;AAgB9C,MAAMC,MAAM,GAAG,CACbC,kBADa,EAEbC,OAFa,KAGV;EACH,IAAIC,YAAY,GAAGX,mBAAmB,CAACS,kBAAD,CAAnB,GACfA,kBADe,GAEfZ,YAAY,CAACe,MAAb,CAAoBH,kBAApB,EAAwCI,IAF5C;;EAIA,MAAMC,MAAM,GAAGJ,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEK,KAAT,GACVL,OAAO,CAACK,KAAR,CAAcC,GAAd,CAAmBC,EAAD,IACjBnB,QAAQ,CAACoB,IAAT,CAAeC,IAAD,IAAUA,IAAI,CAACF,EAAL,KAAYA,EAApC,CADD,CADU,GAIXnB,QAJJ;;EAKA,MAAMsB,UAAuB,GAAG,EAAhC,CAVG,CAYH;;EACA,KAAK,MAAMD,IAAX,IAAmBL,MAAnB,EAA2B;IACzB;IACA,MAAMO,iBAAiB,GAAGV,YAAY,CAACW,OAAb,CAAqBH,IAAI,CAACI,OAA1B,EAAmC;MAC3DC,IAAI,EAAE;IADqD,CAAnC,CAA1B,CAFyB,CAMzB;;IACA,IAAIL,IAAI,CAACI,OAAL,CAAaZ,YAAb,CAAJ,EAAgC;MAC9BU,iBAAiB,CAACI,IAAlB,CAAuBd,YAAvB;IACD,CATwB,CAWzB;;;IACA,KAAK,MAAMe,SAAX,IAAwBL,iBAAxB,EAA2C;MACzC,IAAIM,gBAAgB,GAAG,KAAvB;;MAEA,IAAI5B,QAAQ,CAAC2B,SAAD,CAAZ,EAAyB;QACvB;QACAC,gBAAgB,GAAG,IAAnB;MACD,CAHD,MAGO;QACL;QACAA,gBAAgB,GAAGR,IAAI,CAACS,SAAL,CAAeF,SAAf,CAAnB;MACD,CATwC,CAWzC;;;MACA,IAAI,CAACC,gBAAL,EAAuB;QACrBP,UAAU,CAACK,IAAX,CAAgB;UACdI,eAAe,EAAE5B,kBAAkB,CAACyB,SAAD,CADrB;UAEd,GAAGP,IAAI,CAACW;QAFM,CAAhB;MAID;IACF;EACF;;EAED,IAAIpB,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEqB,sBAAb,EAAqC;IACnC,OAAOrB,OAAO,CAACqB,sBAAR,CAA+BX,UAA/B,CAAP;EACD;;EAED,IAAIV,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEsB,gBAAb,EAA+B;IAC7B,OAAOZ,UAAP;EACD;;EAED,IAAIA,UAAU,CAACa,MAAf,EAAuB;IACrB,MAAM,IAAI9B,kBAAJ,CAAuBD,kBAAkB,CAACkB,UAAD,CAAzC,CAAN;EACD;;EAED,OAAO,EAAP;AACD,CA9DD;;AAgEA,eAAeZ,MAAf"} +\ No newline at end of file ++{"version":3,"names":["render","allRules","isHidden","isReactTestInstance","getPathToComponent","generateCheckError","AccessibilityError","Error","constructor","message","name","engine","treeOrTestInstance","options","testInstance","root","_rules","rules","map","id","find","rule","violations","matchedComponents","findAll","matcher","deep","push","component","didPassAssertion","assertion","pathToComponent","help","customViolationHandler","returnViolations","length"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { render } from '@testing-library/react-native';\n\nimport allRules from '../rules';\nimport type { Violation } from '../types';\nimport type { RuleId } from 'src/types/Rule';\nimport type Rule from 'src/types/Rule';\n\nimport { isHidden, isReactTestInstance, getPathToComponent } from '../helpers';\nimport { generateCheckError } from '../utils';\n\nexport class AccessibilityError extends Error {\n constructor(message = '') {\n super(message);\n this.name = 'AccessibilityError';\n }\n}\n\nexport type Options = {\n // Pass in the subset of rules you want to run\n rules?: RuleId[];\n // Return the violation array instead of an error\n returnViolations?: boolean;\n // Utilize for custom handling of jest test matcher output\n customViolationHandler?: (violations: Violation[]) => Violation[];\n};\n\nconst engine = (\n treeOrTestInstance: React.ReactElement | ReactTestInstance,\n options?: Options\n) => {\n let testInstance = isReactTestInstance(treeOrTestInstance)\n ? treeOrTestInstance\n : render(treeOrTestInstance).root;\n\n const _rules = options?.rules\n ? (options.rules.map((id: RuleId) =>\n allRules.find((rule) => rule.id === id)\n ) as Rule[])\n : allRules;\n const violations: Violation[] = [];\n\n // For every rule\n for (const rule of _rules) {\n // Traverse the component tree below the root to find the components that should be tested\n const matchedComponents = testInstance.findAll(rule.matcher, {\n deep: true,\n });\n\n // Check if the root of the tree should be tested as well\n if (rule.matcher(testInstance)) {\n matchedComponents.push(testInstance);\n }\n\n // For all the components that were found\n for (const component of matchedComponents) {\n let didPassAssertion = false;\n\n if (isHidden(component)) {\n // Skip checks on hidden components\n didPassAssertion = true;\n } else {\n // Check if the component meets the rule's assertion\n didPassAssertion = rule.assertion(component);\n }\n\n // If not, add component to violation array\n if (!didPassAssertion) {\n violations.push({\n pathToComponent: getPathToComponent(component),\n ...rule.help,\n });\n }\n }\n }\n\n if (options?.customViolationHandler) {\n return options.customViolationHandler(violations);\n }\n\n if (options?.returnViolations) {\n return violations;\n }\n\n if (violations.length) {\n throw new AccessibilityError(generateCheckError(violations));\n }\n\n return [];\n};\n\nexport default engine;\n"],"mappings":"AAEA,SAASA,MAAT,QAAuB,+BAAvB;AAEA,OAAOC,QAAP,MAAqB,UAArB;AAKA,SAASC,QAAT,EAAmBC,mBAAnB,EAAwCC,kBAAxC,QAAkE,YAAlE;AACA,SAASC,kBAAT,QAAmC,UAAnC;AAEA,OAAO,MAAMC,kBAAN,SAAiCC,KAAjC,CAAuC;EAC5CC,WAAW,GAAe;IAAA,IAAdC,OAAc,uEAAJ,EAAI;IACxB,MAAMA,OAAN;IACA,KAAKC,IAAL,GAAY,oBAAZ;EACD;;AAJ2C;;AAgB9C,MAAMC,MAAM,GAAG,CACbC,kBADa,EAEbC,OAFa,KAGV;EACH,IAAIC,YAAY,GAAGX,mBAAmB,CAACS,kBAAD,CAAnB,GACfA,kBADe,GAEfZ,MAAM,CAACY,kBAAD,CAAN,CAA2BG,IAF/B;;EAIA,MAAMC,MAAM,GAAGH,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEI,KAAT,GACVJ,OAAO,CAACI,KAAR,CAAcC,GAAd,CAAmBC,EAAD,IACjBlB,QAAQ,CAACmB,IAAT,CAAeC,IAAD,IAAUA,IAAI,CAACF,EAAL,KAAYA,EAApC,CADD,CADU,GAIXlB,QAJJ;;EAKA,MAAMqB,UAAuB,GAAG,EAAhC,CAVG,CAYH;;EACA,KAAK,MAAMD,IAAX,IAAmBL,MAAnB,EAA2B;IACzB;IACA,MAAMO,iBAAiB,GAAGT,YAAY,CAACU,OAAb,CAAqBH,IAAI,CAACI,OAA1B,EAAmC;MAC3DC,IAAI,EAAE;IADqD,CAAnC,CAA1B,CAFyB,CAMzB;;IACA,IAAIL,IAAI,CAACI,OAAL,CAAaX,YAAb,CAAJ,EAAgC;MAC9BS,iBAAiB,CAACI,IAAlB,CAAuBb,YAAvB;IACD,CATwB,CAWzB;;;IACA,KAAK,MAAMc,SAAX,IAAwBL,iBAAxB,EAA2C;MACzC,IAAIM,gBAAgB,GAAG,KAAvB;;MAEA,IAAI3B,QAAQ,CAAC0B,SAAD,CAAZ,EAAyB;QACvB;QACAC,gBAAgB,GAAG,IAAnB;MACD,CAHD,MAGO;QACL;QACAA,gBAAgB,GAAGR,IAAI,CAACS,SAAL,CAAeF,SAAf,CAAnB;MACD,CATwC,CAWzC;;;MACA,IAAI,CAACC,gBAAL,EAAuB;QACrBP,UAAU,CAACK,IAAX,CAAgB;UACdI,eAAe,EAAE3B,kBAAkB,CAACwB,SAAD,CADrB;UAEd,GAAGP,IAAI,CAACW;QAFM,CAAhB;MAID;IACF;EACF;;EAED,IAAInB,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEoB,sBAAb,EAAqC;IACnC,OAAOpB,OAAO,CAACoB,sBAAR,CAA+BX,UAA/B,CAAP;EACD;;EAED,IAAIT,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEqB,gBAAb,EAA+B;IAC7B,OAAOZ,UAAP;EACD;;EAED,IAAIA,UAAU,CAACa,MAAf,EAAuB;IACrB,MAAM,IAAI7B,kBAAJ,CAAuBD,kBAAkB,CAACiB,UAAD,CAAzC,CAAN;EACD;;EAED,OAAO,EAAP;AACD,CA9DD;;AAgEA,eAAeX,MAAf"} +\ No newline at end of file +diff --git a/lib/module/helpers/isReactTestInstance/isReactTestInstance.js b/lib/module/helpers/isReactTestInstance/isReactTestInstance.js +index 3f97a5dc1829f48131acda140da83a552ed1b2b4..6d82ad4fae039648ae4bb823b37584f12839fa2a 100644 +--- a/lib/module/helpers/isReactTestInstance/isReactTestInstance.js ++++ b/lib/module/helpers/isReactTestInstance/isReactTestInstance.js +@@ -1,6 +1,6 @@ + import React from 'react'; +-import { create } from 'react-test-renderer'; +-const testInstancePrototype = Object.getPrototypeOf(create( /*#__PURE__*/React.createElement('div')).root); ++import { render } from '@testing-library/react-native'; ++const testInstancePrototype = Object.getPrototypeOf(render( /*#__PURE__*/React.createElement('div')).root); + export default function isReactTestInstance(candiate) { + return !!candiate && typeof candiate === 'object' && Object.getPrototypeOf(candiate) === testInstancePrototype; + } +diff --git a/lib/module/helpers/isReactTestInstance/isReactTestInstance.js.map b/lib/module/helpers/isReactTestInstance/isReactTestInstance.js.map +index 6549b32e09b0af010b63a7a84babd0b2cf723ca8..1df37ab70f916496ad54d78dab7ce4e00ceebb8c 100644 +--- a/lib/module/helpers/isReactTestInstance/isReactTestInstance.js.map ++++ b/lib/module/helpers/isReactTestInstance/isReactTestInstance.js.map +@@ -1 +1 @@ +-{"version":3,"names":["React","create","testInstancePrototype","Object","getPrototypeOf","createElement","root","isReactTestInstance","candiate"],"sources":["isReactTestInstance.ts"],"sourcesContent":["import React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { create } from 'react-test-renderer';\n\nconst testInstancePrototype = Object.getPrototypeOf(\n create(React.createElement('div')).root\n);\n\nexport default function isReactTestInstance(\n candiate: unknown\n): candiate is ReactTestInstance {\n return (\n !!candiate &&\n typeof candiate === 'object' &&\n Object.getPrototypeOf(candiate) === testInstancePrototype\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,MAAT,QAAuB,qBAAvB;AAEA,MAAMC,qBAAqB,GAAGC,MAAM,CAACC,cAAP,CAC5BH,MAAM,eAACD,KAAK,CAACK,aAAN,CAAoB,KAApB,CAAD,CAAN,CAAmCC,IADP,CAA9B;AAIA,eAAe,SAASC,mBAAT,CACbC,QADa,EAEkB;EAC/B,OACE,CAAC,CAACA,QAAF,IACA,OAAOA,QAAP,KAAoB,QADpB,IAEAL,MAAM,CAACC,cAAP,CAAsBI,QAAtB,MAAoCN,qBAHtC;AAKD"} +\ No newline at end of file ++{"version":3,"names":["React","render","testInstancePrototype","Object","getPrototypeOf","createElement","root","isReactTestInstance","candiate"],"sources":["isReactTestInstance.ts"],"sourcesContent":["import React from 'react';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { render } from '@testing-library/react-native';\n\nconst testInstancePrototype = Object.getPrototypeOf(\n render(React.createElement('div')).root\n);\n\nexport default function isReactTestInstance(\n candiate: unknown\n): candiate is ReactTestInstance {\n return (\n !!candiate &&\n typeof candiate === 'object' &&\n Object.getPrototypeOf(candiate) === testInstancePrototype\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,MAAT,QAAuB,+BAAvB;AAEA,MAAMC,qBAAqB,GAAGC,MAAM,CAACC,cAAP,CAC5BH,MAAM,eAACD,KAAK,CAACK,aAAN,CAAoB,KAApB,CAAD,CAAN,CAAmCC,IADP,CAA9B;AAIA,eAAe,SAASC,mBAAT,CACbC,QADa,EAEkB;EAC/B,OACE,CAAC,CAACA,QAAF,IACA,OAAOA,QAAP,KAAoB,QADpB,IAEAL,MAAM,CAACC,cAAP,CAAsBI,QAAtB,MAAoCN,qBAHtC;AAKD"} +\ No newline at end of file +diff --git a/lib/typescript/engine/index.d.ts b/lib/typescript/engine/index.d.ts +index 0e81fd12d8c107189716c613d8f23ad57fb3105f..65d73bdddd3ac27b34337f032f8416d2161b6af2 100644 +--- a/lib/typescript/engine/index.d.ts ++++ b/lib/typescript/engine/index.d.ts +@@ -1,5 +1,5 @@ + import type React from 'react'; +-import { ReactTestInstance } from 'react-test-renderer'; ++import type { ReactTestInstance } from 'react-test-renderer'; + import type { Violation } from '../types'; + import type { RuleId } from 'src/types/Rule'; + export declare class AccessibilityError extends Error { +diff --git a/src/engine/index.tsx b/src/engine/index.tsx +index 2cd62c9e7eb7d6f1b95c736c299234509b26d590..8ada651b84a36d6e102c80a20c4c299ac5eef908 100644 +--- a/src/engine/index.tsx ++++ b/src/engine/index.tsx +@@ -1,5 +1,6 @@ + import type React from 'react'; +-import TestRenderer, { ReactTestInstance } from 'react-test-renderer'; ++import type { ReactTestInstance } from 'react-test-renderer'; ++import { render } from '@testing-library/react-native'; + + import allRules from '../rules'; + import type { Violation } from '../types'; +@@ -31,7 +32,7 @@ const engine = ( + ) => { + let testInstance = isReactTestInstance(treeOrTestInstance) + ? treeOrTestInstance +- : TestRenderer.create(treeOrTestInstance).root; ++ : render(treeOrTestInstance).root; + + const _rules = options?.rules + ? (options.rules.map((id: RuleId) => +diff --git a/src/helpers/isReactTestInstance/isReactTestInstance.ts b/src/helpers/isReactTestInstance/isReactTestInstance.ts +index c95e8c52c9f448f4bffe44a0046d8951d872b336..158f9e7da1712e8582624724ff809e2482d6bc9a 100644 +--- a/src/helpers/isReactTestInstance/isReactTestInstance.ts ++++ b/src/helpers/isReactTestInstance/isReactTestInstance.ts +@@ -1,9 +1,9 @@ + import React from 'react'; + import type { ReactTestInstance } from 'react-test-renderer'; +-import { create } from 'react-test-renderer'; ++import { render } from '@testing-library/react-native'; + + const testInstancePrototype = Object.getPrototypeOf( +- create(React.createElement('div')).root ++ render(React.createElement('div')).root + ); + + export default function isReactTestInstance( diff --git a/.yarnrc.yml b/.yarnrc.yml index 80c55963..78e561bb 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -2,10 +2,6 @@ compressionLevel: mixed enableGlobalCache: false -nodeLinker: pnp - -pnpFallbackMode: dependencies-only - -pnpMode: loose +nodeLinker: node-modules yarnPath: .yarn/releases/yarn-4.5.0.cjs diff --git a/apps/benchmarking/.expo-shared/assets.json b/apps/benchmarking/.expo-shared/assets.json new file mode 100644 index 00000000..1e6decfb --- /dev/null +++ b/apps/benchmarking/.expo-shared/assets.json @@ -0,0 +1,4 @@ +{ + "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, + "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true +} diff --git a/apps/benchmarking/.gitignore b/apps/benchmarking/.gitignore new file mode 100644 index 00000000..454c38f7 --- /dev/null +++ b/apps/benchmarking/.gitignore @@ -0,0 +1,13 @@ +node_modules/ +.expo/ +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# macOS +.DS_Store diff --git a/apps/benchmarking/App.js b/apps/benchmarking/App.js new file mode 100644 index 00000000..47321ee7 --- /dev/null +++ b/apps/benchmarking/App.js @@ -0,0 +1,32 @@ +import React from 'react'; +import { SafeAreaView } from 'react-native-safe-area-context'; +import { useKeepAwake } from 'expo-keep-awake'; +import html from './source'; +import { + TRenderEngineProvider, + RenderHTMLConfigProvider +} from 'react-native-render-html'; + +import Benchmark from './Benchmark'; + +const config = { + samples: 50, + ignoredTags: ['svg', 'button', 'input', 'form', 'img', 'ol', 'table'] +}; + +const props = { + renderers: {} +}; + +export default function App() { + useKeepAwake(); + return ( + + + + + + + + ); +} diff --git a/apps/benchmarking/Benchmark.js b/apps/benchmarking/Benchmark.js new file mode 100644 index 00000000..398b0518 --- /dev/null +++ b/apps/benchmarking/Benchmark.js @@ -0,0 +1,63 @@ +/* eslint-disable no-undef */ +import * as React from 'react'; +import { ScrollView, StyleSheet, View, Text, Button } from 'react-native'; +import { mean } from 'ramda'; +import { match } from 'react-states'; +import useBenchmark from './useBenchmark'; + +function Benchmarks({ benchmarks }) { + return ( + + + Average Time to Render:{'\n'} + {benchmarks.map((e) => `${e.name}: ${mean(e.values).toFixed(2)}ms\n`)} + + + ); +} + +export default function Benchmark({ samples, html, ignoredTags }) { + const { onLayout, launch, ...state } = useBenchmark({ + runs: samples + }); + const renderHtml = React.useCallback( + ({ runId, profile }) => ( + + + + ), + [html, ignoredTags, onLayout] + ); + return ( + + React Native
Version: Next

Image

A React component for displaying different types of images, including network images, static resources, temporary local images, and images from local disk, such as the camera roll.

This example shows fetching and displaying an image from local storage as well as one from network and even from data provided in the 'data:' uri scheme.

Note that for network and data images, you will need to manually specify the dimensions of your image!

Examples#

You can also add style to an image:

GIF and WebP support on Android#

When building your own native code, GIF and WebP are not supported by default on Android.

You will need to add some optional modules in android/app/build.gradle, depending on the needs of your app.

dependencies {
// If your app supports Android versions before Ice Cream Sandwich (API level 14)
implementation 'com.facebook.fresco:animated-base-support:1.3.0'
+
// For animated GIF support
implementation 'com.facebook.fresco:animated-gif:2.0.0'
+
// For WebP support, including animated WebP
implementation 'com.facebook.fresco:animated-webp:2.1.0'
implementation 'com.facebook.fresco:webpsupport:2.0.0'
+
// For WebP support, without animations
implementation 'com.facebook.fresco:webpsupport:2.0.0'
}

Reference#

Props#

View Props#

Inherits View Props.


accessible#

When true, indicates the image is an accessibility element.

TypeDefault
boolfalse

accessibilityLabel#

The text that's read by the screen reader when the user interacts with the image.

Type
string

blurRadius#

blurRadius: the blur radius of the blur filter added to the image.

Type
number

Tip : IOS you will need to increase blurRadius more than 5


capInsets
iOS
#

When the image is resized, the corners of the size specified by capInsets will stay a fixed size, but the center content and borders of the image will be stretched. This is useful for creating resizable rounded buttons, shadows, and other resizable assets. More info in the official Apple documentation.

Type
Rect

defaultSource#

A static image to display while loading the image source.

Type
ImageSource

Note: On Android, the default source prop is ignored on debug builds.


fadeDuration
Android
#

Fade animation duration in miliseconds.

TypeDefault
number300

loadingIndicatorSource#

Similarly to source, this property represents the resource used to render the loading indicator for the image, displayed until image is ready to be displayed, typically after when it got downloaded from network.

Type
ImageSource (uri only), number

onError#

Invoked on load error.

Type
function({ nativeEvent: { error } }) => void

onLayout#

Invoked on mount and on layout changes.

Type
function(LayoutEvent) => void

onLoad#

Invoked when load completes successfully.

Type
function(ImageLoadEvent) => void

onLoadEnd#

Invoked when load either succeeds or fails.

Type
function() => void

onLoadStart#

Invoked on load start.

Example: onLoadStart={() => this.setState({loading: true})}

Type
function() => void

onPartialLoad
iOS
#

Invoked when a partial load of the image is complete. The definition of what constitutes a "partial load" is loader specific though this is meant for progressive JPEG loads.

Type
function() => void

onProgress#

Invoked on download progress.

Type
function({ nativeEvent: { loaded, total } }) => void

progressiveRenderingEnabled
Android
#

When true, enables progressive jpeg streaming - https://frescolib.org/docs/progressive-jpegs.

TypeDefault
boolfalse

resizeMethod
Android
#

The mechanism that should be used to resize the image when the image's dimensions differ from the image view's dimensions. Defaults to auto.

  • auto: Use heuristics to pick between resize and scale.

  • resize: A software operation which changes the encoded image in memory before it gets decoded. This should be used instead of scale when the image is much larger than the view.

  • scale: The image gets drawn downscaled or upscaled. Compared to resize, scale is faster (usually hardware accelerated) and produces higher quality images. This should be used if the image is smaller than the view. It should also be used if the image is slightly bigger than the view.

More details about resize and scale can be found at http://frescolib.org/docs/resizing.

TypeDefault
enum('auto', 'resize', 'scale')'auto'

resizeMode#

Determines how to resize the image when the frame doesn't match the raw image dimensions. Defaults to cover.

  • cover: Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or larger than the corresponding dimension of the view (minus padding).

  • contain: Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or less than the corresponding dimension of the view (minus padding).

  • stretch: Scale width and height independently, This may change the aspect ratio of the src.

  • repeat: Repeat the image to cover the frame of the view. The image will keep its size and aspect ratio, unless it is larger than the view, in which case it will be scaled down uniformly so that it is contained in the view.

  • center: Center the image in the view along both dimensions. If the image is larger than the view, scale it down uniformly so that it is contained in the view.

TypeDefault
enum('cover', 'contain', 'stretch', 'repeat', 'center')'cover'

source#

The image source (either a remote URL or a local file resource).

This prop can also contain several remote URLs, specified together with their width and height and potentially with scale/other URI arguments. The native side will then choose the best uri to display based on the measured size of the image container. A cache property can be added to control how networked request interacts with the local cache. (For more information see Cache Control for Images).

The currently supported formats are png, jpg, jpeg, bmp, gif, webp, psd (iOS only). In addition, iOS supports several RAW image formats. Refer to Apple's documentation for the current list of supported camera models (for iOS 12, see https://support.apple.com/en-ca/HT208967).

Type
ImageSource

style#

Type
Image Style Props, Layout Props, Shadow Props, Transforms

testID#

A unique identifier for this element to be used in UI Automation testing scripts.

Type
string

Methods#

abortPrefetch()
Android
#

Image.abortPrefetch(requestId);

Abort prefetch request.

Parameters:

NameTypeDescription
requestId
Required
numberRequest id as returned by prefetch().

getSize()#

Image.getSize(uri, success, [failure]);

Retrieve the width and height (in pixels) of an image prior to displaying it. This method can fail if the image cannot be found, or fails to download.

In order to retrieve the image dimensions, the image may first need to be loaded or downloaded, after which it will be cached. This means that in principle you could use this method to preload images, however it is not optimized for that purpose, and may in future be implemented in a way that does not fully load/download the image data. A proper, supported way to preload images will be provided as a separate API.

Parameters:

Name
TypeDescription
uri
Required
stringThe location of the image.
success
Required
functionThe function that will be called if the image was successfully found and width and height retrieved.
failurefunctionThe function that will be called if there was an error, such as failing to retrieve the image.

getSizeWithHeaders()#

Image.getSizeWithHeaders(uri, headers, success, [failure]);

Retrieve the width and height (in pixels) of an image prior to displaying it with the ability to provide the headers for the request. This method can fail if the image cannot be found, or fails to download. It also does not work for static image resources.

In order to retrieve the image dimensions, the image may first need to be loaded or downloaded, after which it will be cached. This means that in principle you could use this method to preload images, however it is not optimized for that purpose, and may in future be implemented in a way that does not fully load/download the image data. A proper, supported way to preload images will be provided as a separate API.

Parameters:

Name
TypeDescription
uri
Required
stringThe location of the image.
headers
Required
objectThe headers for the request.
success
Required
functionThe function that will be called if the image was successfully found and width and height retrieved.
failurefunctionThe function that will be called if there was an error, such as failing to retrieve the image.

prefetch()#

await Image.prefetch(url);

Prefetches a remote image for later use by downloading it to the disk cache. Returns a promise which resolves to a boolean.

Parameters:

NameTypeDescription
url
Required
stringThe remote location of the image.
callbackfunction
Android
The function that will be called with the requestId.

queryCache()#

await Image.queryCache(urls);

Perform cache interrogation. Returns a promise which resolves to a mapping from URL to cache status, such as "disk", "memory" or "disk/memory". If a requested URL is not in the mapping, it means it's not in the cache.

Parameters:

NameTypeDescription
urls
Required
arrayList of image URLs to check the cache for.

resolveAssetSource()#

Image.resolveAssetSource(source);

Resolves an asset reference into an object which has the properties uri, width, and height.

Parameters:

Name
TypeDescription
source
Required
ImageSource, numberA number (opaque type returned by require('./foo.png')) or an ImageSource.

Type Definitions#

ImageCacheEnum
iOS
#

Enum which can be used to set the cache handling or stategy for the potentially cached responses.

TypeDefault
enum('default', 'reload', 'force-cache', 'only-if-cached')'default'
  • default: Use the native platforms default strategy.
  • reload: The data for the URL will be loaded from the originating source. No existing cache data should be used to satisfy a URL load request.
  • force-cache: The existing cached data will be used to satisfy the request, regardless of its age or expiration date. If there is no existing data in the cache corresponding the request, the data is loaded from the originating source.
  • only-if-cached: The existing cache data will be used to satisfy a request, regardless of its age or expiration date. If there is no existing data in the cache corresponding to a URL load request, no attempt is made to load the data from the originating source, and the load is considered to have failed.

ImageLoadEvent#

Object returned in the onLoad callback.

Type
object

Properties:

NameTypeDescription
widthnumberThe width of loaded image.
heightnumberThe height of loaded image.
uristringA string representing the resource identifier for the image.

ImageSource#

Type
object, array of objects, number

Properties (if passing as object or array of objects):

Name
TypeDescription
uristringA string representing the resource identifier for the image, which could be an http address, a local file path, or the name of a static image resource.
widthnumberCan be specified if known at build time, in which case the value will be used to set the default <Image/> component dimension.
heightnumberCan be specified if known at build time, in which case the value will be used to set the default <Image/> component dimension.
scalenumberUsed to indicate the scale factor of the image. Defaults to 1.0 if unspecified, meaning that one image pixel equates to one display point / DIP.
bundle
iOS
stringThe iOS asset bundle which the image is included in. This will default to [NSBundle mainBundle] if not set.
methodstringThe HTTP Method to use. Defaults to 'GET' if not specified.
headersobjectAn object representing the HTTP headers to send along with the request for a remote image.
bodystringThe HTTP body to send with the request. This must be a valid UTF-8 string, and will be sent exactly as specified, with no additional encoding (e.g. URL-escaping or base64) applied.
cache
iOS
ImageCacheEnumDetermines how the requests handles potentially cached responses.

If passing a number:

  • number - opaque type returned by something like require('./image.jpg').
+ + + + +`; \ No newline at end of file diff --git a/apps/benchmarking/useBenchmark.js b/apps/benchmarking/useBenchmark.js new file mode 100644 index 00000000..fc4ae11a --- /dev/null +++ b/apps/benchmarking/useBenchmark.js @@ -0,0 +1,83 @@ +import { transitions, exec } from 'react-states'; +import { useEffect, useReducer, useCallback } from 'react'; +import profiles from './profiles'; + +function now() { + // eslint-disable-next-line no-undef + return performance.now(); +} + +const reducer = transitions({ + WAIT_BENCH: { + LAUNCH_BENCH: ({ runs, numOfProfiles }) => ({ + state: 'RUNNING', + runId: 0, + profileId: 0, + runs, + numOfProfiles, + last: now(), + benchmarks: profiles.map((n) => ({ name: n.name, values: [] })) + }) + }, + WAIT_RUN: { + NEXT_RUN: (action, context) => { + const { runs, numOfProfiles } = context; + const shared = { + last: now(), + state: 'RUNNING' + }; + if (context.runId < runs - 1) { + return { ...context, runId: context.runId + 1, ...shared }; + } + if (context.profileId < numOfProfiles - 1) { + return { + ...context, + runId: 0, + profileId: context.profileId + 1, + ...shared + }; + } + return { state: 'WAIT_BENCH', benchmarks: context.benchmarks }; + } + }, + RUNNING: { + REGISTER_RUN: (action, context) => { + console.info( + `Running sample ${context.runId} for profile #${context.profileId}` + ); + context.benchmarks[context.profileId].values.push(now() - context.last); + return { ...context, state: 'WAIT_RUN' }; + } + } +}); + +const numOfProfiles = profiles.length; + +export default function useBenchmark({ runs = 10 }) { + const [state, dispatch] = useReducer(reducer, { + state: 'WAIT_BENCH', + benchmarks: null + }); + const onLayout = useCallback(() => { + requestAnimationFrame(() => dispatch({ type: 'REGISTER_RUN' })); + }, []); + const launch = useCallback(() => { + dispatch({ type: 'LAUNCH_BENCH', runs, numOfProfiles }); + }, [runs]); + useEffect( + () => + exec(state, { + WAIT_RUN: () => { + requestAnimationFrame(() => dispatch({ type: 'NEXT_RUN' })); + } + }), + [state, runs] + ); + return { + ...state, + launch, + onLayout, + profile: + typeof state.profileId === 'number' ? profiles[state.profileId] : null + }; +} diff --git a/apps/discovery/.eslintrc.js b/apps/discovery/.eslintrc.js new file mode 100644 index 00000000..76aa00c3 --- /dev/null +++ b/apps/discovery/.eslintrc.js @@ -0,0 +1,10 @@ +const defaultConf = require('../../.eslintrc.js'); +module.exports = { + ...defaultConf, + rules: { + ...defaultConf.rules, + '@typescript-eslint/no-shadow': 'off', + 'react-native/no-inline-styles': 'off', + 'react/no-unstable-nested-components': 'off', + } +}; diff --git a/apps/discovery/.expo-shared/assets.json b/apps/discovery/.expo-shared/assets.json new file mode 100644 index 00000000..a9e88346 --- /dev/null +++ b/apps/discovery/.expo-shared/assets.json @@ -0,0 +1,6 @@ +{ + "e997a5256149a4b76e6bfd6cbf519c5e5a0f1d278a3d8fa1253022b03c90473b": true, + "af683c96e0ffd2cf81287651c9433fa44debc1220ca7cb431fe482747f34a505": true, + "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, + "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true +} diff --git a/apps/discovery/.gitignore b/apps/discovery/.gitignore new file mode 100644 index 00000000..3c36c355 --- /dev/null +++ b/apps/discovery/.gitignore @@ -0,0 +1,13 @@ +node_modules/**/* +.expo +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# macOS +.DS_Store diff --git a/apps/discovery/App.tsx b/apps/discovery/App.tsx new file mode 100644 index 00000000..e7a327fe --- /dev/null +++ b/apps/discovery/App.tsx @@ -0,0 +1,43 @@ +import { StacksProvider } from '@mobily/stacks'; +import { StatusBar } from 'expo-status-bar'; +import React from 'react'; +import { useColorScheme, useWindowDimensions } from 'react-native'; +import { SafeAreaProvider } from 'react-native-safe-area-context'; +import { enableScreens } from 'react-native-screens'; +import useCachedResources from './src/hooks/useCachedResources'; +import Navigation from './src/navigation'; +import ThemeProvider from './src/theme/ThemeProvider'; +import ColorSchemeProvider from './src/state/ColorSchemeProvider'; +import UILinkPressDisplayMolecule from './src/components/UILinkPressDisplayMolecule'; +import contentWidthContextNucleon from './src/components/nucleons/contentWidthContextNucleon'; +import PageToolkitProvider from './src/providers/PageToolkitProvider'; + +enableScreens(); + +export default function App() { + const isLoadingComplete = useCachedResources(); + const initialColorScheme = useColorScheme(); + const contentWidth = useWindowDimensions().width; + + if (!isLoadingComplete) return; + + return ( + + + + + + + + + + + + + + + + + ); +} diff --git a/apps/discovery/app.config.js b/apps/discovery/app.config.js new file mode 100644 index 00000000..7a90c75e --- /dev/null +++ b/apps/discovery/app.config.js @@ -0,0 +1,33 @@ +module.exports = { + expo: { + name: 'RNRH Discovery', + slug: 'react-native-render-html-discovery', + description: + 'An App to discover React Native Render HTML features and API!', + version: require('./version').demo, + primaryColor: '#6767e2', + orientation: 'default', + icon: './assets/images/icon.png', + scheme: 'myapp', + userInterfaceStyle: 'automatic', + splash: { + backgroundColor: '#6767e2' + }, + updates: { + fallbackToCacheTimeout: 0 + }, + assetBundlePatterns: ['**/*'], + ios: { + supportsTablet: false, + bundleIdentifier: 'org.nativehtml.discovery', + buildNumber: '1.0.0' + }, + android: { + package: 'org.nativehtml.discovery', + versionCode: 1 + }, + web: { + favicon: './assets/images/favicon.png' + } + } +}; diff --git a/apps/discovery/assets/fonts/SpaceMono-Regular.ttf b/apps/discovery/assets/fonts/SpaceMono-Regular.ttf new file mode 100755 index 00000000..28d7ff71 Binary files /dev/null and b/apps/discovery/assets/fonts/SpaceMono-Regular.ttf differ diff --git a/apps/discovery/assets/images/anders-jilden-architecture.jpg b/apps/discovery/assets/images/anders-jilden-architecture.jpg new file mode 100644 index 00000000..cf7826f7 Binary files /dev/null and b/apps/discovery/assets/images/anders-jilden-architecture.jpg differ diff --git a/apps/discovery/assets/images/bank-phrom-rendering.jpg b/apps/discovery/assets/images/bank-phrom-rendering.jpg new file mode 100644 index 00000000..13a21b37 Binary files /dev/null and b/apps/discovery/assets/images/bank-phrom-rendering.jpg differ diff --git a/apps/discovery/assets/images/diana-polekhina-tampering.jpg b/apps/discovery/assets/images/diana-polekhina-tampering.jpg new file mode 100644 index 00000000..e4798f6a Binary files /dev/null and b/apps/discovery/assets/images/diana-polekhina-tampering.jpg differ diff --git a/apps/discovery/assets/images/fallback.png b/apps/discovery/assets/images/fallback.png new file mode 100644 index 00000000..3276cc30 Binary files /dev/null and b/apps/discovery/assets/images/fallback.png differ diff --git a/apps/discovery/assets/images/favicon.png b/apps/discovery/assets/images/favicon.png new file mode 100644 index 00000000..e75f697b Binary files /dev/null and b/apps/discovery/assets/images/favicon.png differ diff --git a/apps/discovery/assets/images/icon.png b/apps/discovery/assets/images/icon.png new file mode 100644 index 00000000..ea75875a Binary files /dev/null and b/apps/discovery/assets/images/icon.png differ diff --git a/apps/discovery/assets/images/james-barnett-script.jpg b/apps/discovery/assets/images/james-barnett-script.jpg new file mode 100644 index 00000000..c93bd21c Binary files /dev/null and b/apps/discovery/assets/images/james-barnett-script.jpg differ diff --git a/apps/discovery/assets/images/jj-ying-anchors.jpg b/apps/discovery/assets/images/jj-ying-anchors.jpg new file mode 100644 index 00000000..b45fc8c4 Binary files /dev/null and b/apps/discovery/assets/images/jj-ying-anchors.jpg differ diff --git a/apps/discovery/assets/images/jon-cartagena-wheel.jpg b/apps/discovery/assets/images/jon-cartagena-wheel.jpg new file mode 100644 index 00000000..e931032f Binary files /dev/null and b/apps/discovery/assets/images/jon-cartagena-wheel.jpg differ diff --git a/apps/discovery/assets/images/maik-jonietz-css.jpg b/apps/discovery/assets/images/maik-jonietz-css.jpg new file mode 100644 index 00000000..0caa1d87 Binary files /dev/null and b/apps/discovery/assets/images/maik-jonietz-css.jpg differ diff --git a/apps/discovery/assets/images/malcolm-lightbody-custom-rendering.jpg b/apps/discovery/assets/images/malcolm-lightbody-custom-rendering.jpg new file mode 100644 index 00000000..b508c3a4 Binary files /dev/null and b/apps/discovery/assets/images/malcolm-lightbody-custom-rendering.jpg differ diff --git a/apps/discovery/assets/images/markus-winkler-lists.jpg b/apps/discovery/assets/images/markus-winkler-lists.jpg new file mode 100644 index 00000000..5b436e24 Binary files /dev/null and b/apps/discovery/assets/images/markus-winkler-lists.jpg differ diff --git a/apps/discovery/assets/images/pankaj-patel-html.jpg b/apps/discovery/assets/images/pankaj-patel-html.jpg new file mode 100644 index 00000000..3ef77126 Binary files /dev/null and b/apps/discovery/assets/images/pankaj-patel-html.jpg differ diff --git a/apps/discovery/assets/images/russn-fckr-painting.jpg b/apps/discovery/assets/images/russn-fckr-painting.jpg new file mode 100644 index 00000000..e70b6e5c Binary files /dev/null and b/apps/discovery/assets/images/russn-fckr-painting.jpg differ diff --git a/apps/discovery/assets/images/ryan-baker-tre.jpg b/apps/discovery/assets/images/ryan-baker-tre.jpg new file mode 100644 index 00000000..bcf616ad Binary files /dev/null and b/apps/discovery/assets/images/ryan-baker-tre.jpg differ diff --git a/apps/discovery/assets/images/simone-secci-question.jpg b/apps/discovery/assets/images/simone-secci-question.jpg new file mode 100644 index 00000000..7c75384b Binary files /dev/null and b/apps/discovery/assets/images/simone-secci-question.jpg differ diff --git a/apps/discovery/assets/images/soragrit-wongsa-pictures.jpg b/apps/discovery/assets/images/soragrit-wongsa-pictures.jpg new file mode 100644 index 00000000..4cbc3e78 Binary files /dev/null and b/apps/discovery/assets/images/soragrit-wongsa-pictures.jpg differ diff --git a/apps/discovery/assets/svg/.gitignore b/apps/discovery/assets/svg/.gitignore new file mode 100644 index 00000000..de4fcf9b --- /dev/null +++ b/apps/discovery/assets/svg/.gitignore @@ -0,0 +1,2 @@ +*.svg +!logo.svg \ No newline at end of file diff --git a/apps/discovery/assets/svg/logo.svg b/apps/discovery/assets/svg/logo.svg new file mode 100644 index 00000000..0cab506e --- /dev/null +++ b/apps/discovery/assets/svg/logo.svg @@ -0,0 +1,140 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/discovery/babel.config.js b/apps/discovery/babel.config.js new file mode 100644 index 00000000..33acf985 --- /dev/null +++ b/apps/discovery/babel.config.js @@ -0,0 +1,6 @@ +module.exports = function (api) { + api.cache(true); + return { + presets: ['babel-preset-expo'] + }; +}; diff --git a/apps/discovery/eas.json b/apps/discovery/eas.json new file mode 100644 index 00000000..fb8da3e2 --- /dev/null +++ b/apps/discovery/eas.json @@ -0,0 +1,22 @@ +{ + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "android": { + "buildType": "apk" + }, + "distribution": "internal" + }, + "production": { + "env": { + "YARN_ENABLE_IMMUTABLE_INSTALLS": "false" + } + } + }, + "submit": { + "production": {} + } +} diff --git a/apps/discovery/index.js b/apps/discovery/index.js new file mode 100644 index 00000000..5fd059fd --- /dev/null +++ b/apps/discovery/index.js @@ -0,0 +1,4 @@ +import { registerRootComponent } from 'expo'; +import App from './App'; + +registerRootComponent(App); diff --git a/apps/discovery/metro.config.js b/apps/discovery/metro.config.js new file mode 100644 index 00000000..e3eea33b --- /dev/null +++ b/apps/discovery/metro.config.js @@ -0,0 +1,57 @@ +const { getDefaultConfig } = require('expo/metro-config'); + +const path = require('path'); +const fs = require('fs'); + +const projectRoot = __dirname; +const packagesRoot = path.resolve(projectRoot, '../../packages'); +const docToolsRoot = path.resolve(projectRoot, '../../doc-tools'); + +const packagesDirs = fs.readdirSync(packagesRoot); +const docToolsDirs = fs.readdirSync(docToolsRoot); + +const config = getDefaultConfig(projectRoot); + +config.transformer = { + ...config.transformer, + minifierConfig: { + keep_classnames: true, + // Need this for source mapping in @doc/pages to work. + keep_fnames: true, + mangle: { + keep_classnames: true, + // Need this for source mapping in @doc/pages to work. + keep_fnames: true + }, + output: { + ascii_only: true, + quote_style: 3, + wrap_iife: true + }, + sourceMap: { + includeSources: false + }, + toplevel: false, + compress: { + // reduce_funcs inlines single-use functions, which cause perf regressions. + reduce_funcs: false + } + }, + babelTransformerPath: require.resolve('react-native-svg-transformer') +}; +config.resolver = { + ...config.resolver, + assetExts: config.resolver.assetExts.filter((ext) => ext !== 'svg'), + sourceExts: [...config.resolver.sourceExts, 'svg'], + nodeModulesPaths: [ + ...config.resolver.nodeModulesPaths, + ...packagesDirs.map((d) => + path.resolve(packagesRoot, d, 'node_modules') + ), + ...docToolsDirs.map((d) => + path.resolve(docToolsRoot, d, 'node_modules') + ) + ] +}; + +module.exports = config; diff --git a/apps/discovery/package.json b/apps/discovery/package.json new file mode 100644 index 00000000..aec5cc60 --- /dev/null +++ b/apps/discovery/package.json @@ -0,0 +1,87 @@ +{ + "name": "discovery", + "main": "index.js", + "scripts": { + "start": "expo start --clear", + "android": "expo start --android", + "ios": "expo start --ios --reset-cache", + "eject": "expo eject", + "publish": "expo publish", + "test": "jest --watchAll", + "test:ts": "tsc --noEmit", + "test:lint": "eslint --ext ts,tsx src/" + }, + "jest": { + "preset": "jest-expo" + }, + "dependencies": { + "@doc/constants": "workspace:*", + "@doc/pages": "workspace:*", + "@doc/svg-component": "workspace:*", + "@expo-google-fonts/raleway": "^0.4.2", + "@expo-google-fonts/source-code-pro": "^0.4.1", + "@expo-google-fonts/space-mono": "^0.4.2", + "@expo/vector-icons": "^15.0.3", + "@gorhom/bottom-sheet": "^5.2.6", + "@jsamr/react-native-li": "^2.3.1", + "@mobily/stacks": "^2.2.2", + "@react-native-community/masked-view": "0.1.11", + "@react-native-community/slider": "5.0.1", + "@react-native-picker/picker": "2.11.1", + "@react-navigation/bottom-tabs": "^7.4.9", + "@react-navigation/drawer": "^7.5.10", + "@react-navigation/native": "^7.1.18", + "@react-navigation/stack": "^7.4.10", + "change-case": "^5.4.4", + "color": "^5.0.2", + "deepmerge": "^4.3.1", + "expo": "^54.0.15", + "expo-asset": "~12.0.9", + "expo-constants": "~18.0.9", + "expo-font": "~14.0.9", + "expo-linear-gradient": "~15.0.7", + "expo-linking": "~8.0.8", + "expo-splash-screen": "~31.0.10", + "expo-status-bar": "~3.0.8", + "expo-web-browser": "~15.0.8", + "highlight.js": "^11.11.1", + "lowlight": "^3.3.0", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-native": "0.81.5", + "react-native-gesture-handler": "~2.28.0", + "react-native-pager-view": "^6.9.1", + "react-native-paper": "^5.14.5", + "react-native-reanimated": "~4.1.1", + "react-native-render-html": "workspace:*", + "react-native-safe-area-context": "^5.6.1", + "react-native-screens": "~4.16.0", + "react-native-svg": "~15.12.0", + "react-native-svg-transformer": "^1.5.1", + "react-native-tab-view": "^4.1.3", + "react-native-web": "^0.21.2", + "react-native-webview": "~13.15.0", + "react-native-worklets": "^0.5.1", + "react-syntax-highlighter": "^15.6.6", + "reanimated-color-picker": "^4.1.1", + "scheduler": "^0.27.0", + "urijs": "^1.19.11", + "use-context-selector": "^2.0.0", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@babel/core": "^7.28.4", + "@doc/svgr-conf": "workspace:*", + "@react-native/babel-preset": "0.81.5", + "@types/color": "^4.2.0", + "@types/lowlight": "^2.0.1", + "@types/react": "~19.1.0", + "@types/react-syntax-highlighter": "^15.5.13", + "babel-preset-expo": "^54.0.5", + "ignore-loader": "^0.1.2", + "jest-expo": "^54.0.12", + "typescript": "^5.4.5" + }, + "private": true, + "version": "1.0.0" +} diff --git a/apps/discovery/src/components/ArticleContainerAtom.tsx b/apps/discovery/src/components/ArticleContainerAtom.tsx new file mode 100644 index 00000000..d9ae93bf --- /dev/null +++ b/apps/discovery/src/components/ArticleContainerAtom.tsx @@ -0,0 +1,67 @@ +import React, { + Children, + FunctionComponentElement, + PropsWithChildren +} from 'react'; +import { useSpacing } from '@mobily/stacks'; +import BodyChapterMolecule, { + BodyChapterMoleculeProps +} from './BodyChapterMolecule'; +import upperRoman from '@jsamr/counter-style/presets/upperRoman'; +import { BODY_CHAPTER_SPACING, BODY_VERTICAL_SPACING } from '../constants'; +import { useScroller } from './templates/ArticleTemplate/ScrollerProvider'; +import { View } from 'react-native'; + +function isBodyChapterElement( + candidate: unknown +): candidate is FunctionComponentElement { + return ( + typeof candidate === 'object' && + candidate != null && + (candidate as any).type === BodyChapterMolecule + ); +} + +export default function ArticleContainerAtom({ + children +}: PropsWithChildren<{}>) { + const counter = upperRoman; + let index = 1; + const scrollIndex = useScroller(); + const chapterMarginBottom = useSpacing(BODY_CHAPTER_SPACING); + const flatChildren = Children.toArray(children); + return ( + + {flatChildren.map((c, i) => { + const styles = + i < flatChildren.length - 1 + ? { marginBottom: chapterMarginBottom } + : undefined; + if (isBodyChapterElement(c)) { + const chapterEl = React.cloneElement(c, { + ...c.props, + prefix: counter.renderMarker(index++) + }); + return ( + { + scrollIndex.registerLayout(e, c.props.title!); + }}> + {chapterEl} + + ); + } + return ( + + {c} + + ); + })} + + ); +} diff --git a/apps/discovery/src/components/BodyAdmonitionAtom.tsx b/apps/discovery/src/components/BodyAdmonitionAtom.tsx new file mode 100644 index 00000000..4b099e30 --- /dev/null +++ b/apps/discovery/src/components/BodyAdmonitionAtom.tsx @@ -0,0 +1,84 @@ +import { Stack, useSpacing } from '@mobily/stacks'; +import React, { PropsWithChildren } from 'react'; +import { View } from 'react-native'; +import { useColorRoles } from '../theme/colorSystem'; +import BodyParagraphAtom from './BodyParagraphAtom'; +import IconNucleon, { IconNucleonProps } from './nucleons/IconNucleon'; +import type { AdmonitionType } from '@doc/pages'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { BODY_HZ_SPACING } from '../constants'; + +const admonitionDefaultTitles: Record = { + important: 'Important', + note: 'Note', + tip: 'Tip', + caution: 'Caution', + warning: 'Warning' +}; + +const admonitionIconMap: Record = { + important: 'information', + note: 'information', + tip: 'lightbulb-on-outline', + caution: 'alert', + warning: 'alert' +}; + +export default function BodyAdmonitionAtom({ + children, + type, + title = admonitionDefaultTitles[type], + ...props +}: PropsWithChildren<{ + type: AdmonitionType; + title?: string; +}>) { + const { admonition } = useColorRoles(); + const semanticColor = admonition[type]; + const dividerWidth = 6; + const contentColor = useColorRoles().surface.secondaryContent; + const iconSize = 22; + const space2 = useSpacing(2); + return ( + + + + + + {title} + + + + {children} + + + + ); +} diff --git a/apps/discovery/src/components/BodyChapterMolecule.tsx b/apps/discovery/src/components/BodyChapterMolecule.tsx new file mode 100644 index 00000000..97213e09 --- /dev/null +++ b/apps/discovery/src/components/BodyChapterMolecule.tsx @@ -0,0 +1,87 @@ +import { Stack } from '@mobily/stacks'; +import React, { + Children, + FunctionComponentElement, + PropsWithChildren +} from 'react'; +import { BODY_HZ_SPACING, BODY_PARAGRAPH_SPACING } from '../constants'; +import { useColorRoles } from '../theme/colorSystem'; +import BodyDividerAtom from './BodyDividerAtom'; +import BodySectionMolecule, { + BodySectionMoleculeProps +} from './BodySectionMolecule'; +import MaxWidthContainerAtom from './MaxWidthContainerAtom'; +import BoxNucleon from './nucleons/BoxNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { PropsWithStyle } from './nucleons/types'; +import { useScroller } from './templates/ArticleTemplate/ScrollerProvider'; +import { View } from 'react-native'; + +function isBodySectionElement( + candidate: unknown +): candidate is FunctionComponentElement { + return ( + typeof candidate === 'object' && + candidate != null && + (candidate as any).type === BodySectionMolecule + ); +} + +function BodyHeader({ + children, + style, + prefix +}: PropsWithStyle>) { + const { surface } = useColorRoles(); + const color = surface.content; + return ( + + + + + Chapter {prefix} + + + + + + + {children} + + + + ); +} + +export type BodyChapterMoleculeProps = PropsWithChildren< + PropsWithStyle<{ title: string; prefix?: string }> +>; + +export default function BodyChapterMolecule({ + title, + style, + prefix, + children +}: BodyChapterMoleculeProps) { + const scrollIndex = useScroller(); + return ( + + + {title} + {Children.map(children, (c) => { + if (isBodySectionElement(c)) { + return ( + { + scrollIndex.registerLayout(e, c.props.title!); + }}> + {c} + + ); + } + return c; + })} + + + ); +} diff --git a/apps/discovery/src/components/BodyDividerAtom.tsx b/apps/discovery/src/components/BodyDividerAtom.tsx new file mode 100644 index 00000000..6d786bbd --- /dev/null +++ b/apps/discovery/src/components/BodyDividerAtom.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { DimensionValue, View } from 'react-native'; +import { useColorRoles } from '../theme/colorSystem'; +import { PropsWithStyle } from './nucleons/types'; + +export default function BodyDividerAtom({ + color, + height = 1, + width = '100%' +}: PropsWithStyle<{ + color?: string; + height?: number; + width?: DimensionValue; +}>) { + const { softDivider } = useColorRoles(); + return ( + + ); +} diff --git a/apps/discovery/src/components/BodyListAtom.tsx b/apps/discovery/src/components/BodyListAtom.tsx new file mode 100644 index 00000000..ec29634b --- /dev/null +++ b/apps/discovery/src/components/BodyListAtom.tsx @@ -0,0 +1,40 @@ +import React from 'react'; +import MarkedList from '@jsamr/react-native-li'; +import upperAlpha from '@jsamr/counter-style/presets/upperAlpha'; +import decimal from '@jsamr/counter-style/presets/decimal'; +import disc from '@jsamr/counter-style/presets/disc'; +import { PropsWithChildren } from 'react'; +import useTextRoleNucleon from './nucleons/useTextRoleNucleon'; +import BoxNucleon from './nucleons/BoxNucleon'; +import { BODY_HZ_SPACING } from '../constants'; +import { Stack } from '@mobily/stacks'; + +type ListType = 'upper-alpha' | 'decimal' | 'disc'; + +const mappings: Record = { + 'upper-alpha': upperAlpha, + decimal, + disc +}; + +const Container = (props: any) => ; + +export default function BodyListAtom({ + children, + type = 'decimal' +}: PropsWithChildren<{ type?: 'upper-alpha' | 'decimal' | 'disc' }>) { + const prefixStyle = useTextRoleNucleon({ role: 'body' }); + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/BodyListItemAtom.tsx b/apps/discovery/src/components/BodyListItemAtom.tsx new file mode 100644 index 00000000..4f42f49a --- /dev/null +++ b/apps/discovery/src/components/BodyListItemAtom.tsx @@ -0,0 +1,10 @@ +import React, { PropsWithChildren } from 'react'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; + +export default function BodyListItemAtom({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} diff --git a/apps/discovery/src/components/BodyParagraphAtom.tsx b/apps/discovery/src/components/BodyParagraphAtom.tsx new file mode 100644 index 00000000..96b555b5 --- /dev/null +++ b/apps/discovery/src/components/BodyParagraphAtom.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { BODY_HZ_SPACING } from '../constants'; +import BoxNucleon from './nucleons/BoxNucleon'; +import TextRoleNucleon, { + TextRoleNucleonProps +} from './nucleons/TextRoleNucleon'; + +export default function BodyParagraphAtom( + props: Omit +) { + return ( + + + + ); +} diff --git a/apps/discovery/src/components/BodySectionMolecule.tsx b/apps/discovery/src/components/BodySectionMolecule.tsx new file mode 100644 index 00000000..c3d1a70d --- /dev/null +++ b/apps/discovery/src/components/BodySectionMolecule.tsx @@ -0,0 +1,44 @@ +import { Stack } from '@mobily/stacks'; +import React, { PropsWithChildren } from 'react'; +import { BODY_HZ_SPACING, BODY_PARAGRAPH_SPACING } from '../constants'; +import { useColorRoles } from '../theme/colorSystem'; +import MaxWidthContainerAtom from './MaxWidthContainerAtom'; +import BoxNucleon from './nucleons/BoxNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { PropsWithStyle } from './nucleons/types'; + +function BodyHeader({ + children, + style +}: PropsWithStyle>) { + const { surface } = useColorRoles(); + const color = surface.content; + return ( + + + + {children} + + + + ); +} + +export type BodySectionMoleculeProps = PropsWithChildren< + PropsWithStyle<{ title: string; prefix?: string }> +>; + +export default function BodySectionMolecule({ + title, + style, + children +}: BodySectionMoleculeProps) { + return ( + + + {title} + {children} + + + ); +} diff --git a/apps/discovery/src/components/MaxWidthContainerAtom.tsx b/apps/discovery/src/components/MaxWidthContainerAtom.tsx new file mode 100644 index 00000000..1b10d494 --- /dev/null +++ b/apps/discovery/src/components/MaxWidthContainerAtom.tsx @@ -0,0 +1,20 @@ +import React, { PropsWithChildren } from 'react'; +import { View } from 'react-native'; +import contentWidthContextNucleon from './nucleons/contentWidthContextNucleon'; +import { PropsWithStyle } from './nucleons/types'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; + +export default function MaxWidthContainerAtom({ + children, + style +}: PropsWithStyle>) { + const width = useNuclearContentWidth(); + const containerWidth = Math.min(width, 650); + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/RenderHtmlCardOrganism.tsx b/apps/discovery/src/components/RenderHtmlCardOrganism.tsx new file mode 100644 index 00000000..6428dd3c --- /dev/null +++ b/apps/discovery/src/components/RenderHtmlCardOrganism.tsx @@ -0,0 +1,169 @@ +import { Stack, useSpacing } from '@mobily/stacks'; +import React, { useState } from 'react'; +import { ScrollView } from 'react-native-gesture-handler'; +import UIHtmlDisplayMolecule from './UIHtmlDisplayMolecule'; +import UISourceDisplayMolecule from './UISourceDisplayMolecule'; +import BoxNucleon from './nucleons/BoxNucleon'; +import IconNucleon, { IconNucleonProps } from './nucleons/IconNucleon'; +import { useColorRoles } from '../theme/colorSystem'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; +import { PropsWithStyle } from './nucleons/types'; +import { RenderHTMLProps, HTMLSourceInline } from 'react-native-render-html'; +import { TouchableWithoutFeedbackProps } from 'react-native'; +import GestureHandlerAdapterNucleon from './nucleons/GestureHandlerAdapterNucleon'; +import { Card, TouchableRipple } from 'react-native-paper'; +import DefaultColorRolesProvider from './croles/DefaultColorRolesProvider'; +import UICardContainer from './UICardContainer'; + +function UIIconButton({ + onPress, + iconName, + selected, + ...other +}: { + iconName: IconNucleonProps['name']; + onPress?: TouchableWithoutFeedbackProps['onPress']; + selected: boolean; +}) { + const { selectable } = useColorRoles(); + const space1 = useSpacing(1); + return ( + + + + + + ); +} + +interface RenderHtmlCardOrganismProps { + caption?: string; + preferHtmlSrc: boolean; + props: RenderHTMLProps; + snapshot: string; + snippet: string; + title: string; +} + +function RenderHTMLCardInner({ + props: renderHtmlProps, + snippet, + preferHtmlSrc, + snapshot +}: Omit< + PropsWithStyle, + 'style' | 'title' | 'caption' +>) { + const [selectedSourceType, setSelectedSourceType] = useState< + 'html' | 'jsx' | 'trt' + >(preferHtmlSrc ? 'html' : 'jsx'); + const { surface } = useColorRoles(); + const contentWidth = useNuclearContentWidth(); + const sourceDisplayStyle = { + minWidth: contentWidth, + backgroundColor: 'transparent' + }; + const cardBg = surface.background; + return ( + <> + + + setSelectedSourceType('jsx')} + iconName="language-javascript" + /> + setSelectedSourceType('html')} + iconName="language-html5" + /> + setSelectedSourceType('trt')} + iconName="file-tree" + /> + + + + + {selectedSourceType === 'html' ? ( + + ) : selectedSourceType === 'jsx' ? ( + + ) : ( + + )} + + + + + + + + + + + + + + ); +} + +export default function RenderHtmlCardOrganism({ + caption, + title, + style, + ...props +}: PropsWithStyle) { + return ( + + + + ); +} diff --git a/apps/discovery/src/components/TNodeTransformDisplayOrganism.tsx b/apps/discovery/src/components/TNodeTransformDisplayOrganism.tsx new file mode 100644 index 00000000..f5567af1 --- /dev/null +++ b/apps/discovery/src/components/TNodeTransformDisplayOrganism.tsx @@ -0,0 +1,68 @@ +import { Stack } from '@mobily/stacks'; +import React from 'react'; +import { ScrollView } from 'react-native-gesture-handler'; +import UISourceDisplayMolecule from './UISourceDisplayMolecule'; +import BoxNucleon from './nucleons/BoxNucleon'; +import IconNucleon from './nucleons/IconNucleon'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; +import { PropsWithStyle } from './nucleons/types'; +import { TNodeTransformDisplayProps } from '@doc/pages'; +import UICardContainer from './UICardContainer'; + +export type TNodeTransformDisplayOrganismProps = PropsWithStyle< + TNodeTransformDisplayProps & { style?: any } +>; + +function TNodeTransformDisplayOrganismInner({ + html, + snaphost +}: TNodeTransformDisplayOrganismProps) { + const contentWidth = useNuclearContentWidth(); + const sourceDisplayStyle = { + minWidth: contentWidth + }; + return ( + + + + + + + + + + + + ); +} + +export default function TNodeTransformDisplayOrganism( + props: TNodeTransformDisplayOrganismProps +) { + return ( + + + + ); +} diff --git a/apps/discovery/src/components/TideListAtom.tsx b/apps/discovery/src/components/TideListAtom.tsx new file mode 100644 index 00000000..2598d565 --- /dev/null +++ b/apps/discovery/src/components/TideListAtom.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { Stack, useSpacing } from '@mobily/stacks'; +import { PropsWithChildren } from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import BoxNucleon from './nucleons/BoxNucleon'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; +import contentWidthContextNucleon from './nucleons/contentWidthContextNucleon'; + +export default function UITideListAtom({ + children, + spaces = 0, + style +}: PropsWithChildren<{ style?: StyleProp; spaces?: number }>) { + const contentWidth = useNuclearContentWidth(); + const controlContentWidth = contentWidth - useSpacing(2 * spaces); + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/UIAppbarActionAtom.tsx b/apps/discovery/src/components/UIAppbarActionAtom.tsx new file mode 100644 index 00000000..972caca3 --- /dev/null +++ b/apps/discovery/src/components/UIAppbarActionAtom.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Appbar } from 'react-native-paper'; +import { useColorRoles } from '../theme/colorSystem'; + +export type UIAppbarActionAtomProps = React.ComponentProps< + typeof Appbar.Action +>; + +export default function UIAppbarActionAtom({ + color, + rippleColor, + ...props +}: UIAppbarActionAtomProps) { + const { pressable } = useColorRoles(); + return ( + + ); +} diff --git a/apps/discovery/src/components/UIAppbarContentAtom.tsx b/apps/discovery/src/components/UIAppbarContentAtom.tsx new file mode 100644 index 00000000..56693b22 --- /dev/null +++ b/apps/discovery/src/components/UIAppbarContentAtom.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { StyleSheet } from 'react-native'; +import { Appbar, AppbarContentProps } from 'react-native-paper'; +import { useColorRoles } from '../theme/colorSystem'; +import useTextRoleNucleon from './nucleons/useTextRoleNucleon'; + +export type UIAppbarContentAtomProps = Omit< + AppbarContentProps, + 'title' | 'titleStyle' | 'color' +> & { + title?: string; +}; + +const styles = StyleSheet.create({ + title: { + letterSpacing: 1.5 + } +}); + +export default function UIAppbarContentAtom({ + title, + ...props +}: UIAppbarContentAtomProps) { + const { surface } = useColorRoles(); + const titleStyle = useTextRoleNucleon({ + role: 'headerTitle', + color: surface.content + }); + + const titleProps = title + ? { title, titleStyle: [titleStyle, styles.title] } + : { title: undefined }; + + return ; +} diff --git a/apps/discovery/src/components/UIBidirectionalScrollViewAtom.tsx b/apps/discovery/src/components/UIBidirectionalScrollViewAtom.tsx new file mode 100644 index 00000000..e3fc4f5b --- /dev/null +++ b/apps/discovery/src/components/UIBidirectionalScrollViewAtom.tsx @@ -0,0 +1,22 @@ +import React, { PropsWithChildren } from 'react'; +import { ScrollView } from 'react-native-gesture-handler'; + +// TODO use spacing + +export default function UIBidirectionalScrollViewAtom({ + children, + padding +}: PropsWithChildren<{ padding?: number }>) { + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/UIBottomSheetAtom.tsx b/apps/discovery/src/components/UIBottomSheetAtom.tsx new file mode 100644 index 00000000..b533e882 --- /dev/null +++ b/apps/discovery/src/components/UIBottomSheetAtom.tsx @@ -0,0 +1,68 @@ +import React from 'react'; +import { StyleSheet, View } from 'react-native'; +import BottomSheet, { + BottomSheetBackgroundProps, + BottomSheetProps +} from '@gorhom/bottom-sheet'; +import gestureHandlerContextNucleon from './nucleons/gestureHandlerContextNucleon'; +import useSurfaceBackgroundStyleNucleon from './nucleons/useSurfaceBackgroundStyleNucleon'; +import { useColorRoles } from '../theme/colorSystem'; + +const RADIUS = 15; + +const styles = StyleSheet.create({ + radiusTop: { + borderTopRightRadius: RADIUS, + borderTopLeftRadius: RADIUS + }, + handle: { + height: 30, + width: '100%', + justifyContent: 'center', + alignItems: 'center' + }, + indicator: { + position: 'absolute', + width: 30, + height: 5, + borderRadius: 5 + } +}); + +const Handle = () => { + const { sheetHandle } = useColorRoles(); + return ( + + + + ); +}; + +const Background = ({ style }: BottomSheetBackgroundProps) => { + const backdropStyles = useSurfaceBackgroundStyleNucleon(); + return ; +}; + +export default function UIBottomSheetAtom({ + snapPoints, + children, + ...props +}: Omit) { + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/UICardContainer.tsx b/apps/discovery/src/components/UICardContainer.tsx new file mode 100644 index 00000000..e8634416 --- /dev/null +++ b/apps/discovery/src/components/UICardContainer.tsx @@ -0,0 +1,53 @@ +import { useSpacing } from '@mobily/stacks'; +import React, { PropsWithChildren } from 'react'; +import { useColorRoles } from '../theme/colorSystem'; +import CardColorRolesProvider from './croles/CardColorRolesProvider'; +import BoxNucleon from './nucleons/BoxNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { PropsWithStyle } from './nucleons/types'; +import UIFigureTitleAtom from './UIFigureTitleAtom'; + +export type UICardContainerProps = PropsWithStyle< + PropsWithChildren<{ title?: string; caption?: string }> +>; + +function UICardInner({ children, style, caption }: UICardContainerProps) { + const borderBottomWidth = useSpacing(2); + const { surface } = useColorRoles(); + const cardBg = surface.background; + return ( + + {children} + {!!caption && ( + + + {caption} + + + )} + + ); +} + +export default function UICardContainer(props: UICardContainerProps) { + return ( + <> + {props.title && } + + + + + ); +} diff --git a/apps/discovery/src/components/UIColorPickerControlAtom.tsx b/apps/discovery/src/components/UIColorPickerControlAtom.tsx new file mode 100644 index 00000000..4425c7d8 --- /dev/null +++ b/apps/discovery/src/components/UIColorPickerControlAtom.tsx @@ -0,0 +1,38 @@ +import React, { useCallback } from 'react'; +import ColorPicker, { + ColorPickerProps, + HueSlider, + Preview +} from 'reanimated-color-picker'; +import { SelectorProps, PropsWithStyle } from './nucleons/types'; + +export type UIColorPickerControlAtomProps = Pick< + SelectorProps, + 'onSelectedValueChange' +> & + PropsWithStyle<{ + initialValue: string; + }>; + +export default function UIColorPickerControlAtom({ + onSelectedValueChange, + initialValue, + style +}: UIColorPickerControlAtomProps) { + const onSelectColor = useCallback< + NonNullable + >( + ({ hex }) => { + 'worklet'; + onSelectedValueChange(hex); + }, + [onSelectedValueChange] + ); + + return ( + + + + + ); +} diff --git a/apps/discovery/src/components/UIDisplayLoadingAtom.tsx b/apps/discovery/src/components/UIDisplayLoadingAtom.tsx new file mode 100644 index 00000000..fd3a371a --- /dev/null +++ b/apps/discovery/src/components/UIDisplayLoadingAtom.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import { ActivityIndicator } from 'react-native-paper'; +import { useColorRoles } from '../theme/colorSystem'; +import BoxNucleon from './nucleons/BoxNucleon'; + +export default function UIDisplayLoadingAtom({ + style +}: { + style?: StyleProp; +}) { + const { spinnerColor } = useColorRoles(); + return ( + + + + ); +} diff --git a/apps/discovery/src/components/UIFigureTitleAtom.tsx b/apps/discovery/src/components/UIFigureTitleAtom.tsx new file mode 100644 index 00000000..236f3757 --- /dev/null +++ b/apps/discovery/src/components/UIFigureTitleAtom.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { PropsWithChildren } from 'react'; +import { useColorPrimitives } from '../theme/colorSystem'; +import BoxNucleon from './nucleons/BoxNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { PropsWithStyle } from './nucleons/types'; + +export default function UIFigureTitleAtom( + props: PropsWithStyle> +) { + const { accent } = useColorPrimitives(); + return ( + + + {props.children} + + + ); +} diff --git a/apps/discovery/src/components/UIHeaderAtom.tsx b/apps/discovery/src/components/UIHeaderAtom.tsx new file mode 100644 index 00000000..34ceee46 --- /dev/null +++ b/apps/discovery/src/components/UIHeaderAtom.tsx @@ -0,0 +1,43 @@ +import React, { ComponentProps, PropsWithChildren, useMemo } from 'react'; +import { Appbar } from 'react-native-paper'; +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { useColorRoles } from '../theme/colorSystem'; +import HeaderColorRolesProvider from './croles/HeaderColorRolesProvider'; +import { HEADER_COLL_HEIGHT } from '../constants'; + +type AppbarHeaderProps = ComponentProps; + +function AppbarHeader(props: AppbarHeaderProps) { + const { surface, statusBarBackground } = useColorRoles(); + const { top } = useSafeAreaInsets(); + const appbarStyles = useMemo( + () => [ + props.style, + { backgroundColor: surface.background, height: HEADER_COLL_HEIGHT } + ], + [surface.background, props.style] + ); + return ( + + + + + ); +} + +export type UIHeaderAtomProps = PropsWithChildren; + +export default function UIHeaderAtom(appbarProps: UIHeaderAtomProps) { + return ( + + + + ); +} diff --git a/apps/discovery/src/components/UIHtmlDisplayMolecule.tsx b/apps/discovery/src/components/UIHtmlDisplayMolecule.tsx new file mode 100644 index 00000000..793d1047 --- /dev/null +++ b/apps/discovery/src/components/UIHtmlDisplayMolecule.tsx @@ -0,0 +1,94 @@ +import React, { useCallback } from 'react'; +import { View, StyleProp, ViewStyle } from 'react-native'; +import RenderHTML, { + AElementConfig, + RenderHTMLProps +} from 'react-native-render-html'; +import UIDisplayLoadingAtom from './UIDisplayLoadingAtom'; +import useOnLinkPress from '../hooks/useOnLinkPress'; +import { useColorRoles } from '../theme/colorSystem'; +import { SYSTEM_FONTS } from '../constants'; +import { useMemo } from 'react'; + +function renderRemoteLoadingView() { + return ; +} + +const defaultTextProps = { + selectable: true +}; + +const UIHtmlDisplayMolecule = React.memo( + ({ + renderHtmlProps, + contentWidth, + style + }: { + contentWidth: number; + renderHtmlProps: RenderHTMLProps; + style?: StyleProp; + }) => { + const onSelectUri = useOnLinkPress(); + const onLinkPress = useCallback>( + (e, uri) => onSelectUri(uri), + [onSelectUri] + ); + const { surface, softDivider } = useColorRoles(); + const baseStyle = useMemo( + () => ({ + color: surface.content, + backgroundColor: surface.background, + ...renderHtmlProps.baseStyle + }), + [renderHtmlProps.baseStyle, surface.background, surface.content] + ); + const sharedProps = { + contentWidth, + ...(renderHtmlProps as any), + renderersProps: useMemo( + () => ({ + ...renderHtmlProps.renderersProps, + a: { + onPress: onLinkPress, + ...renderHtmlProps.renderersProps?.a + }, + img: { + enableExperimentalPercentWidth: true, + ...renderHtmlProps.renderersProps?.img + } + }), + [onLinkPress, renderHtmlProps.renderersProps] + ), + defaultTextProps + }; + const mergedTagsStyles = useMemo( + () => ({ + ...sharedProps.tagsStyles, + hr: { + marginTop: 16, + marginBottom: 16, + ...sharedProps.tagsStyles?.hr, + height: 1, + backgroundColor: softDivider + }, + html: {} + }), + [sharedProps.tagsStyles, softDivider] + ); + const renderHtml = ( + + ); + return {renderHtml}; + } +); + +export default UIHtmlDisplayMolecule; diff --git a/apps/discovery/src/components/UIHyperlinkAtom.tsx b/apps/discovery/src/components/UIHyperlinkAtom.tsx new file mode 100644 index 00000000..fd63a1f9 --- /dev/null +++ b/apps/discovery/src/components/UIHyperlinkAtom.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { useColorRoles } from '../theme/colorSystem'; +import { TextRoleNucleonProps } from './nucleons/TextRoleNucleon'; +import useTextRoleNucleon from './nucleons/useTextRoleNucleon'; +import { Text } from 'react-native'; +import { NativeViewGestureHandler } from 'react-native-gesture-handler'; + +export default function UIHyperlinkAtom({ + children, + role = 'bodyInlineCode', + color, + ...props +}: Partial) { + const { hyperlinkColor } = useColorRoles(); + const textStyle = useTextRoleNucleon({ + color: color || hyperlinkColor, + role + }); + return ( + + + + ); +} diff --git a/apps/discovery/src/components/UILinkPressDisplayMolecule.tsx b/apps/discovery/src/components/UILinkPressDisplayMolecule.tsx new file mode 100644 index 00000000..053556d0 --- /dev/null +++ b/apps/discovery/src/components/UILinkPressDisplayMolecule.tsx @@ -0,0 +1,42 @@ +import React, { PropsWithChildren, useMemo, useState } from 'react'; +import { StyleSheet } from 'react-native'; +import { Linking, View } from 'react-native'; +import onLinkPressContext from '../state/onLinkPressContext'; +import UISnackbarAtom, { UISnackbarAtomProps } from './UISnackbarAtom'; +import { TextRoleNucleonProps } from './nucleons/useTextRoleNucleon'; + +const styles = StyleSheet.create({ + container: { position: 'relative', flexGrow: 1 } +}); + +const textProps: TextRoleNucleonProps = { + role: 'bodyInlineCode' +}; + +export default function UILinkPressDisplayMolecule({ + children +}: PropsWithChildren<{}>) { + const [url, setUrl] = useState(null); + const action: UISnackbarAtomProps['action'] = useMemo( + () => ({ + label: 'browse', + onPress: () => { + url && Linking.openURL(url); + } + }), + [url] + ); + return ( + + {children} + setUrl(null)}> + {url} + + + ); +} diff --git a/apps/discovery/src/components/UINavResourceTide.tsx b/apps/discovery/src/components/UINavResourceTide.tsx new file mode 100644 index 00000000..2c4f4749 --- /dev/null +++ b/apps/discovery/src/components/UINavResourceTide.tsx @@ -0,0 +1,32 @@ +import { useNavigation } from '@react-navigation/core'; +import React, { useCallback } from 'react'; +import { ResourceRoute, resourceRoutesIndex } from '../nav-model'; +import useSurfaceBackgroundStyleNucleon from './nucleons/useSurfaceBackgroundStyleNucleon'; +import { UINavTideMoleculeProps } from './UINavTideMolecule'; +import UITideAtom from './UITideAtom'; + +export type UINavResourceTideMoleculeProps = Omit< + UINavTideMoleculeProps, + 'leftIconName' | 'label' +>; + +export default function UINavResourceTideMolecule({ + route, + ...props +}: UINavResourceTideMoleculeProps) { + const definition = resourceRoutesIndex[route]; + const navigation = useNavigation(); + return ( + navigation.navigate(route), + [navigation, route] + )} + /> + ); +} diff --git a/apps/discovery/src/components/UINavTideMolecule.tsx b/apps/discovery/src/components/UINavTideMolecule.tsx new file mode 100644 index 00000000..4ad891c8 --- /dev/null +++ b/apps/discovery/src/components/UINavTideMolecule.tsx @@ -0,0 +1,46 @@ +import React, { useCallback } from 'react'; +import UITideAtom, { UITideAtomProps } from './UITideAtom'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { useNavigation } from '@react-navigation/core'; +import { useColorRoles } from '../theme/colorSystem'; + +export type UINavTideMoleculeProps = Omit< + UITideAtomProps, + 'rightIconName' | 'onPress' | 'title' +> & { + description?: string; + route: R; + label: string; +}; + +export default function UINavTideMolecule({ + leftIconName, + description, + label, + route, + ...listProps +}: UINavTideMoleculeProps) { + const navigation = useNavigation(); + const { surface } = useColorRoles(); + const bottom = description + ? () => ( + + {description} + + ) + : null; + return ( + navigation.navigate(route), + [navigation, route] + )} + bottom={bottom} + leftIconName={leftIconName} + rightIconName="arrow-right" + /> + ); +} diff --git a/apps/discovery/src/components/UIPickerControlAtom.tsx b/apps/discovery/src/components/UIPickerControlAtom.tsx new file mode 100644 index 00000000..fd364b9e --- /dev/null +++ b/apps/discovery/src/components/UIPickerControlAtom.tsx @@ -0,0 +1,55 @@ +import React, { ComponentProps } from 'react'; +import { Picker } from '@react-native-picker/picker'; +import useTextRoleNucleon from './nucleons/useTextRoleNucleon'; +import { StyleSheet, View } from 'react-native'; +import { NativeViewGestureHandler } from 'react-native-gesture-handler'; +import useSelectorItemsNucleon from './nucleons/useSelectorPropsNucleon'; +import { SelectorListProps } from './nucleons/types'; +import { useColorRoles } from '../theme/colorSystem'; + +type PickerProps = ComponentProps; + +export interface UIPickerControlAtomProps + extends Pick, + SelectorListProps {} + +const styles = StyleSheet.create({ + fixContainer: { + height: 30 + }, + fixStyles: { + marginLeft: -9, + marginRight: -13, + marginTop: -10 + } +}); + +export default function UIPickerControlAtom({ + items, + onSelectedValueChange, + style, + ...pickerProps +}: UIPickerControlAtomProps) { + const { pressable } = useColorRoles(); + const normalizedItems = useSelectorItemsNucleon(items); + const labelStyle = useTextRoleNucleon({ role: 'uiLabel' }); + return ( + + + + {normalizedItems.map((item, index) => ( + + ))} + + + + ); +} diff --git a/apps/discovery/src/components/UIRadioGroupControlMolecule.tsx b/apps/discovery/src/components/UIRadioGroupControlMolecule.tsx new file mode 100644 index 00000000..ced21ebc --- /dev/null +++ b/apps/discovery/src/components/UIRadioGroupControlMolecule.tsx @@ -0,0 +1,42 @@ +import React, { useMemo } from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import { TextRoleNucleonProps } from './nucleons/useTextRoleNucleon'; +import useSelectorItemsNucleon from './nucleons/useSelectorPropsNucleon'; +import UIRadioItemAtom from './UIRadioItemAtom'; +import selectedRadioItemContextAtom from './selectedRadioItemContextAtom'; +import BoxNucleon from './nucleons/BoxNucleon'; +import { SelectorListProps } from './nucleons/types'; +import { useSpacing } from '@mobily/stacks'; + +export interface UIRadioGroupControlMoleculeProps + extends SelectorListProps { + style?: StyleProp; + labelStyle?: TextRoleNucleonProps; +} + +export default function UIRadioGroupControlMolecule({ + items, + selectedValue, + onSelectedValueChange, + style, + labelStyle +}: UIRadioGroupControlMoleculeProps) { + const normalizedItems = useSelectorItemsNucleon(items); + const spacing = useSpacing(2); + const itemStyle = useMemo(() => ({ paddingHorizontal: spacing }), [spacing]); + return ( + + + {normalizedItems.map((props, i) => ( + + ))} + + + ); +} diff --git a/apps/discovery/src/components/UIRadioItemAtom.tsx b/apps/discovery/src/components/UIRadioItemAtom.tsx new file mode 100644 index 00000000..9256785e --- /dev/null +++ b/apps/discovery/src/components/UIRadioItemAtom.tsx @@ -0,0 +1,77 @@ +import React, { memo, useCallback, useContext } from 'react'; +import { + StyleProp, + StyleSheet, + TextStyle, + View, + ViewStyle +} from 'react-native'; +import { RadioButton, TouchableRipple } from 'react-native-paper'; +import GestureHandlerAdapterNucleon from './nucleons/GestureHandlerAdapterNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import selectedRadioItemContextAtom from './selectedRadioItemContextAtom'; +import { useColorRoles } from '../theme/colorSystem'; + +export const RADIO_ITEM_HEIGHT = 40; + +const styles = StyleSheet.create({ + row: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center' + }, + label: { textAlignVertical: 'center' }, + item: { height: RADIO_ITEM_HEIGHT } +}); + +const UIRadioItemAtom = memo(function RadioItem({ + value, + label, + onSelectedValueChange, + labelStyle, + style +}: { + value: V; + label: string; + onSelectedValueChange: (v: any) => void; + labelStyle?: StyleProp; + style?: StyleProp; +}) { + const onPress = useCallback( + () => onSelectedValueChange(value), + [value, onSelectedValueChange] + ); + const selected = useContext(selectedRadioItemContextAtom) === value; + const { pressable, selectable, surface } = useColorRoles(); + const color = selected + ? selectable.activeBackground + : selectable.inactiveBackground; + return ( + + + + + {label} + + + + + + ); +}); + +type UIRadioItemAtom = typeof UIRadioItemAtom; + +export default UIRadioItemAtom; diff --git a/apps/discovery/src/components/UIRadioListControlMolecule.tsx b/apps/discovery/src/components/UIRadioListControlMolecule.tsx new file mode 100644 index 00000000..6fe56026 --- /dev/null +++ b/apps/discovery/src/components/UIRadioListControlMolecule.tsx @@ -0,0 +1,89 @@ +import React, { useCallback, useMemo } from 'react'; +import { + FlatListProps, + ListRenderItem, + StyleProp, + TextStyle, + ViewStyle +} from 'react-native'; +import useSelectorItemsNucleon from './nucleons/useSelectorPropsNucleon'; +import { BottomSheetFlatList } from '@gorhom/bottom-sheet'; +import UIRadioItemAtom, { RADIO_ITEM_HEIGHT } from './UIRadioItemAtom'; +import selectedRadioItemContextAtom from './selectedRadioItemContextAtom'; +import BoxNucleon from './nucleons/BoxNucleon'; +import { useSpacing } from '@mobily/stacks'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { SelectorItem, SelectorListProps } from './nucleons/types'; + +export interface RadioListControlProps + extends SelectorListProps { + style?: StyleProp; + labelStyle?: + | StyleProp + | ((item: SelectorItem, index: number) => StyleProp); +} + +function extractKey(item: Required>, index: number) { + return `${item.value}-${index}`; +} + +const getItemLayout: FlatListProps< + Required> +>['getItemLayout'] = function getItemLayout(data, index) { + return { + index, + length: RADIO_ITEM_HEIGHT, + offset: RADIO_ITEM_HEIGHT * index + }; +}; + +export default function UIRadioListControlMolecule({ + items, + selectedValue, + onSelectedValueChange, + style, + labelStyle +}: RadioListControlProps) { + const normalizedItems = useSelectorItemsNucleon(items); + const spacing = useSpacing(2); + const itemStyle = useMemo(() => ({ paddingHorizontal: spacing }), [spacing]); + const { bottom: safeBottom } = useSafeAreaInsets(); + const contentContainerStyle = useMemo( + () => ({ + paddingTop: spacing, + paddingBottom: spacing + safeBottom + }), + [safeBottom, spacing] + ); + const listRenderItem: ListRenderItem>> = useCallback( + ({ item, index }) => { + const syntheticLabelStyle = + typeof labelStyle === 'function' ? labelStyle(item, index) : labelStyle; + const { label, value } = item; + return ( + + ); + }, + [labelStyle, onSelectedValueChange, itemStyle] + ); + return ( + + + + + + ); +} diff --git a/apps/discovery/src/components/UISliderControlAtom.tsx b/apps/discovery/src/components/UISliderControlAtom.tsx new file mode 100644 index 00000000..c6b02245 --- /dev/null +++ b/apps/discovery/src/components/UISliderControlAtom.tsx @@ -0,0 +1,67 @@ +import React, { useRef } from 'react'; +import Slider, { SliderProps } from '@react-native-community/slider'; +import { createNativeWrapper } from 'react-native-gesture-handler'; +import { AccessibilityProps, Platform, View } from 'react-native'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; +import { useColorRoles } from '../theme/colorSystem'; + +const GestureSlider = Platform.select({ + android: createNativeWrapper(Slider, { + disallowInterruption: true, + shouldActivateOnStart: true, + shouldCancelWhenOutside: false + }) as unknown as typeof Slider, + default: Slider +}); + +export type SliderControlAtomProps = Pick< + SliderProps, + 'step' | 'minimumValue' | 'maximumValue' | 'value' | 'onValueChange' | 'style' +> & { + width?: number; +} & AccessibilityProps; + +// Fix offsets, see https://github.com/callstack/react-native-slider/issues/258 +function getFixedStyle(contentWidth: number) { + const offsetLeft = Platform.select({ android: -15, default: 0 }); + const offsetRight = Platform.select({ android: -15, default: 0 }); + return { + width: contentWidth + Math.abs(offsetLeft + offsetRight), + marginLeft: offsetLeft, + marginRight: offsetRight + }; +} + +export default function SliderControlAtom({ + maximumValue, + minimumValue, + onValueChange, + step, + value, + width, + style, + ...accessibilityProps +}: SliderControlAtomProps) { + const initialValueRef = useRef(value); + const { switchColor, trackColor } = useColorRoles(); + const contentWidth = useNuclearContentWidth(); + const syntheticContentWidth = width ?? contentWidth; + return ( + + + + ); +} diff --git a/apps/discovery/src/components/UISliderTideMolecule.tsx b/apps/discovery/src/components/UISliderTideMolecule.tsx new file mode 100644 index 00000000..b97c23de --- /dev/null +++ b/apps/discovery/src/components/UISliderTideMolecule.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { StyleProp, StyleSheet, View, ViewStyle } from 'react-native'; +import UITideAtom, { UITideAtomProps } from './UITideAtom'; +import SliderControlAtom, { + SliderControlAtomProps +} from './UISliderControlAtom'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import { useColorRoles } from '../theme/colorSystem'; +import { useSpacing } from '@mobily/stacks'; + +export type UISliderTideMoleculeProps = Omit< + SliderControlAtomProps, + 'width' | 'style' +> & { + style?: StyleProp; + leftIconName: UITideAtomProps['leftIconName']; + label: string; +}; + +export default function UISliderTideMolecule({ + style, + label, + leftIconName, + ...sliderProps +}: UISliderTideMoleculeProps) { + const { surface } = useColorRoles(); + const padding = useSpacing(2); + const right = ({ width }: { width: number }) => ( + + + {sliderProps.value?.toFixed(1)} + + + ); + const bottom = () => ; + return ( + + ); +} diff --git a/apps/discovery/src/components/UISnackbarAtom.tsx b/apps/discovery/src/components/UISnackbarAtom.tsx new file mode 100644 index 00000000..568c9469 --- /dev/null +++ b/apps/discovery/src/components/UISnackbarAtom.tsx @@ -0,0 +1,31 @@ +import React, { ComponentProps } from 'react'; +import { Falsy } from 'react-native'; +import { Snackbar } from 'react-native-paper'; +import { TextRole } from './nucleons/useTextRoleNucleon'; +import { useColorPrimitives } from '../theme/colorSystem'; +import TextRoleNucleon, { + TextRoleNucleonProps +} from './nucleons/TextRoleNucleon'; + +export interface UISnackbarAtomProps + extends Omit, 'style' | 'children' | 'role'> { + children?: string | Falsy; + textProps?: TextRoleNucleonProps; + role?: TextRole; +} + +export default function UISnackbarAtom({ + children, + textProps, + role = 'uiLabel', + ...props +}: UISnackbarAtomProps) { + const { surface } = useColorPrimitives(); + return ( + + + {children} + + + ); +} diff --git a/apps/discovery/src/components/UISourceDisplayMolecule.tsx b/apps/discovery/src/components/UISourceDisplayMolecule.tsx new file mode 100644 index 00000000..46dfbf8f --- /dev/null +++ b/apps/discovery/src/components/UISourceDisplayMolecule.tsx @@ -0,0 +1,62 @@ +import { useSpacing } from '@mobily/stacks'; +import React, { useCallback } from 'react'; +import Highlighter, { HighlighterProps } from '../highlight/Highlighter'; +import { useColorRoles } from '../theme/colorSystem'; +import useTextRoleNucleon, { + TextRoleNucleonProps +} from './nucleons/useTextRoleNucleon'; + +export type UISourceDisplayMoleculeProps = { + content: string; + style?: HighlighterProps['style']; + language?: HighlighterProps['language']; + paddingVertical?: number; + clipLines?: boolean; + textRole?: TextRoleNucleonProps['role']; +} & Omit< + HighlighterProps, + | 'paddingTop' + | 'paddingBottom' + | 'lineStyle' + | 'lineNumberStyle' + | 'highlightJsStyle' + | 'fontSize' + | 'lineFontSize' + | 'fontFamily' +>; + +export default function UISourceDisplayMolecule({ + paddingVertical, + textRole = 'source', + showLineNumbers = true, + ...otherProps +}: UISourceDisplayMoleculeProps) { + const spacing = useSpacing(2); + const { codeBackground } = useColorRoles(); + const { fontFamily, fontSize } = useTextRoleNucleon({ + role: textRole + }); + const syntheticPaddingVertical = useSpacing(paddingVertical ?? 0); + const lineNumberDisplayWidthComputer = useCallback< + NonNullable + >( + (fs, maxLineNumberCharLength) => spacing + fs * maxLineNumberCharLength, + [spacing] + ); + return ( + + ); +} diff --git a/apps/discovery/src/components/UISwitchControlAtom.tsx b/apps/discovery/src/components/UISwitchControlAtom.tsx new file mode 100644 index 00000000..bfff9369 --- /dev/null +++ b/apps/discovery/src/components/UISwitchControlAtom.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { SwitchProps, Switch, AccessibilityProps } from 'react-native'; +import { NativeViewGestureHandler } from 'react-native-gesture-handler'; +import { useColorRoles } from '../theme/colorSystem'; + +export type UISwitchControlAtomProps = Omit< + SwitchProps, + 'tintColor' | 'trackColor' | 'thumbColor' +> & + AccessibilityProps; + +export default function UISwitchControlAtom({ + value, + ...switchProps +}: UISwitchControlAtomProps) { + const { switchColor, trackColor } = useColorRoles(); + return ( + + + + ); +} diff --git a/apps/discovery/src/components/UISwitchTideMolecule.tsx b/apps/discovery/src/components/UISwitchTideMolecule.tsx new file mode 100644 index 00000000..1b32112f --- /dev/null +++ b/apps/discovery/src/components/UISwitchTideMolecule.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import UITideAtom, { UITideAtomProps } from './UITideAtom'; +import UISwitchControlAtom, { + UISwitchControlAtomProps +} from './UISwitchControlAtom'; + +export type UISwitchTideMoleculeProps = Omit< + UISwitchControlAtomProps, + 'style' +> & { + style?: StyleProp; + leftIconName: UITideAtomProps['leftIconName']; + label: string; +}; + +export default function UISwitchTideMolecule({ + style, + label, + leftIconName, + ...switchProps +}: UISwitchTideMoleculeProps) { + const right = () => ; + const onPress = () => { + switchProps.onValueChange?.(!switchProps.value); + }; + return ( + + ); +} diff --git a/apps/discovery/src/components/UITTreeDisplayMolecule.tsx b/apps/discovery/src/components/UITTreeDisplayMolecule.tsx new file mode 100644 index 00000000..e0bfaea6 --- /dev/null +++ b/apps/discovery/src/components/UITTreeDisplayMolecule.tsx @@ -0,0 +1,27 @@ +import React, { useMemo } from 'react'; +import { TNode } from 'react-native-render-html'; +import { HighlighterProps } from '../highlight/Highlighter'; +import { TextRoleNucleonProps } from './nucleons/TextRoleNucleon'; +import UISourceDisplayMolecule from './UISourceDisplayMolecule'; + +export default function UITTreeDisplayMolecule({ + ttree, + ...props +}: { + ttree?: TNode; + style?: HighlighterProps['style']; + language?: HighlighterProps['language']; + paddingVertical?: number; + clipLines?: boolean; + textRole?: TextRoleNucleonProps['role']; +}) { + const xml = useMemo(() => ttree?.snapshot(), [ttree]); + return xml ? ( + + ) : null; +} diff --git a/apps/discovery/src/components/UITideAtom.tsx b/apps/discovery/src/components/UITideAtom.tsx new file mode 100644 index 00000000..3bd03bc8 --- /dev/null +++ b/apps/discovery/src/components/UITideAtom.tsx @@ -0,0 +1,205 @@ +import React, { ComponentProps, memo, ReactNode } from 'react'; +import { Stack, useSpacing } from '@mobily/stacks'; +import { ViewStyle, StyleProp, View, AccessibilityProps } from 'react-native'; +import { TouchableRipple } from 'react-native-paper'; +import BoxNucleon, { BoxNucleonProps } from './nucleons/BoxNucleon'; +import TextRoleNucleon from './nucleons/TextRoleNucleon'; +import contentWidthContextNucleon from './nucleons/contentWidthContextNucleon'; +import { useNuclearContentWidth } from './nucleons/useContentWidthContext'; +import IconNucleon, { + IconName, + IconNucleonProps +} from './nucleons/IconNucleon'; +import GestureHandlerAdapterNucleon from './nucleons/GestureHandlerAdapterNucleon'; +import { useColorRoles } from '../theme/colorSystem'; + +export interface UITideAtomProps extends AccessibilityProps { + style?: StyleProp; + title: string; + align?: 'left' | 'right'; + leftIconName?: IconName; + rightIconName?: IconName; + active?: boolean; + right?: ReactNode | (({ width }: { width: number }) => ReactNode); + bottom?: ReactNode | (() => ReactNode); + onPress?: ComponentProps['onPress']; +} + +const ICON_SIZE = 25; +const RIGHT_WIDTH = 60; +const COMPONENT_PADDING = 2; +const INLINE_SPACING = 2; + +function ConditionalTouchable({ children, onPress, ...other }: any) { + const { pressable } = useColorRoles(); + return onPress ? ( + + + {children} + + + ) : ( + <>{children} + ); +} + +function LefIcon({ + color, + name, + ...nucProps +}: Pick & BoxNucleonProps) { + return ( + + + + ); +} + +function Right({ + right, + rightIconName, + color, + ...nucProps +}: Pick & + BoxNucleonProps & { color: string }) { + return ( + + {typeof right === 'function' + ? right({ width: RIGHT_WIDTH }) + : right || + (rightIconName ? ( + + ) : null)} + + ); +} + +function Title({ title, color }: { color: string; title: string }) { + return ( + + {title} + + ); +} + +function CenterBottom({ + availableWidth, + bottom +}: { + availableWidth: number; + bottom: UITideAtomProps['bottom']; +}) { + return ( + + + {typeof bottom === 'function' ? bottom() : bottom} + + + ); +} + +const UITideAtom = memo(function UITideAtom({ + style, + title, + leftIconName, + right, + bottom, + onPress, + rightIconName, + active, + align = 'left', + ...accessibilityProps +}: UITideAtomProps) { + const isSelectable = typeof active === 'boolean'; + const { pressable, selectable, softIconColor } = useColorRoles(); + const displayRight = !!(right || rightIconName); + const displayBottom = !!bottom; + const displayLeft = !!leftIconName; + const inlineSpaces = Number(displayRight) + Number(displayLeft); + const hzSpace = useSpacing( + (COMPONENT_PADDING + INLINE_SPACING * inlineSpaces) * 2 + ); + const backgroundColor = isSelectable + ? active && onPress + ? selectable.activeBackground + : selectable.inactiveBackground + : pressable.background; + const contentColor = isSelectable + ? active + ? selectable.activeTint + : selectable.inactiveTint + : pressable.tint; + const iconColor = + isSelectable && active ? selectable.activeTint : softIconColor; + const middleWidth = + useNuclearContentWidth() - + ICON_SIZE * Number(displayLeft) - + hzSpace - + Number(displayRight) * RIGHT_WIDTH; + return ( + + + + {displayLeft && ( + + )} + + + {displayBottom && ( + <CenterBottom availableWidth={middleWidth} bottom={bottom} /> + )} + </Stack> + {displayRight && ( + <Right + marginLeft={INLINE_SPACING} + right={right} + rightIconName={rightIconName} + color={iconColor} + /> + )} + </View> + </ConditionalTouchable> + </View> + ); +}); + +UITideAtom.displayName = 'MemoizedUITideAtom'; + +export default UITideAtom; diff --git a/apps/discovery/src/components/croles/CardColorRolesProvider.tsx b/apps/discovery/src/components/croles/CardColorRolesProvider.tsx new file mode 100644 index 00000000..744cf3fa --- /dev/null +++ b/apps/discovery/src/components/croles/CardColorRolesProvider.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { + ColorPrimitivesDeclaration, + ColorRoles, + ColorRolesProvider +} from '../../theme/colorSystem'; +import { PropsWithChildren } from 'react'; +import generateColorRoles from '../../theme/generateColorRoles'; + +function mapPrimitivesColorRoles( + primitives: ColorPrimitivesDeclaration +): ColorRoles { + const { card } = primitives; + return generateColorRoles({ + name: 'card', + surfaceColor: card.color, + surfaceContent: card.content, + primitives + }); +} + +export default function CardColorRolesProvider({ + children +}: PropsWithChildren<{}>) { + return ( + <ColorRolesProvider mapPrimitivesToColorRoles={mapPrimitivesColorRoles}> + {children} + </ColorRolesProvider> + ); +} diff --git a/apps/discovery/src/components/croles/DefaultColorRolesProvider.tsx b/apps/discovery/src/components/croles/DefaultColorRolesProvider.tsx new file mode 100644 index 00000000..27b23a15 --- /dev/null +++ b/apps/discovery/src/components/croles/DefaultColorRolesProvider.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { + ColorPrimitivesDeclaration, + ColorRoles, + ColorRolesProvider +} from '../../theme/colorSystem'; +import { PropsWithChildren } from 'react'; +import generateColorRoles from '../../theme/generateColorRoles'; + +function mapPrimitivesColorRoles( + primitives: ColorPrimitivesDeclaration +): ColorRoles { + const { surface } = primitives; + return generateColorRoles({ + name: 'default', + surfaceColor: surface.color, + surfaceContent: surface.content, + primitives + }); +} + +export default function DefaultColorRolesProvider({ + children +}: PropsWithChildren<{}>) { + return ( + <ColorRolesProvider mapPrimitivesToColorRoles={mapPrimitivesColorRoles}> + {children} + </ColorRolesProvider> + ); +} diff --git a/apps/discovery/src/components/croles/HeaderColorRolesProvider.tsx b/apps/discovery/src/components/croles/HeaderColorRolesProvider.tsx new file mode 100644 index 00000000..4fbd2bb2 --- /dev/null +++ b/apps/discovery/src/components/croles/HeaderColorRolesProvider.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { + ColorPrimitivesDeclaration, + ColorRoles, + ColorRolesProvider +} from '../../theme/colorSystem'; +import { PropsWithChildren } from 'react'; +import generateColorRoles from '../../theme/generateColorRoles'; + +function mapPrimitivesColorRoles( + primitives: ColorPrimitivesDeclaration +): ColorRoles { + const { heading } = primitives; + return generateColorRoles({ + name: 'header', + surfaceColor: heading.content, + surfaceContent: heading.color, + primitives + }); +} + +export default function HeaderColorRolesProvider({ + children +}: PropsWithChildren<{}>) { + return ( + <ColorRolesProvider mapPrimitivesToColorRoles={mapPrimitivesColorRoles}> + {children} + </ColorRolesProvider> + ); +} diff --git a/apps/discovery/src/components/nucleons/BoxNucleon.tsx b/apps/discovery/src/components/nucleons/BoxNucleon.tsx new file mode 100644 index 00000000..fc037877 --- /dev/null +++ b/apps/discovery/src/components/nucleons/BoxNucleon.tsx @@ -0,0 +1,27 @@ +import React, { useMemo } from 'react'; +import { Box, BoxProps } from '@mobily/stacks'; +import { StyleProp, ViewStyle } from 'react-native'; + +export type BoxNucleonProps = BoxProps & { + backgroundColor?: string; + grow?: boolean; +}; + +export default function BoxNucleon({ + style, + backgroundColor, + grow, + ...props +}: BoxNucleonProps) { + const syntheticStyle: StyleProp<ViewStyle>[] = useMemo( + () => [{ backgroundColor, flexGrow: grow ? 1 : 0 }, style], + [backgroundColor, grow, style] + ); + const box = <Box {...props} style={syntheticStyle} />; + // if (typeof color === 'string') { + // return ( + // <textColorContext.Provider value={color}>{box}</textColorContext.Provider> + // ); + // } + return box; +} diff --git a/apps/discovery/src/components/nucleons/GestureHandlerAdapterNucleon.ts b/apps/discovery/src/components/nucleons/GestureHandlerAdapterNucleon.ts new file mode 100644 index 00000000..057cdd7a --- /dev/null +++ b/apps/discovery/src/components/nucleons/GestureHandlerAdapterNucleon.ts @@ -0,0 +1,46 @@ +import React, { + Children, + Fragment, + PropsWithChildren, + useContext +} from 'react'; +import { TouchableHighlight } from '@gorhom/bottom-sheet'; +import gestureHandlerContextNucleon from './gestureHandlerContextNucleon'; +import { + AccessibilityProps, + Platform, + TouchableWithoutFeedbackProps +} from 'react-native'; + +const Passthrough = ({ children, onPress }: PropsWithChildren<any>) => + React.createElement( + Fragment, + {}, + Children.map(children, (c) => + React.cloneElement(c, { onPress, ...c.props }) + ) + ); + +/** + * This is an adapter for pressable children of + * @gorhom/react-native-bottom-sheet component which doesn't allow proper + * handling of press events an Android. + * + * @param props - The props to pass to the underlying adapter + */ +export default function GestureHandlerAdapterNucleon< + P extends { + onPress?: TouchableWithoutFeedbackProps['onPress']; + } & AccessibilityProps +>(props: P) { + const isInBottomSheet = useContext(gestureHandlerContextNucleon); + const shouldWrap = isInBottomSheet && Platform.OS === 'android'; + const WrapperTouchComponent = shouldWrap + ? (TouchableHighlight as any) + : Passthrough; + + return React.createElement(WrapperTouchComponent, { + ...props, + accessibilityElementsHidden: shouldWrap + }); +} diff --git a/apps/discovery/src/components/nucleons/IconNucleon.tsx b/apps/discovery/src/components/nucleons/IconNucleon.tsx new file mode 100644 index 00000000..a7be8a21 --- /dev/null +++ b/apps/discovery/src/components/nucleons/IconNucleon.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { MaterialCommunityIcons } from '@expo/vector-icons'; +import { ComponentProps } from 'react'; +import { useColorRoles } from '../../theme/colorSystem'; + +export type IconName = ComponentProps<typeof MaterialCommunityIcons>['name']; + +export type IconNucleonProps = ComponentProps<typeof MaterialCommunityIcons>; + +export default function IconNucleon(props: IconNucleonProps) { + const { softIconColor } = useColorRoles(); + return <MaterialCommunityIcons color={softIconColor} {...props} />; +} diff --git a/apps/discovery/src/components/nucleons/ListItemNucleon.tsx b/apps/discovery/src/components/nucleons/ListItemNucleon.tsx new file mode 100644 index 00000000..b82da08a --- /dev/null +++ b/apps/discovery/src/components/nucleons/ListItemNucleon.tsx @@ -0,0 +1,41 @@ +import React, { ComponentProps, PropsWithChildren, useCallback } from 'react'; +import { MaterialCommunityIcons } from '@expo/vector-icons'; +import { List } from 'react-native-paper'; +import GestureHandlerAdapterNucleon from './GestureHandlerAdapterNucleon'; + +export type ListItemNucleonProps = PropsWithChildren< + Omit<ComponentProps<typeof List.Item>, 'left' | 'description'> & { + leftIconName: ComponentProps<typeof MaterialCommunityIcons>['name']; + rightIconName?: ComponentProps<typeof MaterialCommunityIcons>['name']; + } +>; + +type IconRendererProps = Omit<ComponentProps<typeof List.Icon>, 'icon'>; + +export default function ListItemNucleon({ + leftIconName, + rightIconName, + right, + children, + ...listProps +}: ListItemNucleonProps) { + const left = useCallback( + (lp: IconRendererProps) => <List.Icon {...lp} icon={leftIconName} />, + [leftIconName] + ); + const syntheticRight = useCallback( + (rp: IconRendererProps) => + rightIconName && <List.Icon {...rp} icon={rightIconName} />, + [rightIconName] + ); + return ( + <GestureHandlerAdapterNucleon onPress={listProps.onPress}> + <List.Item + {...listProps} + description={children} + left={left} + right={right || syntheticRight} + /> + </GestureHandlerAdapterNucleon> + ); +} diff --git a/apps/discovery/src/components/nucleons/TextRoleNucleon.tsx b/apps/discovery/src/components/nucleons/TextRoleNucleon.tsx new file mode 100644 index 00000000..0af3ef11 --- /dev/null +++ b/apps/discovery/src/components/nucleons/TextRoleNucleon.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import { Text as NativeText } from 'react-native'; +import { TextProps } from 'react-native'; +import useTextRoleNucleon, { + TextRoleNucleonProps as T +} from './useTextRoleNucleon'; + +export type TextRoleNucleonProps = Omit<TextProps, 'role'> & T; + +export default function TextRoleNucleon({ + style, + align, + color, + role, + ...props +}: TextRoleNucleonProps) { + const generatedStyle = useTextRoleNucleon({ role, align, color }); + return ( + <NativeText + {...props} + textBreakStrategy="simple" + style={[generatedStyle, style]} + /> + ); +} diff --git a/apps/discovery/src/components/nucleons/contentWidthContextNucleon.ts b/apps/discovery/src/components/nucleons/contentWidthContextNucleon.ts new file mode 100644 index 00000000..50b2ca93 --- /dev/null +++ b/apps/discovery/src/components/nucleons/contentWidthContextNucleon.ts @@ -0,0 +1,5 @@ +import { createContext } from 'react'; + +const contentWidthContextNucleon = createContext(0); + +export default contentWidthContextNucleon; diff --git a/apps/discovery/src/components/nucleons/gestureHandlerContextNucleon.ts b/apps/discovery/src/components/nucleons/gestureHandlerContextNucleon.ts new file mode 100644 index 00000000..951ac5b1 --- /dev/null +++ b/apps/discovery/src/components/nucleons/gestureHandlerContextNucleon.ts @@ -0,0 +1,5 @@ +import { createContext } from 'react'; + +const gestureHandlerContextNucleon = createContext(false); + +export default gestureHandlerContextNucleon; diff --git a/apps/discovery/src/components/nucleons/types.ts b/apps/discovery/src/components/nucleons/types.ts new file mode 100644 index 00000000..6ed8adaa --- /dev/null +++ b/apps/discovery/src/components/nucleons/types.ts @@ -0,0 +1,30 @@ +import { StyleProp, TextProps, ViewStyle } from 'react-native'; +import { TextRoleNucleonProps } from './useTextRoleNucleon'; + +export interface SelectorProps<V extends string | number> { + selectedValue: V; + onSelectedValueChange: (v: V) => void; +} + +export type SelectorItem<V extends string | number> = { + value: V; + label?: string; +}; + +export interface SelectorListProps<V extends string | number> + extends SelectorProps<V> { + readonly items: ReadonlyArray<SelectorItem<V>> | ReadonlyArray<V>; +} + +export type PropsWithStyle<P> = { + style?: StyleProp<ViewStyle>; +} & P; + +export type PropsWithStringChild<Target = TextProps> = Omit< + Target, + 'children' +> & { children: string }; + +export type RefProps<T = string> = Omit<TextRoleNucleonProps, 'role'> & { + name: T; +}; diff --git a/apps/discovery/src/components/nucleons/useContentWidthContext.ts b/apps/discovery/src/components/nucleons/useContentWidthContext.ts new file mode 100644 index 00000000..7409856a --- /dev/null +++ b/apps/discovery/src/components/nucleons/useContentWidthContext.ts @@ -0,0 +1,6 @@ +import React from 'react'; +import contentWidthContextNucleon from './contentWidthContextNucleon'; + +export function useNuclearContentWidth() { + return React.useContext(contentWidthContextNucleon); +} diff --git a/apps/discovery/src/components/nucleons/useSelectorPropsNucleon.ts b/apps/discovery/src/components/nucleons/useSelectorPropsNucleon.ts new file mode 100644 index 00000000..5f2012a4 --- /dev/null +++ b/apps/discovery/src/components/nucleons/useSelectorPropsNucleon.ts @@ -0,0 +1,19 @@ +import { useMemo } from 'react'; +import { SelectorItem } from './types'; + +export default function useSelectorItemsNucleon<V extends string | number>( + items: ReadonlyArray<SelectorItem<V>> | ReadonlyArray<V> +) { + return useMemo<Array<Required<SelectorItem<V>>>>( + () => + (items || []).map((item: SelectorItem<V> | V) => + typeof item !== 'string' && typeof item !== 'number' + ? { + value: (item as any).value, + label: String((item as any).label || (item as any).value) + } + : { value: item as V, label: String(item) } + ), + [items] + ); +} diff --git a/apps/discovery/src/components/nucleons/useSurfaceBackgroundStyleNucleon.ts b/apps/discovery/src/components/nucleons/useSurfaceBackgroundStyleNucleon.ts new file mode 100644 index 00000000..052032b1 --- /dev/null +++ b/apps/discovery/src/components/nucleons/useSurfaceBackgroundStyleNucleon.ts @@ -0,0 +1,12 @@ +import { useMemo } from 'react'; +import { useColorRoles } from '../../theme/colorSystem'; + +export default function useSurfaceBackgroundStyleNucleon() { + const { surface } = useColorRoles(); + return useMemo( + () => ({ + backgroundColor: surface.background + }), + [surface.background] + ); +} diff --git a/apps/discovery/src/components/nucleons/useTextRoleNucleon.tsx b/apps/discovery/src/components/nucleons/useTextRoleNucleon.tsx new file mode 100644 index 00000000..f68adf35 --- /dev/null +++ b/apps/discovery/src/components/nucleons/useTextRoleNucleon.tsx @@ -0,0 +1,122 @@ +import { TextStyle } from 'react-native'; +import { useColorRoles } from '../../theme/colorSystem'; + +export type TextRole = + // UI roles + | 'headerTitleFull' + | 'headerTitle' + | 'headerSubtitle' + | 'uiLabel' + | 'uiDescription' + | 'uiMono' // For dynamic numbers + | 'html' + | 'source' + | 'sectionOutline' + | 'footer' + | 'uiHyperlink' + // Body roles + | 'body' + | 'bodyBold' + | 'bodyDListHeader' + | 'bodyHeader1' + | 'bodyHeader2' + | 'bodyInlineCode' + | 'bodyFigureTitle' + | 'bodyAPIRef' + | 'caption'; + +const FONT_BODY = 'Raleway_300Light'; +const FONT_BODY_BOLD = 'Raleway_400Regular'; +const FONT_BODY_ITALIC = 'Raleway_300Light_Italic'; +const FONT_MONO = 'SourceCodePro_400Regular'; +const FONT_UI = 'Raleway_400Regular'; + +const BASE_FONT_SIZE = 16; + +const roleDefs: Record< + TextRole, + { fontSize: number; fontFamily: string } & TextStyle +> = { + headerTitleFull: { + fontSize: BASE_FONT_SIZE * 3.5, + fontFamily: FONT_UI, + letterSpacing: 2 + }, + headerTitle: { + fontSize: BASE_FONT_SIZE * 1.5, + fontFamily: FONT_UI, + letterSpacing: 2 + }, + headerSubtitle: { fontSize: BASE_FONT_SIZE * 0.8, fontFamily: FONT_BODY }, + body: { + fontSize: BASE_FONT_SIZE, + fontFamily: FONT_BODY, + lineHeight: BASE_FONT_SIZE * 2 + }, + bodyBold: { fontFamily: FONT_BODY_BOLD, fontSize: 16 }, + bodyFigureTitle: { + fontSize: BASE_FONT_SIZE * 0.85, + lineHeight: BASE_FONT_SIZE * 0.85 * 1.4, + fontFamily: FONT_BODY_BOLD, + textTransform: 'uppercase' + }, + bodyTable: { fontSize: BASE_FONT_SIZE * 0.9, fontFamily: FONT_BODY }, + bodyTableHeader: { + fontSize: BASE_FONT_SIZE * 0.9, + fontFamily: FONT_BODY_BOLD + }, + //@ts-ignore + bodyDListHeader: { + fontSize: BASE_FONT_SIZE * 1.15, + lineHeight: BASE_FONT_SIZE * 1.15 + }, + bodyHeader1: { + fontSize: BASE_FONT_SIZE * 2.5, + fontFamily: FONT_BODY, + letterSpacing: 1.5 + }, + bodyHeader2: { + fontSize: BASE_FONT_SIZE * 1.8, + fontFamily: FONT_BODY_BOLD, + letterSpacing: 1.2 + }, + caption: { fontSize: BASE_FONT_SIZE * 0.9, fontFamily: FONT_BODY_ITALIC }, + uiDescription: { fontSize: BASE_FONT_SIZE * 0.8, fontFamily: FONT_UI }, + uiLabel: { fontSize: BASE_FONT_SIZE * 0.9, fontFamily: FONT_UI }, + uiMono: { fontSize: BASE_FONT_SIZE * 0.9, fontFamily: FONT_MONO }, + uiHyperlink: { fontSize: 5, fontFamily: FONT_MONO }, + footer: { fontSize: BASE_FONT_SIZE * 0.8, fontFamily: FONT_MONO }, + //@ts-ignore + html: { fontSize: BASE_FONT_SIZE * 0.9 }, + //@ts-ignore + bodyInlineCode: { fontFamily: FONT_MONO }, + //@ts-ignore + bodyAPIRef: { fontFamily: FONT_MONO }, + sectionOutline: { + fontSize: BASE_FONT_SIZE * 0.8, + fontFamily: FONT_UI, + textTransform: 'uppercase' + }, + source: { fontSize: BASE_FONT_SIZE * 0.9, fontFamily: FONT_MONO } +}; + +export interface TextRoleNucleonProps { + color?: string; + align?: 'center' | 'start' | 'end'; + role: TextRole; +} + +export default function useTextRoleNucleon({ + role, + align = 'start', + color +}: TextRoleNucleonProps) { + const defaultColor = useColorRoles().surface.content; + const roleStyle = roleDefs[role]; + return { + color: color ?? defaultColor, + textAlign: + align === 'end' ? 'right' : align === 'start' ? 'left' : 'center', + ...roleStyle + } as const; +} diff --git a/apps/discovery/src/components/resources/PlaygroundLists.tsx b/apps/discovery/src/components/resources/PlaygroundLists.tsx new file mode 100644 index 00000000..67790162 --- /dev/null +++ b/apps/discovery/src/components/resources/PlaygroundLists.tsx @@ -0,0 +1,304 @@ +import React from 'react'; +import { useToolkit } from '@doc/pages'; +import TextRoleNucleon from '../nucleons/TextRoleNucleon'; +import PlaygroundTemplate, { + PlaygroundControls, + PlaygroundDescription +} from '../templates/PlaygroundTemplate'; +import UITideListAtom from '../TideListAtom'; +import UISliderTideMolecule from '../UISliderTideMolecule'; +import UISwitchTideMolecule from '../UISwitchTideMolecule'; +import UINavTideMolecule from '../UINavTideMolecule'; +import { + usePlaygroundSetter, + usePlaygroundStateSlice +} from '../templates/PlaygroundTemplate/playgroundStore'; + +const sourceMap = { + shortOl: { + source: `<ol> + <li>Sneaky</li> + <li>Beaky</li> + <li>Like</li> +</ol>`, + label: 'Short ol' + }, + shortUl: { + source: `<ul> + <li>Sneaky</li> + <li>Beaky</li> + <li>Like</li> +</ul>`, + label: 'Short ul' + }, + longOl: { + source: `<ol> + <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li> + <li>Aenean tincidunt elit at ipsum cursus, vitae interdum nulla suscipit.</li> + <li>Curabitur in orci vel risus facilisis accumsan.</li> + <li>Morbi eleifend tortor lacinia sapien sagittis, quis pellentesque felis egestas.</li> + <li>Aenean viverra dui quis leo lacinia fringilla.</li> + <li>Sed varius lectus ac condimentum egestas.</li> + <li>Maecenas faucibus lorem nec lorem posuere, a rhoncus velit porttitor.</li> + <li>Proin porta arcu ac elit malesuada pulvinar.</li> + <li>Phasellus vitae felis sit amet mi gravida volutpat.</li> + <li>Curabitur vulputate urna non efficitur interdum.</li> + <li>Curabitur dapibus enim in consectetur imperdiet.</li> + <li>Suspendisse consectetur nibh non condimentum porta.</li> + <li>Ut placerat diam in cursus aliquet.</li> + <li>Praesent vitae quam id tortor malesuada viverra ut at elit.</li> + <li>Vivamus feugiat justo id volutpat rutrum.</li> + <li>Nulla volutpat erat non mauris condimentum, nec consequat elit posuere.</li> + <li>Vestibulum eu risus efficitur, porta lacus a, mollis metus.</li> + <li>Maecenas finibus arcu vel urna commodo, ac bibendum massa vestibulum.</li> + <li>Praesent eleifend leo eget consectetur interdum.</li> + <li>Suspendisse et lectus gravida, interdum mauris aliquet, mattis purus.</li> + <li>In nec nisl feugiat, blandit odio non, vulputate neque.</li> + <li>Sed id felis mollis, bibendum orci a, condimentum augue.</li> + <li>Etiam eleifend ipsum nec nibh aliquam, non commodo risus eleifend.</li> + <li>Curabitur in ipsum eget lacus blandit maximus in at sem.</li> + <li>Curabitur sagittis ante nec libero maximus, ut imperdiet elit egestas.</li> + <li>Proin congue felis sed ultrices elementum.</li> + <li>Duis sit amet velit et lectus eleifend interdum non quis ex.</li> + <li>Praesent congue lectus a felis pharetra malesuada.</li> + <li>Sed vel mauris condimentum, egestas dolor eu, porttitor nisl.</li> + <li>Donec sed elit tincidunt, accumsan magna sed, facilisis libero.</li> + <li>Curabitur vel purus quis justo placerat euismod mollis ac arcu.</li> + <li>Sed eget mi et justo luctus mollis ut non augue.</li> + <li>Suspendisse sit amet lectus et magna euismod tempor.</li> + <li>Vestibulum accumsan velit et ipsum pellentesque, vitae ultricies erat blandit.</li> + <li>Pellentesque vel dolor ac risus efficitur convallis.</li> + <li>Maecenas feugiat quam at facilisis dapibus.</li> + <li>Cras commodo leo sit amet lacus lacinia, eget rutrum sem sodales.</li> + <li>Ut sit amet risus finibus, iaculis lectus sit amet, varius lectus.</li> + <li>Duis dignissim elit eget erat maximus luctus.</li> +</ol>`, + label: 'Long ol' + }, + longUl: { + source: `<ul> + <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li> + <li>Aenean tincidunt elit at ipsum cursus, vitae interdum nulla suscipit.</li> + <li>Curabitur in orci vel risus facilisis accumsan.</li> + <li>Morbi eleifend tortor lacinia sapien sagittis, quis pellentesque felis egestas.</li> + <li>Aenean viverra dui quis leo lacinia fringilla.</li> + <li>Sed varius lectus ac condimentum egestas.</li> + <li>Maecenas faucibus lorem nec lorem posuere, a rhoncus velit porttitor.</li> + <li>Proin porta arcu ac elit malesuada pulvinar.</li> + <li>Phasellus vitae felis sit amet mi gravida volutpat.</li> + <li>Curabitur vulputate urna non efficitur interdum.</li> + <li>Curabitur dapibus enim in consectetur imperdiet.</li> + <li>Suspendisse consectetur nibh non condimentum porta.</li> + <li>Ut placerat diam in cursus aliquet.</li> + <li>Praesent vitae quam id tortor malesuada viverra ut at elit.</li> + <li>Vivamus feugiat justo id volutpat rutrum.</li> + <li>Nulla volutpat erat non mauris condimentum, nec consequat elit posuere.</li> + <li>Vestibulum eu risus efficitur, porta lacus a, mollis metus.</li> + <li>Maecenas finibus arcu vel urna commodo, ac bibendum massa vestibulum.</li> + <li>Praesent eleifend leo eget consectetur interdum.</li> + <li>Suspendisse et lectus gravida, interdum mauris aliquet, mattis purus.</li> + <li>In nec nisl feugiat, blandit odio non, vulputate neque.</li> + <li>Sed id felis mollis, bibendum orci a, condimentum augue.</li> + <li>Etiam eleifend ipsum nec nibh aliquam, non commodo risus eleifend.</li> + <li>Curabitur in ipsum eget lacus blandit maximus in at sem.</li> + <li>Curabitur sagittis ante nec libero maximus, ut imperdiet elit egestas.</li> + <li>Proin congue felis sed ultrices elementum.</li> + <li>Duis sit amet velit et lectus eleifend interdum non quis ex.</li> + <li>Praesent congue lectus a felis pharetra malesuada.</li> + <li>Sed vel mauris condimentum, egestas dolor eu, porttitor nisl.</li> + <li>Donec sed elit tincidunt, accumsan magna sed, facilisis libero.</li> + <li>Curabitur vel purus quis justo placerat euismod mollis ac arcu.</li> + <li>Sed eget mi et justo luctus mollis ut non augue.</li> + <li>Suspendisse sit amet lectus et magna euismod tempor.</li> + <li>Vestibulum accumsan velit et ipsum pellentesque, vitae ultricies erat blandit.</li> + <li>Pellentesque vel dolor ac risus efficitur convallis.</li> + <li>Maecenas feugiat quam at facilisis dapibus.</li> + <li>Cras commodo leo sit amet lacus lacinia, eget rutrum sem sodales.</li> + <li>Ut sit amet risus finibus, iaculis lectus sit amet, varius lectus.</li> + <li>Duis dignissim elit eget erat maximus luctus.</li> +</ul>`, + label: 'Long ul' + }, + nestedUl: { + label: 'Nested ul', + source: `<ul> + <li> + Nest Level 1 + <ul> + <li> + Nest Level 2 + <ul> + <li>Nest Level 3</li> + </ul> + </li> + </ul> + </li> +</ul>` + }, + nestedOl: { + label: 'Nested ol', + source: `<ol> + <li> + Nest Level 1 + <ol> + <li> + Nest Level 2 + <ol> + <li>Nest Level 3</li> + </ol> + </li> + </ol> + </li> +</ol>` + } +} as const; + +function FontSizeTide(props: any) { + const fontSize = usePlaygroundStateSlice('fontSize'); + const setFontSize = usePlaygroundSetter('fontSize'); + return ( + <UISliderTideMolecule + leftIconName="format-size" + label="Font size" + minimumValue={10} + maximumValue={40} + step={1} + value={fontSize} + onValueChange={setFontSize} + {...props} + /> + ); +} + +function LineHeightTide(props: any) { + const lineHeight = usePlaygroundStateSlice('lineHeight'); + const setLineHeight = usePlaygroundSetter('lineHeight'); + return ( + <UISliderTideMolecule + leftIconName="format-line-spacing" + label="Line height" + minimumValue={1} + maximumValue={4} + step={0.1} + value={lineHeight} + onValueChange={setLineHeight} + {...props} + /> + ); +} + +function BoldTide(props: any) { + const isBold = usePlaygroundStateSlice('isBold'); + const setIsBold = usePlaygroundSetter('isBold'); + return ( + <UISwitchTideMolecule + leftIconName="format-bold" + label="Bold?" + value={isBold} + onValueChange={setIsBold} + {...props} + /> + ); +} + +function DynamicMarkerBoxTide(props: any) { + const isDynamic = usePlaygroundStateSlice('dynamicMarkerBox'); + const setIsDynamic = usePlaygroundSetter('dynamicMarkerBox'); + return ( + <UISwitchTideMolecule + leftIconName="arrow-expand-horizontal" + label="Dynamic Marker Box?" + value={isDynamic} + onValueChange={setIsDynamic} + {...props} + /> + ); +} + +function ItalicTide(props: any) { + const isItalic = usePlaygroundStateSlice('isItalic'); + const setIsItalic = usePlaygroundSetter('isItalic'); + return ( + <UISwitchTideMolecule + leftIconName="format-italic" + label="Italic?" + value={isItalic} + onValueChange={setIsItalic} + {...props} + /> + ); +} + +function FontFamilyTide(props: any) { + return ( + <UINavTideMolecule + leftIconName="format-font" + label="Font family" + route="PlaygroundFontFamily" + {...props} + /> + ); +} + +function ColorTide(props: any) { + return ( + <UINavTideMolecule + leftIconName="palette" + label="Color" + route="PlaygroundColor" + {...props} + /> + ); +} + +function OrderedListTypeTide(props: any) { + return ( + <UINavTideMolecule + leftIconName="format-list-numbered" + label="ol List type" + route="PlaygroundOlListType" + {...props} + /> + ); +} + +function UnorderedListTypeTide(props: any) { + return ( + <UINavTideMolecule + leftIconName="format-list-bulleted-type" + label="ul List type" + route="PlaygroundUlListType" + {...props} + /> + ); +} + +export default function PlaygroundLists() { + const { RefCssProperty, RefHtmlElement } = useToolkit(); + return ( + <PlaygroundTemplate sourceMap={sourceMap} initialSource="shortOl"> + <PlaygroundControls> + <UITideListAtom> + <FontSizeTide /> + <LineHeightTide /> + <DynamicMarkerBoxTide /> + <BoldTide /> + <ItalicTide /> + <FontFamilyTide /> + <ColorTide /> + <OrderedListTypeTide /> + <UnorderedListTypeTide /> + </UITideListAtom> + </PlaygroundControls> + <PlaygroundDescription> + <TextRoleNucleon role="body"> + Discover how <RefHtmlElement name="ul" /> and{' '} + <RefHtmlElement name="ol" /> elements react to varying style + constraints. The renderer for both is the same. The style of the + prefix (or marker in CSS terminology) is determined by{' '} + <RefCssProperty name="list-style-type" /> CSS property. + </TextRoleNucleon> + </PlaygroundDescription> + </PlaygroundTemplate> + ); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/CustomDrawerContent.tsx b/apps/discovery/src/components/screens/HomeDrawerScreen/CustomDrawerContent.tsx new file mode 100644 index 00000000..4cbe45f4 --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/CustomDrawerContent.tsx @@ -0,0 +1,91 @@ +import * as React from 'react'; +import { DrawerContentComponentProps } from '@react-navigation/drawer'; +import VersionDisplay from './VersionDisplay'; +import { View } from 'react-native'; +import { + useColorScheme, + useColorSchemeSetter +} from '../../../state/ColorSchemeProvider'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { useColorRoles } from '../../../theme/colorSystem'; +import DrawerItemList from './DrawerItemList'; +import { ScrollView } from 'react-native-gesture-handler'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import UISwitchTideMolecule from '../../UISwitchTideMolecule'; +import CardColorRolesProvider from '../../croles/CardColorRolesProvider'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; +import svgAssetsIndex from '../../../svgAssetsIndex'; +import { useSpacing } from '@mobily/stacks'; +import { HEADER_COLL_HEIGHT } from '../../../constants'; +import HeaderColorRolesProvider from '../../croles/HeaderColorRolesProvider'; + +const Logo = svgAssetsIndex.logo as any; + +function Footer() { + const { surface } = useColorRoles(); + const colorScheme = useColorScheme(); + const setColorScheme = useColorSchemeSetter(); + return ( + <BoxNucleon backgroundColor={surface.background} paddingY={0}> + <UISwitchTideMolecule + leftIconName="weather-night" + label="Dark" + value={colorScheme === 'dark'} + onValueChange={(v) => setColorScheme(v ? 'dark' : 'light')} + /> + <VersionDisplay /> + </BoxNucleon> + ); +} + +const LOGO_SIZE = 42; + +function Header() { + const { surface } = useColorRoles(); + return ( + <BoxNucleon + direction="row" + alignY="center" + backgroundColor={surface.background} + style={{ height: HEADER_COLL_HEIGHT }} + paddingBottom={2} + padding={1}> + <Logo height={LOGO_SIZE} width={LOGO_SIZE} /> + <TextRoleNucleon style={{ marginLeft: useSpacing(2) }} role="bodyBold"> + Discover RNRH + </TextRoleNucleon> + </BoxNucleon> + ); +} + +export default function CustomDrawerContent( + props: DrawerContentComponentProps +) { + const { surface, statusBarBackground } = useColorRoles(); + const { top } = useSafeAreaInsets(); + return ( + <> + <View + style={{ + height: top, + alignSelf: 'stretch', + backgroundColor: statusBarBackground + }} + /> + <HeaderColorRolesProvider> + <Header /> + </HeaderColorRolesProvider> + <ScrollView + {...props} + contentContainerStyle={{ + paddingTop: 0, + backgroundColor: surface.background + }}> + <DrawerItemList {...props} /> + </ScrollView> + <CardColorRolesProvider> + <Footer /> + </CardColorRolesProvider> + </> + ); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerItemList.tsx b/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerItemList.tsx new file mode 100644 index 00000000..d017e722 --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerItemList.tsx @@ -0,0 +1,97 @@ +import React from 'react'; +import { CommonActions, DrawerActions } from '@react-navigation/native'; +import type { DrawerContentComponentProps } from '@react-navigation/drawer'; +import UITideAtom from '../../UITideAtom'; +import { Stack } from '@mobily/stacks'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import { IconNucleonProps } from '../../nucleons/IconNucleon'; +import { useColorRoles } from '../../../theme/colorSystem'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; +import groupBy from './groupBy'; + +interface ItemDefinition { + index: number; + group: string; + groupLabel: string; + key: string; + name: string; + title: string; + drawerLabel: string; + iconName: IconNucleonProps['name']; +} + +/** + * Component that renders the navigation list in the drawer. + */ +export default function DrawerItemList({ + state, + navigation, + descriptors +}: DrawerContentComponentProps) { + const { surface } = useColorRoles(); + // const buildLink = useLinkBuilder(); + // const routes = state.routes as Array<{ key: string; }> + const routeDefinitions = state.routes.map( + ({ key, name }: { key: string; name: string }, index: number) => ({ + ...descriptors[key].options, + key, + name, + index + }) + ) as Array<ItemDefinition>; + const renderItem = ({ + key, + title, + drawerLabel, + iconName, + name, + index + }: ItemDefinition) => { + const focused = index === state.index; + return ( + <UITideAtom + key={key} + title={ + drawerLabel !== undefined + ? drawerLabel + : title !== undefined + ? title + : name + } + leftIconName={iconName} + active={focused} + // to={buildLink(route.name, route.params)} + onPress={() => { + navigation.dispatch({ + ...(focused + ? DrawerActions.closeDrawer() + : CommonActions.navigate(name)), + target: state.key + }); + }} + /> + ); + }; + const renderGroup = (name: string, defs: ItemDefinition[]) => { + return ( + <BoxNucleon key={name}> + <Stack space={1}> + <TextRoleNucleon + color={surface.secondaryContent} + role="sectionOutline"> + {name === 'root' ? 'Getting Started' : name} + </TextRoleNucleon> + {defs.map(renderItem)} + </Stack> + </BoxNucleon> + ); + }; + const groups = groupBy(routeDefinitions, 'group'); + return ( + <BoxNucleon paddingY={1} paddingX={1}> + <Stack space={4}> + {Object.entries(groups).map(([name, defs]) => renderGroup(name, defs))} + </Stack> + </BoxNucleon> + ); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerPlaygroundHeader.tsx b/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerPlaygroundHeader.tsx new file mode 100644 index 00000000..94488cca --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/DrawerPlaygroundHeader.tsx @@ -0,0 +1,23 @@ +import { DrawerHeaderProps } from '@react-navigation/drawer'; +import React from 'react'; +import UIAppbarActionAtom from '../../UIAppbarActionAtom'; +import UIAppbarContentAtom from '../../UIAppbarContentAtom'; +import UIHeaderAtom from '../../UIHeaderAtom'; + +export type StandardHeaderOrganismProps = DrawerHeaderProps; + +export default function DrawerPlaygroundHeader({ + options, + navigation +}: StandardHeaderOrganismProps) { + const onMenuPress = React.useCallback( + () => (navigation as any).openDrawer(), + [navigation] + ); + return ( + <UIHeaderAtom> + <UIAppbarActionAtom icon="menu" onPress={onMenuPress} /> + <UIAppbarContentAtom title={options.title} /> + </UIHeaderAtom> + ); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/VersionDisplay.tsx b/apps/discovery/src/components/screens/HomeDrawerScreen/VersionDisplay.tsx new file mode 100644 index 00000000..56482d25 --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/VersionDisplay.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +// @ts-ignore +import version from '../../../../version'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; +import { useColorRoles } from '../../../theme/colorSystem'; + +export default function VersionDisplay() { + const { bottom, left, right } = useSafeAreaInsets(); + const { surface } = useColorRoles(); + return ( + <View + style={{ + alignSelf: 'stretch', + marginBottom: bottom, + marginLeft: left, + marginRight: right, + padding: 10 + }}> + <TextRoleNucleon role="footer" color={surface.secondaryContent}> + Discovery {version.demo} + {'\n'} + rnrh {version.lib} + </TextRoleNucleon> + </View> + ); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/groupBy.ts b/apps/discovery/src/components/screens/HomeDrawerScreen/groupBy.ts new file mode 100644 index 00000000..4f76e55b --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/groupBy.ts @@ -0,0 +1,7 @@ +export default function groupBy<T, K extends keyof T>(xs: Array<T>, key: K) { + return xs.reduce(function (rv, x) { + //@ts-ignore + (rv[x[key]] = rv[x[key]] || []).push(x); + return rv; + }, {} as T[K] extends string ? Record<T[K], Array<T>> : never); +} diff --git a/apps/discovery/src/components/screens/HomeDrawerScreen/index.tsx b/apps/discovery/src/components/screens/HomeDrawerScreen/index.tsx new file mode 100644 index 00000000..f45833f7 --- /dev/null +++ b/apps/discovery/src/components/screens/HomeDrawerScreen/index.tsx @@ -0,0 +1,135 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import * as React from 'react'; +import { + createDrawerNavigator, + DrawerNavigationOptions +} from '@react-navigation/drawer'; +import { StackScreenProps } from '@react-navigation/stack'; +import CustomDrawerContent from './CustomDrawerContent'; +import DrawerPlaygroundHeader from './DrawerPlaygroundHeader'; +import useSurfaceBackgroundStyleNucleon from '../../nucleons/useSurfaceBackgroundStyleNucleon'; +import { pagesSpecs, PageGroup } from '@doc/pages'; +import ArticleTemplate from '../../templates/ArticleTemplate'; +import groupBy from './groupBy'; +import PlaygroundLists from '../../resources/PlaygroundLists'; +import { + ResourceRouteDefinition, + ResourceRoute, + resourceRoutesIndex +} from '../../../nav-model'; +import imagesMap from '../../../imagesMap'; +import { memo } from 'react'; + +interface ResourceRouteNav extends ResourceRouteDefinition { + component: React.ComponentType<any>; + header?: DrawerNavigationOptions['header']; +} + +const Drawer = createDrawerNavigator<Record<ResourceRoute, {}>>(); + +const initialRouteName: ResourceRoute = 'root-intro'; + +interface GroupDefinition { + groupLabel: string; + group: string; + header?: DrawerNavigationOptions['header']; + routes: Array<ResourceRouteNav>; +} + +const specsByGroups = groupBy( + Object.values(pagesSpecs).sort((a, b) => a.position - b.position), + 'group' +); + +const groups: Array<GroupDefinition> = Object.entries(specsByGroups).map( + ([groupName, pages], groupIndex, groupEntries) => { + const [_prevGroupName, prevGroupPages] = groupEntries[groupIndex - 1] || []; + const prevGroupLastPage = prevGroupPages + ? prevGroupPages?.[prevGroupPages?.length - 1] + : null; + const [_nextGroupName, nextGroupPages] = groupEntries[groupIndex + 1] || []; + const nextGroupFirstPage = nextGroupPages ? nextGroupPages?.[0] : null; + return { + group: groupName, + groupLabel: groupName, + routes: pages.map<ResourceRouteNav>((page, pageIndex) => { + return { + header: () => null, + component: function Page() { + const Content = memo(page.component); + const prevPage = pages[pageIndex - 1] || prevGroupLastPage || null; + const nextPage = pages[pageIndex + 1] || nextGroupFirstPage || null; + return ( + <ArticleTemplate + title={page.title} + groupLabel={groupName} + description={page.description} + prevPage={prevPage} + nextPage={nextPage} + imageSource={imagesMap[page.id]}> + {React.createElement(Content)} + </ArticleTemplate> + ); + }, + iconName: page.iconName as any, + name: `${groupName as PageGroup}-${page.id}` as const, + title: page.title + }; + }) + }; + } +); + +const playgroundsGroup: GroupDefinition = { + groupLabel: 'Playgrounds', + group: 'playgrounds', + header: (props) => <DrawerPlaygroundHeader {...props} />, + routes: [ + { + ...resourceRoutesIndex['playground-lists'], + component: PlaygroundLists + } + ] +}; + +function mapGroup({ + routes, + group, + groupLabel, + header: groupHeader +}: GroupDefinition) { + return routes.map(({ component, iconName, name, header, title }) => ( + <Drawer.Screen + component={component} + options={{ + //@ts-ignore + group, + groupLabel, + header: header || groupHeader, + title, + headerShown: true, + iconName, + unmountOnBlur: true + }} + key={name} + name={name} + /> + )); +} + +export default function HomeScreen({}: StackScreenProps<any>) { + return ( + <Drawer.Navigator + drawerContent={(props) => <CustomDrawerContent {...props} />} + initialRouteName={initialRouteName} + screenOptions={{ + headerShown: true, + headerTitleAllowFontScaling: true, + drawerHideStatusBarOnOpen: false, + drawerContentContainerStyle: useSurfaceBackgroundStyleNucleon() + }}> + {mapGroup(playgroundsGroup)} + {groups.map(mapGroup)} + </Drawer.Navigator> + ); +} diff --git a/apps/discovery/src/components/selectedRadioItemContextAtom.ts b/apps/discovery/src/components/selectedRadioItemContextAtom.ts new file mode 100644 index 00000000..6d2c1100 --- /dev/null +++ b/apps/discovery/src/components/selectedRadioItemContextAtom.ts @@ -0,0 +1,5 @@ +import { createContext } from 'react'; + +const selectedRadioItemContextAtom = createContext<string>(''); + +export default selectedRadioItemContextAtom; diff --git a/apps/discovery/src/components/templates/ArticleTemplate/AnimatedContextProvider.tsx b/apps/discovery/src/components/templates/ArticleTemplate/AnimatedContextProvider.tsx new file mode 100644 index 00000000..0877b540 --- /dev/null +++ b/apps/discovery/src/components/templates/ArticleTemplate/AnimatedContextProvider.tsx @@ -0,0 +1,29 @@ +import React, { PropsWithChildren, useContext } from 'react'; +import { + SharedValue, + useAnimatedScrollHandler, + useSharedValue +} from 'react-native-reanimated'; + +const animatedContext = React.createContext<{ + scrollAnim: SharedValue<number>; + onScroll: (...args: any[]) => void; +}>(null as any); + +export function useAnimatedContext() { + return useContext(animatedContext); +} + +export default function AnimatedContextProvider({ + children +}: PropsWithChildren<{}>) { + const scrollAnim = useSharedValue(0); + const onScroll = useAnimatedScrollHandler((event) => { + scrollAnim.value = event.contentOffset.y; + }); + return ( + <animatedContext.Provider value={{ scrollAnim, onScroll }}> + {children} + </animatedContext.Provider> + ); +} diff --git a/apps/discovery/src/components/templates/ArticleTemplate/ArticleHeader.tsx b/apps/discovery/src/components/templates/ArticleTemplate/ArticleHeader.tsx new file mode 100644 index 00000000..2bee3e5e --- /dev/null +++ b/apps/discovery/src/components/templates/ArticleTemplate/ArticleHeader.tsx @@ -0,0 +1,258 @@ +import { Stack, useSpacing } from '@mobily/stacks'; +import React, { PropsWithChildren, useEffect } from 'react'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import Animated, { + useAnimatedStyle, + useDerivedValue, + withSpring, + withRepeat, + useSharedValue, + SharedValue +} from 'react-native-reanimated'; +import { ImageBackground, ImageRequireSource, View } from 'react-native'; +import UIAppbarActionAtom from '../../UIAppbarActionAtom'; +import { useNavigation } from '@react-navigation/core'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; +import { useAnimatedContext } from './AnimatedContextProvider'; +import HeaderColorRolesProvider from '../../croles/HeaderColorRolesProvider'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import IconNucleon from '../../nucleons/IconNucleon'; +import { HEADER_COLL_HEIGHT } from '../../../constants'; + +export type ArticleHeaderProps = { + imageSource: ImageRequireSource; + title: string; + groupLabel: string; + width: number; + height: number; + description: string; +}; + +function useAnimatedChevron() { + const chevronScale = useSharedValue(1); + useEffect(() => { + chevronScale.value = 1.15; + }); + return useAnimatedStyle(() => { + const scale = withRepeat( + withSpring(chevronScale.value, { + velocity: 1, + damping: 1000, + stiffness: 10 + }), + -1, + true + ); + return { + transform: [ + { + scaleX: scale + }, + { + scaleY: scale + } + ] + }; + }); +} + +function AnimatedContainer({ + height, + width, + progress, + children +}: PropsWithChildren<{ + height: number; + width: number; + progress: SharedValue<number>; +}>) { + const { top: safeTop } = useSafeAreaInsets(); + const { scrollAnim } = useAnimatedContext(); + const animatedHeader = useAnimatedStyle(() => { + const dynamicHeight = Math.max( + height - Math.max(scrollAnim.value, 0), + HEADER_COLL_HEIGHT + safeTop + ); + return { + height: dynamicHeight, + top: 0, + position: 'absolute', + backgroundColor: 'rgba(0,0,32,0.92)', + width, + overflow: 'hidden', + opacity: Math.max(1 - progress.value, 0.2) + }; + }, [scrollAnim, progress, safeTop, width, height]); + return ( + <Animated.View pointerEvents="none" style={animatedHeader}> + {children} + </Animated.View> + ); +} + +function AnimatedFixedHeader({ + title, + progress +}: { + title: string; + progress: SharedValue<number>; +}) { + const navigation = useNavigation(); + const { top: safeTop } = useSafeAreaInsets(); + const onMenuPress = React.useCallback( + () => (navigation as any).openDrawer(), + [navigation] + ); + const animatedFixedHeader = useAnimatedStyle( + () => ({ + left: 0, + right: 0, + paddingTop: safeTop, + height: safeTop + HEADER_COLL_HEIGHT, + position: 'absolute', + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'flex-start', + backgroundColor: `rgba(0,0,32,${Math.min(progress.value, 0.9)})`, + flex: 0 + }), + [safeTop] + ); + const animatedTitleCollapsed = useAnimatedStyle(() => { + return { + textAlign: 'center', + opacity: progress.value, + flex: 1 + }; + }, [progress, safeTop]); + return ( + <Animated.View style={animatedFixedHeader}> + <UIAppbarActionAtom icon="menu" onPress={onMenuPress} /> + <Animated.Text numberOfLines={1} style={animatedTitleCollapsed}> + <TextRoleNucleon allowFontScaling={false} role="headerTitle"> + {title} + </TextRoleNucleon> + </Animated.Text> + <UIAppbarActionAtom + onPress={() => navigation.goBack()} + icon="chevron-left" + /> + </Animated.View> + ); +} + +function ArticleHeaderFullBody({ + width, + height, + progress, + title, + description, + groupLabel, + imageSource +}: { + width: number; + height: number; + progress: SharedValue<number>; + title: string; + groupLabel: string; + description: string; + imageSource: ImageRequireSource; +}) { + const animatedChevron = useAnimatedChevron(); + const { bottom: safeBottom } = useSafeAreaInsets(); + const animatedParallaxImage = useAnimatedStyle(() => { + const translateY = -1 * progress.value * height * 0.65; + return { + width, + height, + transform: [{ translateY }] + }; + }, [progress, height, width]); + return ( + <Animated.View style={animatedParallaxImage}> + <ImageBackground + resizeMode="cover" + resizeMethod="scale" + source={imageSource} + style={{ width, height }}> + <View + style={{ + backgroundColor: 'rgba(0,0,32,0.5)', + justifyContent: 'center', + flex: 1, + paddingBottom: safeBottom + }}> + <View + style={{ + paddingHorizontal: useSpacing(1), + alignItems: 'center', + justifyContent: 'space-between', + flex: 1 + }}> + <Stack + space={4} + style={{ + flex: 1, + justifyContent: 'center' + }}> + <TextRoleNucleon + style={{ textAlign: 'center' }} + allowFontScaling={false} + textBreakStrategy="highQuality" + role="headerTitleFull"> + {title} + </TextRoleNucleon> + <TextRoleNucleon + style={{ textTransform: 'uppercase', textAlign: 'center' }} + role="headerSubtitle"> + {groupLabel !== 'root' ? groupLabel : 'Getting Started'} + </TextRoleNucleon> + </Stack> + </View> + <BoxNucleon alignX="center" paddingX={1}> + <TextRoleNucleon + style={{ textAlign: 'center' }} + role="headerSubtitle"> + {description} + </TextRoleNucleon> + <Animated.View + style={[animatedChevron, { marginTop: useSpacing(2) }]}> + <IconNucleon size={48} name="chevron-double-down" /> + </Animated.View> + </BoxNucleon> + </View> + </ImageBackground> + </Animated.View> + ); +} + +export default function ArticleHeader({ + groupLabel, + height, + imageSource, + title, + width, + description +}: ArticleHeaderProps) { + const { scrollAnim } = useAnimatedContext(); + const progress = useDerivedValue(() => { + return 1 - Math.max(0, height - scrollAnim.value) / height; + }, [height, scrollAnim]); + + return ( + <HeaderColorRolesProvider> + <AnimatedContainer height={height} progress={progress} width={width}> + <ArticleHeaderFullBody + description={description} + groupLabel={groupLabel} + height={height} + imageSource={imageSource} + progress={progress} + title={title} + width={width} + /> + </AnimatedContainer> + <AnimatedFixedHeader progress={progress} title={title} /> + </HeaderColorRolesProvider> + ); +} diff --git a/apps/discovery/src/components/templates/ArticleTemplate/Scroller.ts b/apps/discovery/src/components/templates/ArticleTemplate/Scroller.ts new file mode 100644 index 00000000..d5b05667 --- /dev/null +++ b/apps/discovery/src/components/templates/ArticleTemplate/Scroller.ts @@ -0,0 +1,48 @@ +import { kebabCase as paramCase } from 'change-case'; +import { LayoutChangeEvent, ScrollView } from 'react-native'; +import { RefObject } from 'react'; +import Animated from 'react-native-reanimated'; +import { HEADER_COLL_HEIGHT } from '../../../constants'; + +export default class Scroller { + private layoutRegistry: Record<string, number> = {}; + public isLoaded = false; + private scrollRef: RefObject<ScrollView | null>; + private offset: number; + + constructor(scrollRef: RefObject<Animated.ScrollView | null>) { + this.scrollRef = scrollRef; + this.offset = 0; + } + + setIsLoaded() { + this.isLoaded = true; + } + + registerLayout(e: LayoutChangeEvent, title: string) { + const offsetY = e.nativeEvent.layout.y - HEADER_COLL_HEIGHT; + this.layoutRegistry[paramCase(title)] = offsetY; + } + + setOffset(offset: number) { + this.offset = offset; + } + + scrollTo(fragment: string) { + const offsetY = this.layoutRegistry[fragment]; + if (typeof offsetY === 'number') { + this.scrollRef.current?.scrollTo({ + y: offsetY + this.offset, + animated: true + }); + } else { + console.warn( + `There is no reference registered for fragment "${fragment}" to scroll to.` + ); + } + } + + scrollToTop() { + this.scrollRef.current?.scrollTo({ y: 0, animated: true }); + } +} diff --git a/apps/discovery/src/components/templates/ArticleTemplate/ScrollerProvider.tsx b/apps/discovery/src/components/templates/ArticleTemplate/ScrollerProvider.tsx new file mode 100644 index 00000000..c8b754e4 --- /dev/null +++ b/apps/discovery/src/components/templates/ArticleTemplate/ScrollerProvider.tsx @@ -0,0 +1,28 @@ +import React, { + PropsWithChildren, + RefObject, + useContext, + useMemo +} from 'react'; +import Animated from 'react-native-reanimated'; +import Scroller from './Scroller'; + +const scrollerContext = React.createContext<Scroller>(null as any); + +export function useScroller() { + return useContext(scrollerContext); +} + +export default function ScrollerProvider({ + children, + scrollRef +}: PropsWithChildren<{ + scrollRef: RefObject<Animated.ScrollView | null>; +}>) { + const index = useMemo(() => new Scroller(scrollRef), [scrollRef]); + return ( + <scrollerContext.Provider value={index}> + {children} + </scrollerContext.Provider> + ); +} diff --git a/apps/discovery/src/components/templates/ArticleTemplate/index.tsx b/apps/discovery/src/components/templates/ArticleTemplate/index.tsx new file mode 100644 index 00000000..4dc9b421 --- /dev/null +++ b/apps/discovery/src/components/templates/ArticleTemplate/index.tsx @@ -0,0 +1,196 @@ +import { useSpacing } from '@mobily/stacks'; +import React, { + PropsWithChildren, + RefObject, + useCallback, + useEffect, + useRef +} from 'react'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import AnimatedContextProvider, { + useAnimatedContext +} from './AnimatedContextProvider'; +import Animated from 'react-native-reanimated'; +import ArticleHeader from './ArticleHeader'; +import { ImageRequireSource, View } from 'react-native'; +import { + useFocusEffect, + useNavigation, + useRoute +} from '@react-navigation/core'; +import ScrollerProvider, { useScroller } from './ScrollerProvider'; +import { + useSafeAreaInsets, + useSafeAreaFrame +} from 'react-native-safe-area-context'; +import { PageSpecs } from '@doc/pages'; +import UITideAtom, { UITideAtomProps } from '../../UITideAtom'; + +export interface ArticleTemplateProps { + imageSource: ImageRequireSource; + title: string; + groupLabel: string; + description: string; + prevPage: PageSpecs | null; + nextPage: PageSpecs | null; +} + +interface ArticleProps extends ArticleTemplateProps { + fragment?: string; + scrollRef: RefObject<Animated.ScrollView | null>; + width: number; + headerHeight: number; +} + +const SCROLL_TO_DELAY = 500; + +function SiblingPageTide({ + target, + direction, + ...props +}: Omit<UITideAtomProps, 'title'> & { + target: PageSpecs; + direction: 'prev' | 'next'; +}) { + const navigation = useNavigation(); + return ( + <UITideAtom + {...props} + style={[ + { + minHeight: 60 + }, + props.style + ]} + active + leftIconName={direction === 'prev' ? 'chevron-left' : undefined} + rightIconName={direction === 'next' ? 'chevron-right' : undefined} + title={target.title} + align={direction === 'prev' ? 'left' : 'right'} + onPress={useCallback( + // @ts-ignore TODO: fix this + () => navigation.navigate(`${target.group}-${target.id}`), + [navigation, target] + )} + /> + ); +} + +function Article({ + children, + fragment, + scrollRef, + width, + headerHeight, + prevPage, + nextPage, + ...props +}: PropsWithChildren<ArticleProps>) { + const { onScroll } = useAnimatedContext(); + const { top: offsetTop, bottom: offsetBottom } = useSafeAreaInsets(); + const scroller = useScroller(); + useEffect( + function updateOffset() { + scroller.setOffset(headerHeight - offsetTop); + }, + [headerHeight, offsetTop, scroller] + ); + const scrollToFragment = useCallback( + function scrollToFragment() { + let timeout: any = null; + function scrollTo() { + if (fragment) { + if (scroller.isLoaded) { + scroller.scrollTo(fragment); + } else { + // reschedule + timeout = setTimeout(scrollTo, SCROLL_TO_DELAY); + } + } else { + scroller.scrollToTop(); + } + } + timeout = setTimeout(scrollTo, SCROLL_TO_DELAY); + return () => { + timeout !== null && clearTimeout(timeout); + }; + }, + [fragment, scroller] + ); + useFocusEffect(scrollToFragment); + const gap = useSpacing(1); + return ( + <> + <Animated.ScrollView + onScroll={onScroll} + ref={scrollRef} + style={{ width, height: headerHeight }} + onLayout={() => scroller.setIsLoaded()} + scrollEventThrottle={16} + contentContainerStyle={[ + { paddingTop: headerHeight, paddingBottom: offsetBottom } + ]}> + <BoxNucleon> + {children} + <BoxNucleon padding={1} alignY="stretch" direction="row"> + {prevPage ? ( + <SiblingPageTide + style={{ + flexGrow: 1, + flexShrink: 1, + justifyContent: 'center', + marginRight: nextPage ? gap : 0 + }} + direction="prev" + target={prevPage} + /> + ) : ( + <View style={{ flexGrow: 1, flexShrink: 0, minWidth: '50%' }} /> + )} + {nextPage ? ( + <SiblingPageTide + style={{ + flexGrow: 1, + flexShrink: 1, + justifyContent: 'center' + }} + direction="next" + target={nextPage} + /> + ) : ( + <View style={{ flexGrow: 1, flexShrink: 0, minWidth: '50%' }} /> + )} + </BoxNucleon> + </BoxNucleon> + </Animated.ScrollView> + <ArticleHeader + key={width} + height={headerHeight} + width={width} + {...props} + /> + </> + ); +} + +export default function ArticleTemplate( + props: PropsWithChildren<ArticleTemplateProps> +) { + const { params } = useRoute(); + const { height: safeFrameHeight, width: safeFrameWidth } = useSafeAreaFrame(); + const scrollRef = useRef<Animated.ScrollView>(null); + const fragment = (params as any)?.fragment; + return ( + <ScrollerProvider scrollRef={scrollRef}> + <AnimatedContextProvider> + <Article + {...props} + width={safeFrameWidth} + headerHeight={safeFrameHeight} + scrollRef={scrollRef} + fragment={fragment} + /> + </AnimatedContextProvider> + </ScrollerProvider> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/Playground.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/Playground.tsx new file mode 100644 index 00000000..bd4a2595 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/Playground.tsx @@ -0,0 +1,30 @@ +import React, { useState } from 'react'; +import { TNode } from 'react-native-render-html'; +import PlaygroundStoreProvider, { + PlaygroundInitParams +} from './playgroundStore'; +import Sheet, { SheetProps } from './Sheet'; +import PlaygroundDisplay from './PlaygroundDisplay'; +import CardColorRolesProvider from '../../croles/CardColorRolesProvider'; + +export interface PlaygroundTemplateProps<Sk extends string> + extends PlaygroundInitParams<Sk> { + children: SheetProps['children']; +} + +export default function PlaygroundTemplate<Sk extends string>({ + children, + ...storeInitParams +}: PlaygroundTemplateProps<Sk>) { + const [ttree, setTtree] = useState<TNode>(); + return ( + <> + <PlaygroundStoreProvider {...storeInitParams}> + <PlaygroundDisplay onTTreeChange={setTtree} /> + <CardColorRolesProvider> + <Sheet ttree={ttree}>{children}</Sheet> + </CardColorRolesProvider> + </PlaygroundStoreProvider> + </> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/PlaygroundDisplay.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/PlaygroundDisplay.tsx new file mode 100644 index 00000000..54522959 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/PlaygroundDisplay.tsx @@ -0,0 +1,102 @@ +import React, { useMemo } from 'react'; +import { ScrollView } from 'react-native-gesture-handler'; +import { StyleSheet } from 'react-native'; +import { RenderHTMLProps, TNode } from 'react-native-render-html'; +import { + PlaygroundInitParams, + usePlaygroundSource, + usePlaygroundState +} from './playgroundStore'; +import UIHtmlDisplayMolecule from '../../UIHtmlDisplayMolecule'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import { SheetProps } from './Sheet'; +import sheetSnapPoints from './sheetSnapPoints'; +import { useColorRoles } from '../../../theme/colorSystem'; +import { useNuclearContentWidth } from '../../nucleons/useContentWidthContext'; + +export interface PlaygroundTemplateProps<Sk extends string> + extends PlaygroundInitParams<Sk> { + children: SheetProps['children']; +} + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + paddingBottom: sheetSnapPoints[0] + } +}); + +export default function PlaygroundDisplay({ + onTTreeChange +}: { + onTTreeChange: (t: TNode) => void; +}) { + const html = usePlaygroundSource().source; + const { + fontFamily, + fontSize, + isItalic, + isBold, + dynamicMarkerBox, + lineHeight, + olListType, + ulListType, + color + } = usePlaygroundState(); + const fallbackColor = useColorRoles().surface.content; + const renderHtmlProps: RenderHTMLProps = useMemo( + () => ({ + renderersProps: { + ol: { + enableDynamicMarkerBoxWidth: dynamicMarkerBox + }, + ul: { + enableDynamicMarkerBoxWidth: dynamicMarkerBox + } + }, + baseStyle: { + color: color ?? fallbackColor, + fontSize, + lineHeight: lineHeight * fontSize, + fontFamily, + fontStyle: isItalic ? 'italic' : 'normal', + fontWeight: isBold ? 'bold' : 'normal' + }, + tagsStyles: { + ul: { + listStyleType: ulListType === 'default' ? undefined : ulListType + }, + ol: { + listStyleType: olListType === 'default' ? undefined : olListType + } + }, + source: { html }, + onTTreeChange + }), + [ + color, + fallbackColor, + fontSize, + lineHeight, + fontFamily, + isItalic, + isBold, + dynamicMarkerBox, + ulListType, + olListType, + html, + onTTreeChange + ] + ); + const contentWidth = useNuclearContentWidth(); + return ( + <ScrollView contentContainerStyle={styles.container}> + <BoxNucleon padding={0}> + <UIHtmlDisplayMolecule + renderHtmlProps={renderHtmlProps} + contentWidth={contentWidth} + /> + </BoxNucleon> + </ScrollView> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/Sheet.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/Sheet.tsx new file mode 100644 index 00000000..6638c7d3 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/Sheet.tsx @@ -0,0 +1,42 @@ +import React, { useMemo } from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import { TNode } from 'react-native-render-html'; +import UIBottomSheetAtom from '../../UIBottomSheetAtom'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import { demoStateContext } from './contexts'; +import { usePlaygroundSource } from './playgroundStore'; +import SheetChildrenRenderer, { TpChildren } from './SheetChildrenRenderer'; +import SheetNavigator from './SheetNavigator'; +import sheetSnapPoints from './sheetSnapPoints'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +export type SheetProps = { + ttree?: TNode; + style?: StyleProp<ViewStyle>; + children: TpChildren; +}; + +export default function Sheet({ ttree, children, style }: SheetProps) { + const html = usePlaygroundSource().source; + const { bottom: safeBottom } = useSafeAreaInsets(); + const value = useMemo(() => ({ html, ttree }), [html, ttree]); + + if ( + !sheetSnapPoints.every( + (p) => typeof p === 'string' || typeof p === 'number' + ) + ) + return; + + return ( + <UIBottomSheetAtom enableContentPanningGesture snapPoints={sheetSnapPoints}> + <demoStateContext.Provider value={value}> + <BoxNucleon grow style={[style, { paddingBottom: safeBottom }]}> + <SheetChildrenRenderer tpChildren={children}> + <SheetNavigator /> + </SheetChildrenRenderer> + </BoxNucleon> + </demoStateContext.Provider> + </UIBottomSheetAtom> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetChildrenRenderer.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetChildrenRenderer.tsx new file mode 100644 index 00000000..b2d8d953 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetChildrenRenderer.tsx @@ -0,0 +1,59 @@ +import React, { ComponentProps, isValidElement, ReactElement } from 'react'; +import createPortal from './createPortal'; + +type PortalComponent = ReturnType<typeof createPortal>; + +type PortalProps = ComponentProps<PortalComponent>; +type TpChild = ReactElement<PortalProps, PortalComponent>; +export type TpChildren = TpChild[]; + +export default function SheetChildrenRenderer({ + tpChildren, + children +}: { + children: ReactElement<{}>; + tpChildren: TpChildren; +}) { + let description: TpChild | undefined, + controls: TpChild | undefined, + navigator: TpChild | undefined; + + React.Children.forEach(tpChildren, (child) => { + if (isValidElement(child)) { + const childName = child.type.displayName; + if (childName.match('SheetControlsPortal')) { + controls = child; + } else if (childName.match('SheetDescriptionPortal')) { + description = child; + } else if (childName.match('SheetNavigatorPortal')) { + navigator = child; + } else { + console.warn( + `DemoOrganism only accepts DemoOrganism.Controls and DemoOrganism.Description child elements. Instead received: ${childName}` + ); + } + } + }); + if (!controls) { + console.warn('DemoOrganism is missing a DemoOrganism.Controls child'); + } + if (!description) { + console.warn('DemoOrganism is missing a DemoOrganism.Description child'); + } + const wrapper = navigator + ? React.cloneElement(navigator, { + ...navigator.props, + _tpChildren: children + }) + : children; + if (controls && description) { + return React.cloneElement(controls, { + ...controls.props, + _tpChildren: React.cloneElement(description, { + ...description.props, + _tpChildren: wrapper + }) + }); + } + return null; +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetControlsPortal.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetControlsPortal.ts new file mode 100644 index 00000000..0e848e00 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetControlsPortal.ts @@ -0,0 +1,9 @@ +import { demoControlsContext } from './contexts'; +import createPortal from './createPortal'; + +const SheetControlsPortal = createPortal( + demoControlsContext, + 'SheetControlsPortal' +); + +export default SheetControlsPortal; diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetDescriptionPortal.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetDescriptionPortal.ts new file mode 100644 index 00000000..a4b269ea --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetDescriptionPortal.ts @@ -0,0 +1,9 @@ +import { demoDescriptionContext } from './contexts'; +import createPortal from './createPortal'; + +const SheetDescriptionPortal = createPortal( + demoDescriptionContext, + 'SheetDescriptionPortal' +); + +export default SheetDescriptionPortal; diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigator.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigator.tsx new file mode 100644 index 00000000..1f1e7e1d --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigator.tsx @@ -0,0 +1,104 @@ +import React, { useMemo } from 'react'; +import { LogBox, View } from 'react-native'; +import { + StackHeaderProps, + StackNavigationOptions, + TransitionPresets +} from '@react-navigation/stack'; +import SheetRouteHome from './SheetRouteHome'; +import SheetStack from './SheetStack'; +import SheetRouteControls from './SheetRouteControls'; +import SheetSourceRoute from './SheetRouteSource'; +import SheetRouteFontFamily from './SheetRouteFontFamily'; +import SheetRouteOlListType from './SheetRouteOlListType'; +import SheetRouteUlListType from './SheetRouteUlListType'; +import useSurfaceBackgroundStyleNucleon from '../../nucleons/useSurfaceBackgroundStyleNucleon'; +import SheetRouteColor from './SheetRouteColor'; +import UIAppbarActionAtom from '../../UIAppbarActionAtom'; +import { useColorRoles } from '../../../theme/colorSystem'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; + +LogBox.ignoreLogs([ + "Accessing the 'state' property of the 'route' object is not supported." +]); + +const homeOptions = { header: () => null }; + +const controlsOptions = { title: 'Play' }; +const sourceOptions = { title: 'HTML Source' }; + +function PlaygroundSlimHeader({ navigation, ...otherProps }: StackHeaderProps) { + const { sheetHandle } = useColorRoles(); + return ( + <View + style={{ + flexDirection: 'row', + alignItems: 'center', + backgroundColor: sheetHandle.background + }}> + <UIAppbarActionAtom + size={20} + icon="arrow-left" + onPress={navigation.goBack} + /> + <TextRoleNucleon + role="headerSubtitle" + children={otherProps.options.title} + /> + </View> + ); +} + +export default function SheetNavigator() { + const contentStyle = useSurfaceBackgroundStyleNucleon(); + const screenOptions: StackNavigationOptions = useMemo( + () => ({ + ...TransitionPresets.SlideFromRightIOS, + headerShown: true, + headerMode: 'screen', + safeAreaInsets: { top: 0 }, + header: (props) => <PlaygroundSlimHeader {...props} />, + cardStyle: contentStyle + }), + [contentStyle] + ); + return ( + <SheetStack.Navigator screenOptions={screenOptions}> + <SheetStack.Screen + name="PlaygroundHome" + options={homeOptions} + component={SheetRouteHome} + /> + <SheetStack.Screen + name="PlaygroundControls" + options={controlsOptions} + component={SheetRouteControls} + /> + <SheetStack.Screen + name="PlaygroundSource" + options={sourceOptions} + component={SheetSourceRoute} + /> + <SheetStack.Screen + name="PlaygroundFontFamily" + options={{ title: 'Font family' }} + component={SheetRouteFontFamily} + /> + <SheetStack.Screen + name="PlaygroundOlListType" + options={{ title: 'Ol List Type' }} + component={SheetRouteOlListType} + /> + <SheetStack.Screen + name="PlaygroundUlListType" + options={{ title: 'Ul List Type' }} + component={SheetRouteUlListType} + /> + <SheetStack.Screen + name="PlaygroundColor" + options={{ title: 'Color' }} + component={SheetRouteColor} + /> + </SheetStack.Navigator> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigatorPortal.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigatorPortal.ts new file mode 100644 index 00000000..8a0cad41 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetNavigatorPortal.ts @@ -0,0 +1,9 @@ +import { demoNavigatorContext } from './contexts'; +import createPortal from './createPortal'; + +const SheetNavigatorPortal = createPortal( + demoNavigatorContext, + 'SheetNavigatorPortal' +); + +export default SheetNavigatorPortal; diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteColor.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteColor.tsx new file mode 100644 index 00000000..474831f0 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteColor.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { useColorRoles } from '../../../theme/colorSystem'; +import UIColorPickerControlAtom from '../../UIColorPickerControlAtom'; +import { + usePlaygroundStateSlice, + usePlaygroundSetter +} from './playgroundStore'; + +export default function SheetRouteColor() { + const color = usePlaygroundStateSlice('color'); + const { surface } = useColorRoles(); + const setColor = usePlaygroundSetter('color'); + return ( + <UIColorPickerControlAtom + initialValue={color ?? surface.content} + onSelectedValueChange={setColor} + /> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteContainer.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteContainer.tsx new file mode 100644 index 00000000..e18f942b --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteContainer.tsx @@ -0,0 +1,19 @@ +import { BottomSheetScrollView } from '@gorhom/bottom-sheet'; +import React, { PropsWithChildren } from 'react'; +import { StyleSheet } from 'react-native'; + +const styles = StyleSheet.create({ + flex: { flexGrow: 1 } +}); + +export default function SheetRouteContainer({ + children +}: PropsWithChildren<{}>) { + return ( + <BottomSheetScrollView + contentContainerStyle={styles.flex} + style={styles.flex}> + {children} + </BottomSheetScrollView> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteControls.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteControls.tsx new file mode 100644 index 00000000..bb39b201 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteControls.tsx @@ -0,0 +1,8 @@ +import React, { useContext } from 'react'; +import { demoControlsContext } from './contexts'; +import SheetRouteContainer from './SheetRouteContainer'; + +export default function SheetRouteControls() { + const controls = useContext(demoControlsContext); + return <SheetRouteContainer>{controls}</SheetRouteContainer>; +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteFontFamily.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteFontFamily.tsx new file mode 100644 index 00000000..c831cd1e --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteFontFamily.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import UIRadioListControlMolecule, { + RadioListControlProps +} from '../../UIRadioListControlMolecule'; +import { + usePlaygroundStateSlice, + usePlaygroundSetter +} from './playgroundStore'; +import { SYSTEM_FONTS } from '../../../constants'; + +const getLabelStyle: RadioListControlProps<string>['labelStyle'] = ({ + value +}) => ({ + fontFamily: value +}); + +export default function SheetRouteFontFamily() { + const fontFamily = usePlaygroundStateSlice('fontFamily'); + const setFontFamily = usePlaygroundSetter('fontFamily'); + return ( + <UIRadioListControlMolecule + selectedValue={fontFamily} + onSelectedValueChange={setFontFamily} + items={SYSTEM_FONTS} + labelStyle={getLabelStyle} + /> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteHome.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteHome.tsx new file mode 100644 index 00000000..84e2ee7b --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteHome.tsx @@ -0,0 +1,31 @@ +import { Stack } from '@mobily/stacks'; +import React, { useContext } from 'react'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import UINavTideMolecule from '../../UINavTideMolecule'; +import { demoDescriptionContext } from './contexts'; +import SheetRouteContainer from './SheetRouteContainer'; + +export default function SheetRouteHome() { + const description = useContext(demoDescriptionContext); + return ( + <SheetRouteContainer> + <Stack space={2}> + <UINavTideMolecule + route="PlaygroundControls" + label="Play" + description="Change component props and observe how the rendered snippet adjusts." + leftIconName="gamepad-circle" + /> + <UINavTideMolecule + route="PlaygroundSource" + label="Change and inspect HTML source" + description="Select and inspect a HTML snippet, watch the transient render tree." + leftIconName="language-html5" + /> + <BoxNucleon padding={2}> + <Stack space={2}>{description}</Stack> + </BoxNucleon> + </Stack> + </SheetRouteContainer> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteOlListType.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteOlListType.tsx new file mode 100644 index 00000000..2bbe90f2 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteOlListType.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import UIRadioListControlMolecule from '../../UIRadioListControlMolecule'; +import { + usePlaygroundStateSlice, + usePlaygroundSetter, + olListTypes +} from './playgroundStore'; + +export default function SheetRouteOlListType() { + const olListType = usePlaygroundStateSlice('olListType'); + const setListType = usePlaygroundSetter('olListType'); + return ( + <UIRadioListControlMolecule + selectedValue={olListType} + onSelectedValueChange={setListType} + items={olListTypes} + /> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteSource.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteSource.tsx new file mode 100644 index 00000000..2ae2c5bd --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteSource.tsx @@ -0,0 +1,124 @@ +import { Stack } from '@mobily/stacks'; +import React, { PropsWithChildren, useContext, useMemo } from 'react'; +import { StyleProp, ViewStyle } from 'react-native'; +import UIRadioGroupControlMolecule from '../../UIRadioGroupControlMolecule'; +import UISourceDisplayMolecule from '../../UISourceDisplayMolecule'; +import UITTreeDisplayMolecule from '../../UITTreeDisplayMolecule'; +import BoxNucleon from '../../nucleons/BoxNucleon'; +import { demoStateContext } from './contexts'; +import SheetRouteContainer from './SheetRouteContainer'; +import { + usePlaygroundSetter, + usePlaygroundStateSlice +} from './playgroundStore'; +import { useColorPrimitives, useColorRoles } from '../../../theme/colorSystem'; +import { PropsWithStyle } from '../../nucleons/types'; +import TextRoleNucleon from '../../nucleons/TextRoleNucleon'; + +function SourceSectionTitle({ + title, + style +}: PropsWithStyle<{ title: string }>) { + const { surface } = useColorRoles(); + return ( + <BoxNucleon padding={1} style={style}> + <TextRoleNucleon + role="sectionOutline" + align="start" + color={surface.secondaryContent}> + {title} + </TextRoleNucleon> + </BoxNucleon> + ); +} + +function SourceRouteSection({ + children, + title, + style +}: PropsWithChildren<{ + style?: StyleProp<ViewStyle>; + title: string; +}>) { + return ( + <BoxNucleon style={style}> + <Stack space={0}> + <SourceSectionTitle title={title} /> + <BoxNucleon>{children}</BoxNucleon> + </Stack> + </BoxNucleon> + ); +} + +function SourceBoxAtom({ + children, + padding, + style +}: PropsWithChildren<{ style?: StyleProp<ViewStyle>; padding?: number }>) { + const { surface: background } = useColorPrimitives(); + return ( + <BoxNucleon + padding={padding} + style={style} + backgroundColor={background.content} + // color={background.color} + > + {children} + </BoxNucleon> + ); +} + +function HtmlDisplayBox({ html, style }: { html: string; style?: any }) { + return ( + <SourceBoxAtom style={style}> + <UISourceDisplayMolecule + clipLines + content={html} + paddingVertical={2} + language="html" + showLineNumbers={false} + /> + </SourceBoxAtom> + ); +} + +export default function SheetSourceRoute() { + const ttree = useContext(demoStateContext).ttree; + const html = useContext(demoStateContext).html; + const sourceMap = usePlaygroundStateSlice('sourceMap'); + const selectedSource = usePlaygroundStateSlice('selectedSource'); + const setSelectedSource = usePlaygroundSetter('selectedSource'); + const items = useMemo( + () => + Object.keys(sourceMap).map((key) => ({ + label: sourceMap[key].label, + value: key + })), + [sourceMap] + ); + return ( + <SheetRouteContainer> + <BoxNucleon> + <Stack space={4}> + <SourceRouteSection title="Select source"> + <UIRadioGroupControlMolecule + selectedValue={selectedSource} + onSelectedValueChange={setSelectedSource} + items={items} + /> + </SourceRouteSection> + <SourceRouteSection title="HTML source"> + <HtmlDisplayBox html={html} /> + </SourceRouteSection> + <SourceRouteSection title="Transient Render Tree"> + <UITTreeDisplayMolecule + paddingVertical={2} + clipLines + ttree={ttree} + /> + </SourceRouteSection> + </Stack> + </BoxNucleon> + </SheetRouteContainer> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteUlListType.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteUlListType.tsx new file mode 100644 index 00000000..6152bcf9 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetRouteUlListType.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import UIRadioListControlMolecule from '../../UIRadioListControlMolecule'; +import { + usePlaygroundStateSlice, + usePlaygroundSetter, + ulListTypes +} from './playgroundStore'; + +export default function SheetRouteUlListType() { + const ulListType = usePlaygroundStateSlice('ulListType'); + const setUlListType = usePlaygroundSetter('ulListType'); + return ( + <UIRadioListControlMolecule + selectedValue={ulListType} + onSelectedValueChange={setUlListType} + items={ulListTypes} + /> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/SheetStack.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetStack.tsx new file mode 100644 index 00000000..854c6e9e --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/SheetStack.tsx @@ -0,0 +1,5 @@ +import { createStackNavigator } from '@react-navigation/stack'; + +const SheetStack = createStackNavigator(); + +export default SheetStack; diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/contexts.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/contexts.ts new file mode 100644 index 00000000..9bea16f1 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/contexts.ts @@ -0,0 +1,10 @@ +import { createContext, ReactNode } from 'react'; +import { TNode } from 'react-native-render-html'; + +export const demoDescriptionContext = createContext<ReactNode>(null); +export const demoControlsContext = createContext<ReactNode>(null); +export const demoNavigatorContext = createContext<ReactNode>(null); +export const demoStateContext = createContext<{ html: string; ttree?: TNode }>({ + html: '', + ttree: undefined +}); diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/createPortal.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/createPortal.ts new file mode 100644 index 00000000..dc350021 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/createPortal.ts @@ -0,0 +1,21 @@ +import React, { Context, PropsWithChildren, ReactNode } from 'react'; + +type PortalProps = PropsWithChildren<{ _tpChildren?: ReactNode }>; + +export default function createPortal( + context: Context<ReactNode>, + name: string +) { + const Portal = function ({ children, _tpChildren }: PortalProps) { + return React.createElement( + context.Provider, + { + value: children + }, + _tpChildren + ); + }; + Portal.displayName = name; + Portal.portalId = Symbol(name); + return Portal; +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/index.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/index.tsx new file mode 100644 index 00000000..d7232b76 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/index.tsx @@ -0,0 +1,18 @@ +import PlaygroundTemplate from './Playground'; +import SheetControlsPortal from './SheetControlsPortal'; +import SheetDescriptionPortal from './SheetDescriptionPortal'; +import SheetNavigatorPortal from './SheetNavigatorPortal'; +import SheetRouteContainer from './SheetRouteContainer'; +import SheetStack from './SheetStack'; + +const PlaygroundScreen = SheetStack.Screen; + +export { + SheetControlsPortal as PlaygroundControls, + SheetDescriptionPortal as PlaygroundDescription, + SheetNavigatorPortal as PlaygroundNavigator, + SheetRouteContainer as PlaygroundRouteContainer, + PlaygroundScreen +}; + +export default PlaygroundTemplate; diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/playgroundStore.tsx b/apps/discovery/src/components/templates/PlaygroundTemplate/playgroundStore.tsx new file mode 100644 index 00000000..47402f5f --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/playgroundStore.tsx @@ -0,0 +1,153 @@ +import React, { Dispatch } from 'react'; +import { PropsWithChildren, Reducer, useCallback, useReducer } from 'react'; +import { Platform } from 'react-native'; +import { + createContext, + useContextSelector, + useContext +} from 'use-context-selector'; + +export const olListTypes = [ + 'default', + 'decimal', + 'lower-alpha', + 'upper-alpha', + 'lower-greek', + 'lower-roman', + 'upper-roman', + 'decimal-leading-zero', + 'none' +] as const; + +export const ulListTypes = [ + 'default', + 'disk', + 'circle', + 'square', + 'disclosure-open', + 'disclosure-closed', + 'none' +] as const; + +type OlListType = (typeof olListTypes)[number]; +type UlListType = (typeof ulListTypes)[number]; + +export interface PlaygroundMutableState<Sk extends string> { + fontSize: number; + color: string | undefined; + lineHeight: number; + olListType: OlListType; + ulListType: UlListType; + isBold: boolean; + isItalic: boolean; + dynamicMarkerBox: boolean; + fontFamily: string; + selectedSource: Sk; +} + +export interface PlaygroundState<Sk extends string> + extends PlaygroundMutableState<Sk> { + sourceMap: SourceMap<Sk>; +} + +type Mutate<Sk extends string, K extends keyof PlaygroundMutableState<Sk>> = { + target: K; + value: PlaygroundMutableState<Sk>[K]; +}; + +export type SourceMap<Sk extends string> = Record< + Sk, + { + label: string; + source: string; + } +>; +export interface PlaygroundInitParams<Sk extends string> { + sourceMap: SourceMap<Sk>; + initialSource: Sk; +} + +const playgroundStoreContext = createContext<PlaygroundMutableState<string>>( + {} as any +); +const playgroundDispatchContext = createContext< + Dispatch<Mutate<string, keyof PlaygroundMutableState<string>>> +>(() => {}); + +function getInitialState<Sk extends string>({ + sourceMap, + initialSource +}: PlaygroundInitParams<Sk>): PlaygroundState<Sk> { + return { + fontSize: 14, + lineHeight: 1.2, + olListType: 'default', + ulListType: 'default', + color: undefined, + fontFamily: Platform.select({ + android: 'Roboto', + ios: 'San Francisco', + macos: 'San Francisco', + windows: 'Segoe UI', + default: 'sans-serif' + }), + isBold: false, + isItalic: false, + dynamicMarkerBox: false, + selectedSource: initialSource, + sourceMap + }; +} + +export function usePlaygroundStateSlice< + Sk extends string, + K extends keyof PlaygroundState<Sk> +>(k: K): PlaygroundState<Sk>[K] { + const selector = useCallback((s: PlaygroundState<Sk>) => s[k], [k]); + return useContextSelector(playgroundStoreContext as any, selector); +} + +export function usePlaygroundSource() { + const selectedSource = usePlaygroundStateSlice('selectedSource'); + const sourceMap = usePlaygroundStateSlice('sourceMap'); + return sourceMap[selectedSource]; +} + +export function usePlaygroundState() { + return useContext(playgroundStoreContext); +} + +export function usePlaygroundSetter< + Sk extends string, + K extends keyof PlaygroundMutableState<Sk> +>(k: K): (v: PlaygroundMutableState<Sk>[K]) => void { + const dispatch = useContext(playgroundDispatchContext); + return useCallback( + (v: PlaygroundMutableState<Sk>[K]) => dispatch({ value: v, target: k }), + [k, dispatch] + ); +} + +const reducer: Reducer< + PlaygroundMutableState<any>, + Mutate<any, keyof PlaygroundMutableState<any>> +> = function reducer(state, action) { + return { + ...state, + [action.target]: action.value + }; +}; + +export default function PlaygroundStoreProvider<Sk extends string>({ + children, + ...initParams +}: PropsWithChildren<PlaygroundInitParams<Sk>>) { + const [state, dispatch] = useReducer(reducer, initParams, getInitialState); + return ( + <playgroundDispatchContext.Provider value={dispatch}> + <playgroundStoreContext.Provider value={state}> + {children} + </playgroundStoreContext.Provider> + </playgroundDispatchContext.Provider> + ); +} diff --git a/apps/discovery/src/components/templates/PlaygroundTemplate/sheetSnapPoints.ts b/apps/discovery/src/components/templates/PlaygroundTemplate/sheetSnapPoints.ts new file mode 100644 index 00000000..4e523620 --- /dev/null +++ b/apps/discovery/src/components/templates/PlaygroundTemplate/sheetSnapPoints.ts @@ -0,0 +1,5 @@ +import { DimensionValue } from 'react-native'; + +const sheetSnapPoints: DimensionValue[] = [240, '50%', '65%']; + +export default sheetSnapPoints; diff --git a/apps/discovery/src/constants/index.ts b/apps/discovery/src/constants/index.ts new file mode 100644 index 00000000..cb476242 --- /dev/null +++ b/apps/discovery/src/constants/index.ts @@ -0,0 +1,27 @@ +import Constants from 'expo-constants'; +import { filter, pipe, uniq } from 'ramda'; + +const normalizeFonts = pipe<string[][], string[], string[]>( + uniq, + filter<string>( + (c) => + !c.match( + /bold|italic|semi|regular|extra|ultra|light|black|medium|thin|-/i + ) + ) +); + +const SYSTEM_FONTS = normalizeFonts([...Constants.systemFonts, 'space-mono']); +const BODY_CHAPTER_SPACING = 16; +const BODY_VERTICAL_SPACING = 12; +const BODY_HZ_SPACING = 2; +const BODY_PARAGRAPH_SPACING = 8; +const HEADER_COLL_HEIGHT = 54; +export { + SYSTEM_FONTS, + BODY_CHAPTER_SPACING, + BODY_PARAGRAPH_SPACING, + BODY_HZ_SPACING, + BODY_VERTICAL_SPACING, + HEADER_COLL_HEIGHT +}; diff --git a/apps/discovery/src/highlight/Highlighter.tsx b/apps/discovery/src/highlight/Highlighter.tsx new file mode 100644 index 00000000..15adbdce --- /dev/null +++ b/apps/discovery/src/highlight/Highlighter.tsx @@ -0,0 +1,256 @@ +import React, { + createContext, + PropsWithChildren, + useContext, + useMemo +} from 'react'; +import { createLowlight } from 'lowlight'; +import { + StyleProp, + Text, + TextStyle, + View, + ViewProps, + StyleSheet +} from 'react-native'; +import StylesheetsProvider, { HighlightJsStyles } from './StylesheetsProvider'; +import highlighterStylesheetsContext from './highlighterStylesheetsContext'; +import generateLines, { SimpleNode } from './generateLines'; +import bash from 'highlight.js/lib/languages/bash'; +import xml from 'highlight.js/lib/languages/xml'; + +const { highlight, register, registerAlias } = createLowlight(); +register({ bash, xml }); +registerAlias({ xml: ['html', 'jsx'] }); + +export interface HighlighterProps extends ViewProps { + content: string; + language: 'html' | 'js' | 'jsx' | 'xml'; + highlightJsStyle: HighlightJsStyles; + fontSize?: number; + fontFamily?: string; + lineNumberFontSize?: number; + lineNumberFontFamily?: string; + lineNumberStyle?: StyleProp<TextStyle>; + lineStyle?: StyleProp<TextStyle>; + /** + * When `true`, end overflowing lines with ellipsis. + */ + clipLines?: boolean; + paddingTop?: number; + paddingBottom?: number; + showLineNumbers?: boolean; + /** + * A function which returns a string representation of the line number. + * + * @example + * ```js + * function lineNumberFormatter(lineNumber) { + * return Number(lineNumber).toFixed(0).padStart(2, '0'); + * } + * ``` + */ + lineNumberFormatter?: (lineNumber: number) => string; + /** + * A function to compute the desired width of the line number display. + */ + lineNumberDisplayWidthComputer?: ( + fontSize: number, + maxLineNumberCharLength: number + ) => number; +} + +const styles = StyleSheet.create({ + line: { flexDirection: 'row' }, + container: { flexGrow: 1, flexDirection: 'column', overflow: 'hidden' } +}); + +function RenderLine({ + line, + index +}: PropsWithChildren<{ line: SimpleNode[]; index: number }>) { + const { + clipLines, + lineStyle, + lineNumberStyle, + lineNumberFormatter, + showLineNumbers + } = useContext(formattingSpecContext); + const content = ( + <Text + numberOfLines={clipLines ? 1 : undefined} + lineBreakMode="tail" + textBreakStrategy="simple" + style={lineStyle}> + {line.map((n, i) => + React.createElement(RenderSimpleNode, { node: n, key: i }) + )} + </Text> + ); + if (!showLineNumbers) { + return content; + } + return ( + <View style={styles.line}> + <Text style={lineNumberStyle}>{lineNumberFormatter(index + 1)}</Text> + {content} + </View> + ); +} + +function RenderSimpleNode({ node }: { node: SimpleNode }) { + const { contentStylesheet } = useContext(highlighterStylesheetsContext); + const className = node.className; + return ( + <Text style={className?.map((n) => contentStylesheet[n])}>{node.text}</Text> + ); +} + +function RenderDocument({ lines }: { lines: SimpleNode[][] }) { + return ( + <> + {lines.map((l, i) => + React.createElement(RenderLine, { line: l, key: i, index: i }) + )} + </> + ); +} +type FormattingSpecs = Pick< + Required<HighlighterProps>, + | 'lineNumberStyle' + | 'lineStyle' + | 'lineNumberFormatter' + | 'clipLines' + | 'showLineNumbers' +>; + +const formattingSpecContext = createContext<FormattingSpecs>({} as any); + +function Padding({ + lineNumberStyle, + value +}: { + lineNumberStyle: TextStyle; + value?: number; +}) { + const { showLineNumbers } = useContext(formattingSpecContext); + if (!value) { + return null; + } + const { backgroundColor, width } = lineNumberStyle; + return ( + <Text + style={[showLineNumbers && { backgroundColor }, { height: value, width }]} + /> + ); +} + +const defaultLineNumberFormatter = (number: number) => + Number(number).toFixed(0); + +const defaultLineNumberDisplayWidthComputer = ( + fontSize: number, + lenght: number +) => { + return fontSize * lenght; +}; + +function HighlighterContent({ + content, + language, + clipLines = false, + fontSize = 14, + fontFamily, + lineNumberFontFamily, + lineNumberFontSize, + lineNumberStyle: userLineNumberStyle, + lineStyle: userLineStyle, + style, + paddingTop, + paddingBottom, + showLineNumbers = false, + lineNumberFormatter = defaultLineNumberFormatter, + lineNumberDisplayWidthComputer = defaultLineNumberDisplayWidthComputer, + ...viewProps +}: Omit<HighlighterProps, 'highlightJsStyle'>) { + const lines = useMemo( + () => generateLines(highlight(language, content)), + [content, language] + ); + const { containerStylesheet } = useContext(highlighterStylesheetsContext); + const syntheticLineNumberFontSize = lineNumberFontSize ?? fontSize; + const syntheticLineNumberFontFamily = lineNumberFontFamily ?? fontFamily; + const lineStyle = useMemo( + () => [ + containerStylesheet.text, + { + flexGrow: 1, + flexShrink: 1, + fontFamily, + fontSize, + lineHeight: fontSize * 1.4 + }, + userLineStyle + ], + [containerStylesheet.text, fontFamily, fontSize, userLineStyle] + ); + const lineNumberWidth = useMemo(() => { + const numberDisplayLength = lineNumberFormatter(lines.length + 1).length; + return lineNumberDisplayWidthComputer(fontSize, numberDisplayLength); + }, [ + fontSize, + lineNumberDisplayWidthComputer, + lineNumberFormatter, + lines.length + ]); + const lineNumberStyle: TextStyle = useMemo(() => { + return StyleSheet.flatten([ + containerStylesheet.text, + { + width: lineNumberWidth, + textAlign: 'center', + overflow: 'visible', + fontSize: syntheticLineNumberFontSize, + fontFamily: syntheticLineNumberFontFamily, + flexShrink: 0 + }, + userLineNumberStyle + ]); + }, [ + containerStylesheet.text, + lineNumberWidth, + syntheticLineNumberFontFamily, + syntheticLineNumberFontSize, + userLineNumberStyle + ]); + return ( + <formattingSpecContext.Provider + key={content} + value={{ + clipLines, + lineNumberFormatter, + lineNumberStyle, + lineStyle, + showLineNumbers + }}> + <View + style={[containerStylesheet.container, styles.container, style]} + {...viewProps}> + <Padding lineNumberStyle={lineNumberStyle} value={paddingTop} /> + <RenderDocument lines={lines} /> + <Padding lineNumberStyle={lineNumberStyle} value={paddingBottom} /> + </View> + </formattingSpecContext.Provider> + ); +} + +export default function Highlighter({ + highlightJsStyle = 'darcula', + ...props +}: HighlighterProps) { + return ( + <StylesheetsProvider style={highlightJsStyle}> + <HighlighterContent {...props} /> + </StylesheetsProvider> + ); +} diff --git a/apps/discovery/src/highlight/StylesheetsProvider.tsx b/apps/discovery/src/highlight/StylesheetsProvider.tsx new file mode 100644 index 00000000..d5561382 --- /dev/null +++ b/apps/discovery/src/highlight/StylesheetsProvider.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import { PropsWithChildren } from 'react'; +import highlighterStylesheetsContext from './highlighterStylesheetsContext'; +import lazyStylesheetRegistry, { + HighlightJsStyles +} from './lazyStylesheetRegistry'; + +export { HighlightJsStyles }; + +export default function StylesheetsProvider({ + children, + style +}: PropsWithChildren<{ + style: HighlightJsStyles; +}>) { + const value = lazyStylesheetRegistry[style]; + if (!value) { + console.warn( + `There is no corresponding highlight.js style with name "${style}".` + ); + return null; + } + return ( + <highlighterStylesheetsContext.Provider value={value}> + {children} + </highlighterStylesheetsContext.Provider> + ); +} diff --git a/apps/discovery/src/highlight/createStylesheets.ts b/apps/discovery/src/highlight/createStylesheets.ts new file mode 100644 index 00000000..ef260dfc --- /dev/null +++ b/apps/discovery/src/highlight/createStylesheets.ts @@ -0,0 +1,23 @@ +import { CSSProperties } from 'react'; +import { StyleSheet, TextStyle } from 'react-native'; +import normalizeStylesheet from './normalizeStylesheet'; + +type HljsStylsheet = Record<string, CSSProperties>; + +export type HighlighterStylesheets = ReturnType<typeof createStylesheets>; + +export default function createStylesheets(hljsStylesheet: HljsStylsheet) { + const normalizedStyles = normalizeStylesheet(hljsStylesheet); + const { backgroundColor, color } = normalizedStyles.hljs; + const containerStylesheet = StyleSheet.create({ + container: { backgroundColor: backgroundColor as string }, + text: { color } + }); + const contentStylesheet = StyleSheet.create( + normalizedStyles as Record<string, TextStyle> + ); + return { + containerStylesheet, + contentStylesheet + }; +} diff --git a/apps/discovery/src/highlight/generateLines.tsx b/apps/discovery/src/highlight/generateLines.tsx new file mode 100644 index 00000000..c63516fa --- /dev/null +++ b/apps/discovery/src/highlight/generateLines.tsx @@ -0,0 +1,86 @@ +import { Element, Parent, Root, RootContent, Text } from 'hast'; +import { Node } from 'unist'; + +const nodeIsParent = (node: Node): node is Parent => + Boolean((node as Parent).children); +const nodeIsText = (node: Node): node is Text => node.type === 'text'; +const childIsElement = (child: RootContent): child is Element => + child.type === 'element'; +const childIsText = (child: RootContent): child is Text => + child.type === 'text'; +/** + * Transform this complex tree into a flatten tree with simple nodes + * + * @param node + */ +function flattenNodes(node: Node): SimpleNode[] { + if (nodeIsParent(node)) { + return node.children.flatMap((child) => { + if (childIsElement(child)) { + return flattenNodes(child); + } + if (childIsText(child)) { + return { type: 'simple', text: child.value }; + } + throw new Error('Unexpected state!'); + }); + } + if (nodeIsText(node)) { + return [{ type: 'simple', text: node.value }]; + } + throw new Error('Unhandled state!'); +} + +const linebreak = Symbol('linebreak'); + +type LineBreak = typeof linebreak; + +function insertLines( + flattenNodes: SimpleNode[] +): Array<SimpleNode | LineBreak> { + return flattenNodes + .map((node) => { + const lines = node.text.split('\n'); + if (lines.length > 1) { + return lines.reduce<Array<SimpleNode | LineBreak>>( + (previous, text) => { + const current = { + type: 'simple', + text, + className: node.className + } as const; + if (previous.length) { + return [...previous, linebreak, current]; + } + return [current]; + }, + [] as Array<SimpleNode | LineBreak> + ); + } + return node; + }) + .flat(); +} + +function makeLines(nodes: Array<SimpleNode | LineBreak>): SimpleNode[][] { + let breakIndex: number; + const lines: SimpleNode[][] = []; + while ((breakIndex = nodes.indexOf(linebreak)) !== -1) { + const line = nodes.splice(0, breakIndex); + nodes.shift(); + lines.push(line as SimpleNode[]); + } + lines.push(nodes as SimpleNode[]); + return lines; +} + +export type SimpleNode = { + type: 'simple'; + text: string; + className?: string[]; +}; + +export default function generateLines({ children }: Root): SimpleNode[][] { + const flattenTree = children.flatMap(flattenNodes); + return makeLines(insertLines(flattenTree)); +} diff --git a/apps/discovery/src/highlight/highlighterStylesheetsContext.ts b/apps/discovery/src/highlight/highlighterStylesheetsContext.ts new file mode 100644 index 00000000..d8549afd --- /dev/null +++ b/apps/discovery/src/highlight/highlighterStylesheetsContext.ts @@ -0,0 +1,8 @@ +import { createContext } from 'react'; +import { HighlighterStylesheets } from './createStylesheets'; + +const highlighterStylesheetsContext = createContext<HighlighterStylesheets>( + {} as any +); + +export default highlighterStylesheetsContext; diff --git a/apps/discovery/src/highlight/lazyStylesheetRegistry.ts b/apps/discovery/src/highlight/lazyStylesheetRegistry.ts new file mode 100644 index 00000000..4003a846 --- /dev/null +++ b/apps/discovery/src/highlight/lazyStylesheetRegistry.ts @@ -0,0 +1,22 @@ +import createStylesheets, { HighlighterStylesheets } from './createStylesheets'; +import * as styles from 'react-syntax-highlighter/dist/esm/styles/hljs'; + +export type HighlightJsStyles = keyof typeof styles; + +const lazyStylesheetRegistry = new Proxy< + Record<keyof typeof styles, HighlighterStylesheets | undefined> +>({} as any, { + get(target, prop: HighlightJsStyles) { + if (prop in target) { + return target[prop]; + } + const hlstylesheet = styles[prop]; + if (!hlstylesheet) { + return; + } + target[prop] = createStylesheets(hlstylesheet); + return target[prop]; + } +}); + +export default lazyStylesheetRegistry; diff --git a/apps/discovery/src/highlight/normalizeStylesheet.ts b/apps/discovery/src/highlight/normalizeStylesheet.ts new file mode 100644 index 00000000..d071121e --- /dev/null +++ b/apps/discovery/src/highlight/normalizeStylesheet.ts @@ -0,0 +1,22 @@ +import { CSSProperties } from 'react'; + +type HljsStylsheet = Record<string, CSSProperties>; + +export default function normalizeStylesheet(hljsStylesheet: HljsStylsheet) { + return Object.fromEntries( + Object.entries(hljsStylesheet).map( + ([ + className, + { color, background, backgroundColor, fontWeight, fontStyle } + ]) => [ + className, + { + color, + backgroundColor: background ?? backgroundColor, + fontWeight, + fontStyle + } + ] + ) + ); +} diff --git a/apps/discovery/src/hooks/useCachedResources.ts b/apps/discovery/src/hooks/useCachedResources.ts new file mode 100644 index 00000000..f82c34d7 --- /dev/null +++ b/apps/discovery/src/hooks/useCachedResources.ts @@ -0,0 +1,54 @@ +import { Ionicons } from '@expo/vector-icons'; +import * as Font from 'expo-font'; +import * as SplashScreen from 'expo-splash-screen'; +import * as React from 'react'; +import { SpaceMono_400Regular } from '@expo-google-fonts/space-mono'; +import { + SourceCodePro_400Regular, + SourceCodePro_400Regular_Italic, + SourceCodePro_600SemiBold +} from '@expo-google-fonts/source-code-pro'; +import { + Raleway_400Regular, + Raleway_400Regular_Italic, + Raleway_300Light, + Raleway_300Light_Italic, + Raleway_600SemiBold +} from '@expo-google-fonts/raleway'; + +export default function useCachedResources() { + const [isLoadingComplete, setLoadingComplete] = React.useState(false); + + // Load any resources or data that we need prior to rendering the app + React.useEffect(() => { + async function loadResourcesAndDataAsync() { + try { + SplashScreen.preventAutoHideAsync(); + + // Load fonts + await Font.loadAsync({ + ...Ionicons.font, + 'space-mono': SpaceMono_400Regular, + SourceCodePro_400Regular, + SourceCodePro_400Regular_Italic, + SourceCodePro_600SemiBold, + Raleway_300Light, + Raleway_300Light_Italic, + Raleway_400Regular, + Raleway_400Regular_Italic, + Raleway_600SemiBold + }); + } catch (e) { + // We might want to provide this error information to an error reporting service + console.warn(e); + } finally { + setLoadingComplete(true); + SplashScreen.hideAsync(); + } + } + + loadResourcesAndDataAsync(); + }, []); + + return isLoadingComplete; +} diff --git a/apps/discovery/src/hooks/useOnLinkPress.ts b/apps/discovery/src/hooks/useOnLinkPress.ts new file mode 100644 index 00000000..7013f2ee --- /dev/null +++ b/apps/discovery/src/hooks/useOnLinkPress.ts @@ -0,0 +1,15 @@ +import React, { useCallback } from 'react'; +import onLinkPressContext from '../state/onLinkPressContext'; + +function useOnLinkPress(uri: string): () => void; +function useOnLinkPress(): (uri: string) => void; +function useOnLinkPress(uri?: string) { + const onLinkPress = React.useContext(onLinkPressContext); + if (uri) { + // eslint-disable-next-line react-hooks/rules-of-hooks + return useCallback(() => onLinkPress(uri), [onLinkPress, uri]); + } + return onLinkPress; +} + +export default useOnLinkPress; diff --git a/apps/discovery/src/imagesMap.ts b/apps/discovery/src/imagesMap.ts new file mode 100644 index 00000000..7992e0a8 --- /dev/null +++ b/apps/discovery/src/imagesMap.ts @@ -0,0 +1,20 @@ +import { PageId } from '@doc/pages'; + +const imagesMap: Record<PageId, number> = { + architecture: require('../assets/images/anders-jilden-architecture.jpg'), + images: require('../assets/images/soragrit-wongsa-pictures.jpg'), + lists: require('../assets/images/markus-winkler-lists.jpg'), + styling: require('../assets/images/russn-fckr-painting.jpg'), + anchors: require('../assets/images/jj-ying-anchors.jpg'), + textual: require('../assets/images/james-barnett-script.jpg'), + 'reinvent-the-wheel': require('../assets/images/jon-cartagena-wheel.jpg'), + rendering: require('../assets/images/bank-phrom-rendering.jpg'), + 'custom-renderers': require('../assets/images/malcolm-lightbody-custom-rendering.jpg'), + 'transient-render-engine': require('../assets/images/ryan-baker-tre.jpg'), + 'dom-tampering': require('../assets/images/diana-polekhina-tampering.jpg'), + 'css-processing': require('../assets/images/maik-jonietz-css.jpg'), + intro: require('../assets/images/pankaj-patel-html.jpg'), + faq: require('../assets/images/simone-secci-question.jpg') +}; + +export default imagesMap; diff --git a/apps/discovery/src/nav-model.ts b/apps/discovery/src/nav-model.ts new file mode 100644 index 00000000..b4c2a41e --- /dev/null +++ b/apps/discovery/src/nav-model.ts @@ -0,0 +1,32 @@ +import { PageId, PageGroup, pagesSpecs } from '@doc/pages'; +import type { MaterialCommunityIcons } from '@expo/vector-icons'; +import { ComponentProps } from 'react'; + +export type IconName = ComponentProps<typeof MaterialCommunityIcons>['name']; + +export type PageRoute = `${PageGroup}-${PageId}`; +export type PlaygroundRoute = 'playground-lists'; +export type ResourceRoute = PageRoute | PlaygroundRoute; + +export interface ResourceRouteDefinition { + title: string; + name: ResourceRoute; + iconName: IconName; +} + +const pagesIndex: Record<PageRoute, ResourceRouteDefinition> = + Object.fromEntries( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Object.entries(pagesSpecs).map(([_k, s]) => [`${s.group}-${s.id}`, s]) + ) as any; + +const resourceRoutesIndex: Record<ResourceRoute, ResourceRouteDefinition> = { + ...pagesIndex, + 'playground-lists': { + title: 'Lists Playground', + name: 'playground-lists', + iconName: 'format-list-bulleted-square' + } +}; + +export { resourceRoutesIndex }; diff --git a/apps/discovery/src/navigation/RootNavigator.tsx b/apps/discovery/src/navigation/RootNavigator.tsx new file mode 100644 index 00000000..ad12e439 --- /dev/null +++ b/apps/discovery/src/navigation/RootNavigator.tsx @@ -0,0 +1,32 @@ +import * as React from 'react'; +import { + createStackNavigator, + StackNavigationOptions +} from '@react-navigation/stack'; +import HomeScreen from '../components/screens/HomeDrawerScreen'; +import StackHeader from './StackHeader'; +import useSurfaceBackgroundStyleNucleon from '../components/nucleons/useSurfaceBackgroundStyleNucleon'; + +const Stack = createStackNavigator(); + +export default function RootNavigator() { + const cardStyle = useSurfaceBackgroundStyleNucleon(); + const screenOptions = React.useMemo<StackNavigationOptions>( + () => ({ + animationTypeForReplace: 'pop', + animationEnabled: false, + header: (props) => <StackHeader {...props} />, + cardStyle: cardStyle + }), + [cardStyle] + ); + return ( + <Stack.Navigator screenOptions={screenOptions} initialRouteName="home"> + <Stack.Screen + name="home" + options={{ headerShown: false }} + component={HomeScreen} + /> + </Stack.Navigator> + ); +} diff --git a/apps/discovery/src/navigation/StackHeader.tsx b/apps/discovery/src/navigation/StackHeader.tsx new file mode 100644 index 00000000..38eae1c5 --- /dev/null +++ b/apps/discovery/src/navigation/StackHeader.tsx @@ -0,0 +1,19 @@ +import { StackHeaderProps } from '@react-navigation/stack'; +import React from 'react'; +import UIAppbarActionAtom from '../components/UIAppbarActionAtom'; +import UIAppbarContentAtom from '../components/UIAppbarContentAtom'; +import UIHeaderAtom from '../components/UIHeaderAtom'; + +export { StackHeaderProps }; + +export default function StackHeader({ + options: { title }, + navigation: { goBack } +}: StackHeaderProps) { + return ( + <UIHeaderAtom> + <UIAppbarActionAtom icon="arrow-left" onPress={goBack} /> + <UIAppbarContentAtom title={title} /> + </UIHeaderAtom> + ); +} diff --git a/apps/discovery/src/navigation/index.tsx b/apps/discovery/src/navigation/index.tsx new file mode 100644 index 00000000..3c0ccdc7 --- /dev/null +++ b/apps/discovery/src/navigation/index.tsx @@ -0,0 +1,20 @@ +import * as React from 'react'; +import { NavigationContainer } from '@react-navigation/native'; +import { View } from 'react-native'; +import RootNavigator from './RootNavigator'; +import { useTheme } from '../theme/ThemeProvider'; + +const linking = { + prefixes: ['https://meliorence.github.io/react-native-render-html'] +}; + +export default function Navigation() { + const theme = useTheme(); + return ( + <View style={{ flex: 1 }}> + <NavigationContainer linking={linking} theme={theme}> + <RootNavigator /> + </NavigationContainer> + </View> + ); +} diff --git a/apps/discovery/src/providers/PageToolkitProvider.tsx b/apps/discovery/src/providers/PageToolkitProvider.tsx new file mode 100644 index 00000000..0dad1669 --- /dev/null +++ b/apps/discovery/src/providers/PageToolkitProvider.tsx @@ -0,0 +1,244 @@ +import React, { + Children, + Fragment, + PropsWithChildren, + ReactElement, + useCallback +} from 'react'; +import { ToolkitProvider, UIToolkitConfig, RefAPIProps } from '@doc/pages'; +import BodyChapterMolecule from '../components/BodyChapterMolecule'; +import BodySectionMolecule from '../components/BodySectionMolecule'; +import BodyListAtom from '../components/BodyListAtom'; +import BodyListItemAtom from '../components/BodyListItemAtom'; +import BodyParagraphAtom from '../components/BodyParagraphAtom'; +import RenderHtmlCardOrganism from '../components/RenderHtmlCardOrganism'; +import UISourceDisplayMolecule from '../components/UISourceDisplayMolecule'; +import { ScrollView } from 'react-native-gesture-handler'; +import BodyAdmonitionAtom from '../components/BodyAdmonitionAtom'; +import ArticleContainerAtom from '../components/ArticleContainerAtom'; +import UIHyperlinkAtom from '../components/UIHyperlinkAtom'; +import { useNavigation } from '@react-navigation/core'; +import TextRoleNucleon from '../components/nucleons/TextRoleNucleon'; +import svgAssetsIndex from '../svgAssetsIndex'; +import { useColorPrimitives, useColorRoles } from '../theme/colorSystem'; +import { Stack, useSpacing } from '@mobily/stacks'; +import CardColorRolesProvider from '../components/croles/CardColorRolesProvider'; +import { Linking, StyleSheet } from 'react-native'; +import BoxNucleon from '../components/nucleons/BoxNucleon'; +import { WEBSITE_URL } from '@doc/constants'; +import URI from 'urijs'; +import TNodeTransformDisplayOrganism from '../components/TNodeTransformDisplayOrganism'; +import UICardContainer from '../components/UICardContainer'; +import { BODY_PARAGRAPH_SPACING } from '../constants'; +import MaxWidthContainerAtom from '../components/MaxWidthContainerAtom'; + +const genericOnLinkPress = (uri: string) => Linking.openURL(uri); + +//@ts-ignore +function useOnLinkPress(uri: string): () => void; +function useOnLinkPress(): (uri: string) => void; +function useOnLinkPress(uri?: string) { + if (uri) { + // eslint-disable-next-line react-hooks/rules-of-hooks + return useCallback(() => genericOnLinkPress(uri), [uri]); + } + return genericOnLinkPress; +} + +const styles = StyleSheet.create({ + underline: { + textDecorationLine: 'underline' + } +}); + +const RefBuilder: UIToolkitConfig['RefBuilder'] = ({ name, url, type }) => { + const onLinkPress = useOnLinkPress(url); + return ( + <UIHyperlinkAtom + role={type === 'doc' ? 'body' : 'bodyInlineCode'} + onPress={onLinkPress}> + {name} + </UIHyperlinkAtom> + ); +}; + +function Header({ children, ...other }: PropsWithChildren<{}>) { + return ( + <MaxWidthContainerAtom {...other}> + <Stack space={BODY_PARAGRAPH_SPACING}>{children}</Stack> + </MaxWidthContainerAtom> + ); +} + +function RefAPI({ + name, + url, + member, + full, + plural /* ,library */ +}: RefAPIProps) { + const { apiRef } = useColorPrimitives(); + const pluralMark = plural ? 's' : ''; + const fullName = + (member && full ? `${name}.${member}` : member ? member : name) + + pluralMark; + const fullUrl = new URI(WEBSITE_URL + url).normalizePath().href(); + return ( + <UIHyperlinkAtom + role="bodyAPIRef" + style={{ backgroundColor: apiRef.color }} + color={apiRef.content} + onPress={useOnLinkPress(fullUrl)}> + {fullName} + </UIHyperlinkAtom> + ); +} + +const SourceDisplayInner: UIToolkitConfig['SourceDisplay'] = + function SourceDisplayInner({ content, lang, showLineNumbers }) { + return ( + <ScrollView + horizontal + style={{ flexGrow: 0 }} + contentContainerStyle={{ flexGrow: 1 }}> + <UISourceDisplayMolecule + content={content} + language={lang as any} + showLineNumbers={showLineNumbers} + paddingVertical={2} + style={{ alignSelf: 'stretch' }} + /> + </ScrollView> + ); + }; + +const SourceDisplay: UIToolkitConfig['SourceDisplay'] = ({ + title, + ...other +}) => ( + <UICardContainer style={(other as any).style} title={title}> + <SourceDisplayInner {...other} /> + </UICardContainer> +); + +const RefDoc: UIToolkitConfig['RefDoc'] = ({ target, children, fragment }) => { + const navigation = useNavigation(); + const onPress = useCallback(() => { + // @ts-ignore TODO: fix this + navigation.navigate(`${target.group}-${target.id}`, { fragment }); + }, [navigation, target.group, target.id, fragment]); + return ( + <UIHyperlinkAtom role="body" style={styles.underline} onPress={onPress}> + {children || target.title} + </UIHyperlinkAtom> + ); +}; + +const Acronym: UIToolkitConfig['Acronym'] = ({ fullName }) => { + return <TextRoleNucleon role="body" children={fullName} />; +}; + +const Bold: UIToolkitConfig['Bold'] = ({ children }) => ( + <TextRoleNucleon role="bodyBold" children={children} /> +); + +const SvgFigure: UIToolkitConfig['SvgFigure'] = ({ + asset, + description, + title +}) => { + const Component = svgAssetsIndex[asset]; + const { surface, codeBackground } = useColorRoles(); + const padding = useSpacing(2); + return ( + <UICardContainer title={title} caption={description}> + <ScrollView + horizontal + contentContainerStyle={{ + backgroundColor: codeBackground, + minWidth: '100%', + justifyContent: 'center', + padding + }}> + <Component + content={surface.content} + secondaryContent={surface.secondaryContent} + codeBlockBg={'rgba(125,125,125,0.2)'} + /> + </ScrollView> + </UICardContainer> + ); +}; + +const toolkitConfig: UIToolkitConfig = { + Container: ArticleContainerAtom, + Chapter: BodyChapterMolecule, + Section: BodySectionMolecule, + List: BodyListAtom, + ListItem: BodyListItemAtom, + Paragraph: BodyParagraphAtom, + Bold, + Header, + RenderHtmlCard: RenderHtmlCardOrganism, + TNodeTransformDisplay: TNodeTransformDisplayOrganism, + SourceDisplay, + Admonition: BodyAdmonitionAtom, + RefBuilder, + RefAPI, + RefDoc, + Acronym, + SvgFigure: (props) => ( + <CardColorRolesProvider> + <SvgFigure {...props} /> + </CardColorRolesProvider> + ), + Hyperlink: ({ url, children }) => ( + <UIHyperlinkAtom + role="body" + style={styles.underline} + onPress={useOnLinkPress(url)}> + {children} + </UIHyperlinkAtom> + ), + InlineCode: (props) => <TextRoleNucleon role="bodyInlineCode" {...props} />, + DList: ({ children }) => ( + <BoxNucleon padding={2}> + {Children.map(children as ReactElement[], (c: ReactElement, i) => + // @ts-ignore TODO: fix this + React.cloneElement(c, { ...c.props, index: Math.floor(i / 2) }) + )} + </BoxNucleon> + ), + DListItem: ({ children, index }: any) => ( + <BoxNucleon + style={{ + paddingBottom: useSpacing(4), + paddingLeft: useSpacing(6), + backgroundColor: + index % 2 === 0 ? 'rgba(125,125,125,0.2)' : 'rgba(125,125,125,0.1)' + }}> + <BodyParagraphAtom style={{}}>{children}</BodyParagraphAtom> + </BoxNucleon> + ), + DListTitle: ({ children, index }: any) => ( + <BoxNucleon + paddingTop={4} + padding={2} + style={{ + flex: 1, + backgroundColor: + index % 2 === 0 ? 'rgba(125,125,125,0.2)' : 'rgba(125,125,125,0.1)' + }}> + <TextRoleNucleon role="bodyDListHeader">{children}</TextRoleNucleon> + </BoxNucleon> + ), + Conditional: ({ platform, children }) => { + return platform === 'mobile' ? <Fragment>{children}</Fragment> : null; + } +}; + +export default function PageToolkitProvider({ + children +}: PropsWithChildren<{}>) { + return <ToolkitProvider config={toolkitConfig}>{children}</ToolkitProvider>; +} diff --git a/apps/discovery/src/state/ColorSchemeProvider.tsx b/apps/discovery/src/state/ColorSchemeProvider.tsx new file mode 100644 index 00000000..79895bff --- /dev/null +++ b/apps/discovery/src/state/ColorSchemeProvider.tsx @@ -0,0 +1,34 @@ +import React, { PropsWithChildren, useState } from 'react'; + +export interface ColorSchemeState { + colorScheme: 'light' | 'dark'; + setColorScheme: (colorScheme: 'light' | 'dark') => void; +} + +const ColorSchemeContext = React.createContext<ColorSchemeState>({ + colorScheme: 'light', + setColorScheme: () => {} +}); + +export function useColorScheme() { + return React.useContext(ColorSchemeContext).colorScheme; +} + +export function useColorSchemeSetter() { + return React.useContext(ColorSchemeContext).setColorScheme; +} + +export default function ColorSchemeProvider({ + initialColorScheme, + children +}: PropsWithChildren<{ + initialColorScheme: ColorSchemeState['colorScheme']; +}>) { + const [colorScheme, setColorScheme] = + useState<ColorSchemeState['colorScheme']>(initialColorScheme); + return ( + <ColorSchemeContext.Provider value={{ colorScheme, setColorScheme }}> + {children} + </ColorSchemeContext.Provider> + ); +} diff --git a/apps/discovery/src/state/onLinkPressContext.ts b/apps/discovery/src/state/onLinkPressContext.ts new file mode 100644 index 00000000..0438639d --- /dev/null +++ b/apps/discovery/src/state/onLinkPressContext.ts @@ -0,0 +1,7 @@ +import { createContext } from 'react'; + +const onLinkPressContext = createContext<(uri: string) => void>( + () => undefined as void +); + +export default onLinkPressContext; diff --git a/apps/discovery/src/state/store.tsx b/apps/discovery/src/state/store.tsx new file mode 100644 index 00000000..f02db183 --- /dev/null +++ b/apps/discovery/src/state/store.tsx @@ -0,0 +1,21 @@ +import { create } from 'zustand'; + +interface State extends Record<string | symbol | number, unknown> { + legacyMode: boolean; + // Actions + toggleLegacyMode: () => void; +} + +const useStore = create<State>((set) => { + return { + legacyMode: false, + // Actions + toggleLegacyMode: () => set((s) => ({ legacyMode: !s.legacyMode })) + }; +}); + +const legacyMode = (s: State) => s.legacyMode; +const toggleLegacyMode = (s: State) => s.toggleLegacyMode; + +export const useLegacyMode = () => useStore(legacyMode); +export const useToggleLegacyMode = () => useStore(toggleLegacyMode); diff --git a/apps/discovery/src/substratum/index.tsx b/apps/discovery/src/substratum/index.tsx new file mode 100644 index 00000000..b0be5ed1 --- /dev/null +++ b/apps/discovery/src/substratum/index.tsx @@ -0,0 +1,94 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React, { + createContext, + PropsWithChildren, + useContext, + useMemo +} from 'react'; + +/** + * + */ +export interface ColorPrimitive { + /** + * The color + */ + color: string; + /** + * Color for content such as icons, text displayed above this color. + */ + content: string; +} + +/** + * + */ +type ColorPrimitivesDefinitionValidator<Candidate> = Candidate extends Record< + infer U, + ColorPrimitive | string +> + ? Candidate + : never; + +/** + * + */ +type ColorRolesDefinitionValidator<Candidate> = Candidate extends Record< + infer U, + any +> + ? Candidate + : never; + +/** + * + */ +export default function createColorSystem<CPD>() { + const colorPrimitivesContext = createContext< + ColorPrimitivesDefinitionValidator<CPD> + >({} as any); + function useColorPrimitives() { + return useContext(colorPrimitivesContext); + } + const ColorPrimitivesProvider = colorPrimitivesContext.Provider; + //@ts-ignore + ColorPrimitivesProvider.displayName = ColorPrimitivesProvider; + function createColorRoles<CR>() { + const colorRolesContext = createContext<ColorRolesDefinitionValidator<CR>>( + {} as any + ); + function useColorRoles() { + return useContext(colorRolesContext); + } + function ColorRolesProvider({ + children, + mapPrimitivesToColorRoles + }: PropsWithChildren<{ + mapPrimitivesToColorRoles: ( + primitives: ColorPrimitivesDefinitionValidator<CPD>, + parentColorRoles: ColorRolesDefinitionValidator<CR> + ) => ColorRolesDefinitionValidator<CR>; + }>) { + const colorPrimitives = useContext(colorPrimitivesContext); + const parentColorRoles = useColorRoles(); + const value = useMemo( + () => mapPrimitivesToColorRoles(colorPrimitives, parentColorRoles), + [colorPrimitives, mapPrimitivesToColorRoles, parentColorRoles] + ); + return ( + <colorRolesContext.Provider value={value}> + {children} + </colorRolesContext.Provider> + ); + } + return { + useColorRoles, + ColorRolesProvider + }; + } + return { + createColorRoles, + useColorPrimitives, + ColorPrimitivesProvider + }; +} diff --git a/apps/discovery/src/svg.d.ts b/apps/discovery/src/svg.d.ts new file mode 100644 index 00000000..64ffdcfa --- /dev/null +++ b/apps/discovery/src/svg.d.ts @@ -0,0 +1,5 @@ +declare module '*.svg' { + import { SvgComponent } from '@doc/svg-component'; + const content: SvgComponent; + export default content; +} diff --git a/apps/discovery/src/svgAssetsIndex.ts b/apps/discovery/src/svgAssetsIndex.ts new file mode 100644 index 00000000..27f7796a --- /dev/null +++ b/apps/discovery/src/svgAssetsIndex.ts @@ -0,0 +1,10 @@ +import { SvgAssetType } from '@doc/pages'; +import DataFlow from '../assets/svg/data-flow.svg'; +import Logo from '../assets/svg/logo.svg'; + +const svgAssetsIndex: Record<SvgAssetType | 'logo', typeof DataFlow> = { + 'data-flow': DataFlow, + logo: Logo +}; + +export default svgAssetsIndex; diff --git a/apps/discovery/src/theme/ThemeProvider.tsx b/apps/discovery/src/theme/ThemeProvider.tsx new file mode 100644 index 00000000..3e568930 --- /dev/null +++ b/apps/discovery/src/theme/ThemeProvider.tsx @@ -0,0 +1,64 @@ +import * as React from 'react'; +import { + DefaultTheme as NavLightTheme, + DarkTheme as NavDarkTheme, + Theme +} from '@react-navigation/native'; +import { PropsWithChildren } from 'react'; +import { + Provider as PaperProvider, + MD2DarkTheme as PaperDarkTheme, + MD2LightTheme as PaperLightTheme, + MD2Theme +} from 'react-native-paper'; +import themeAdaptedColors, { ColorsShape } from './themeAdaptedColors'; +import { useColorScheme } from '../state/ColorSchemeProvider'; +import { ColorPrimitivesProvider } from './colorSystem'; +import colorPrimitivesDeclarations from './colorPrimitivesDeclaration'; +import DefaultColorRolesProvider from '../components/croles/DefaultColorRolesProvider'; + +function mergeTheme( + paperTheme: MD2Theme, + navTheme: Theme, + colors: ColorsShape +) { + return { + ...paperTheme, + ...navTheme, + roundness: 0, + colors + }; +} + +const CombinedLightTheme = mergeTheme( + PaperLightTheme, + NavLightTheme, + themeAdaptedColors.light +); + +const CombinedDarkTheme = mergeTheme( + PaperDarkTheme, + NavDarkTheme, + themeAdaptedColors.dark +); + +const ThemeContext = React.createContext(CombinedLightTheme); + +export function useTheme() { + return React.useContext(ThemeContext); +} + +export default function ThemeProvider({ children }: PropsWithChildren<{}>) { + const colorScheme = useColorScheme(); + const selectedTheme = + colorScheme === 'dark' ? CombinedDarkTheme : CombinedLightTheme; + return ( + <ColorPrimitivesProvider value={colorPrimitivesDeclarations[colorScheme]}> + <DefaultColorRolesProvider> + <ThemeContext.Provider value={selectedTheme}> + <PaperProvider theme={selectedTheme}>{children}</PaperProvider> + </ThemeContext.Provider> + </DefaultColorRolesProvider> + </ColorPrimitivesProvider> + ); +} diff --git a/apps/discovery/src/theme/alphaMixColor.ts b/apps/discovery/src/theme/alphaMixColor.ts new file mode 100644 index 00000000..36d7b624 --- /dev/null +++ b/apps/discovery/src/theme/alphaMixColor.ts @@ -0,0 +1,9 @@ +import Color from 'color'; + +export default function alphaMixColor( + color: string, + alpha: number, + background = 'white' +) { + return Color(color).alpha(alpha).mix(Color(background)).hex(); +} diff --git a/apps/discovery/src/theme/colorPrimitivesDeclaration.ts b/apps/discovery/src/theme/colorPrimitivesDeclaration.ts new file mode 100644 index 00000000..d597578d --- /dev/null +++ b/apps/discovery/src/theme/colorPrimitivesDeclaration.ts @@ -0,0 +1,100 @@ +import Color from 'color'; +import { ColorPrimitive } from '../substratum'; +import alphaMixColor from './alphaMixColor'; +import { ColorPrimitivesDeclaration } from './colorSystem'; +import shiftColor from './shiftColor'; + +const black = 'rgb(25, 25, 48)'; +const white = 'rgb(230, 230, 230)'; + +export type CreateColorPrimitivesSpec = Omit< + ColorPrimitivesDeclaration, + 'placeholder' | 'primaryVariant' | 'accentVariant' | 'scrim' +>; + +const darkBlue = 'rgb(0,0,48)'; + +const heading: ColorPrimitive = { + color: white, + content: darkBlue +}; + +function createColorPrimitives({ + primary, + accent, + surface, + card, + apiRef +}: CreateColorPrimitivesSpec): ColorPrimitivesDeclaration { + return { + primary, + heading, + accent, + apiRef, + accentVariant: { + color: shiftColor(accent.color, 0.5), + content: primary.content + }, + surface, + card, + placeholder: 'gray', + scrim: alphaMixColor(surface.content, 0.7, surface.color) + }; +} + +const dark: ColorPrimitivesDeclaration = createColorPrimitives({ + primary: { + color: darkBlue, + content: white + }, + heading, + accent: { + color: '#8181ff', + content: black + }, + surface: { + color: black, + content: white + }, + card: { + color: darkBlue, + content: white + }, + apiRef: { + color: '#bed4eb10', + content: '#4377e7' + } +}); + +const light: ColorPrimitivesDeclaration = createColorPrimitives({ + primary: { + color: darkBlue, + content: white + }, + heading, + accent: { + color: '#8181ff', + content: white + }, + surface: { + color: Color('#546e7a').lighten(1.4).string(), + content: black + }, + card: { + color: darkBlue, + content: white + }, + apiRef: { + color: '#1c1e2010', + content: '#4377e7' + } +}); + +export { dark, light }; + +const colorPrimitivesDeclarations = { + light, + dark +}; + +export default colorPrimitivesDeclarations; diff --git a/apps/discovery/src/theme/colorSystem.ts b/apps/discovery/src/theme/colorSystem.ts new file mode 100644 index 00000000..4a3b7c92 --- /dev/null +++ b/apps/discovery/src/theme/colorSystem.ts @@ -0,0 +1,109 @@ +import createColorSystem, { ColorPrimitive } from '../substratum'; +import type { AdmonitionType } from '@doc/pages'; + +export interface ColorPrimitivesDeclaration { + primary: ColorPrimitive; + heading: ColorPrimitive; + accent: ColorPrimitive; + accentVariant: ColorPrimitive; + /** + * The background (and foreground) for any content. + */ + surface: ColorPrimitive; + card: ColorPrimitive; + apiRef: ColorPrimitive; + placeholder: string; + scrim: string; +} + +export interface ColorRoles { + /** + * Used for debug. + */ + name: string; + /** + * The color of the status bar. + */ + statusBarBackground: string; + /** + * Semantic colors for admonitions. + */ + admonition: Record<AdmonitionType, string>; + /** + * The underlying container styling for all other things. + */ + surface: { + background: string; + content: string; + secondaryContent: string; + scrim: string; + }; + hyperlinkColor: string; + /** + * Used for horizontal lines, list separators, dividers... + */ + softDivider: string; + /** + * Icons with lesser contrast. + */ + softIconColor: string; + spinnerColor: string; + sheetHandle: { + background: string; + slot: string; + }; + /** + * Used for interactive tides, list items, icon buttons... + */ + pressable: { + tint: string; + background: string; + ripple: string; + }; + /** + * Similar than pressable, but with a "selected" state + */ + selectable: { + activeTint: string; + activeBackground: string; + inactiveTint: string; + inactiveBackground: string; + ripple: string; + }; + /** + * For actionable things that can be handled, typically a switch round + */ + switchColor: { + on: string; + off: string; + }; + /** + * Used for sliders, switches...etc. + */ + trackColor: { + on: string; + off: string; + }; + codeBackground: string; +} + +const { ColorPrimitivesProvider, createColorRoles, useColorPrimitives } = + createColorSystem<ColorPrimitivesDeclaration>(); + +const { ColorRolesProvider, useColorRoles } = createColorRoles<ColorRoles>(); + +export { + ColorPrimitivesProvider, + ColorRolesProvider, + useColorRoles, + useColorPrimitives +}; + +const colorSystem = { + ColorPrimitivesProvider, + useColorRoles, + ColorRolesProvider, + useColorPrimitives +}; + +export default colorSystem; diff --git a/apps/discovery/src/theme/generateColorRoles.ts b/apps/discovery/src/theme/generateColorRoles.ts new file mode 100644 index 00000000..19a7430d --- /dev/null +++ b/apps/discovery/src/theme/generateColorRoles.ts @@ -0,0 +1,71 @@ +import Color from 'color'; +import alphaMixColor from '../theme/alphaMixColor'; +import { ColorPrimitivesDeclaration, ColorRoles } from '../theme/colorSystem'; +import shiftColor from './shiftColor'; + +export interface BackdropFactoryParams { + surfaceColor: string; + surfaceContent: string; + name: string; + primitives: ColorPrimitivesDeclaration; +} + +export default function generateColorRoles({ + surfaceColor, + surfaceContent, + name, + primitives +}: BackdropFactoryParams): ColorRoles { + const softContent = alphaMixColor(surfaceContent, 0.45, surfaceColor); + // Use transparent because of a bug in the dropdown menu (react-native-paper) + const inactiveBackground = 'transparent'; + const accentColor = primitives.accent.color; + const accentBg = primitives.accent.content; + const secondaryContent = Color(surfaceContent).alpha(0.5).string(); + return { + name, + surface: { + secondaryContent, + background: surfaceColor, + content: surfaceContent, + scrim: primitives.scrim + }, + hyperlinkColor: accentColor, + admonition: { + important: accentColor, + note: accentColor, + tip: accentColor, + caution: '#c59d30', + warning: '#f54349' + }, + sheetHandle: { + slot: shiftColor(surfaceColor, 1, 0.3), + background: shiftColor(surfaceColor, 0.3, 0.07) + }, + softDivider: softContent, + softIconColor: secondaryContent, + statusBarBackground: primitives.heading.content, + selectable: { + inactiveBackground, + inactiveTint: surfaceContent, + activeTint: accentBg, + activeBackground: accentColor, + ripple: softContent + }, + pressable: { + background: inactiveBackground, + tint: surfaceContent, + ripple: softContent + }, + spinnerColor: accentColor, + switchColor: { + on: accentColor, + off: alphaMixColor(surfaceContent, 0.2, surfaceColor) + }, + trackColor: { + on: alphaMixColor(accentColor, 0.7, surfaceColor), + off: alphaMixColor(surfaceContent, 0.5, surfaceColor) + }, + codeBackground: '#000044' + }; +} diff --git a/apps/discovery/src/theme/shiftColor.ts b/apps/discovery/src/theme/shiftColor.ts new file mode 100644 index 00000000..c5b26248 --- /dev/null +++ b/apps/discovery/src/theme/shiftColor.ts @@ -0,0 +1,22 @@ +import Color from 'color'; + +function shiftColor(color: string, ratio: number): string; +function shiftColor( + color: string, + ratioDark: number, + ratioLight: number +): string; + +function shiftColor( + color: string, + ratioDarkOrBoth: number, + ratioLight?: number +) { + const c = Color(color); + if (c.isDark()) { + return c.lighten(ratioDarkOrBoth).hex(); + } + return c.darken(ratioLight ?? ratioDarkOrBoth).hex(); +} + +export default shiftColor; diff --git a/apps/discovery/src/theme/themeAdaptedColors.ts b/apps/discovery/src/theme/themeAdaptedColors.ts new file mode 100644 index 00000000..ce4f7f03 --- /dev/null +++ b/apps/discovery/src/theme/themeAdaptedColors.ts @@ -0,0 +1,39 @@ +import { Theme as NavTheme } from '@react-navigation/native'; +import { MD2Theme } from 'react-native-paper'; +import colorPrimitivesDeclarations from './colorPrimitivesDeclaration'; +import { ColorPrimitivesDeclaration } from './colorSystem'; + +export type ColorsShape = MD2Theme['colors'] & NavTheme['colors']; + +function deriveThemeFromDeclaration({ + accent, + card, + primary, + surface, + scrim +}: ColorPrimitivesDeclaration): ColorsShape { + const FIXME = '#594A13'; + return { + border: FIXME, + disabled: FIXME, + error: FIXME, + notification: FIXME, + surface: FIXME, + onSurface: FIXME, + placeholder: FIXME, + tooltip: FIXME, + accent: accent.color, + backdrop: scrim, + background: surface.color, + card: card.color, + primary: primary.color, + text: surface.content + }; +} + +const themeAdaptedColors: Record<'light' | 'dark', ColorsShape> = { + light: deriveThemeFromDeclaration(colorPrimitivesDeclarations.light), + dark: deriveThemeFromDeclaration(colorPrimitivesDeclarations.dark) +}; + +export default themeAdaptedColors; diff --git a/apps/discovery/svgr.config.js b/apps/discovery/svgr.config.js new file mode 100644 index 00000000..60f1eb12 --- /dev/null +++ b/apps/discovery/svgr.config.js @@ -0,0 +1 @@ +module.exports = require('@doc/svgr-conf'); diff --git a/apps/discovery/tsconfig.json b/apps/discovery/tsconfig.json new file mode 100644 index 00000000..2d110907 --- /dev/null +++ b/apps/discovery/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true, + "paths": { + "@doc/pages": [ + "../../doc-tools/doc-pages/src" + ], + "@native-html/css-processor": [ + "../../packages/css-processor/src" + ], + "@native-html/transient-render-engine": [ + "../../packages/transient-render-engine/src" + ], + "react-native-render-html": [ + "../../packages/render-html/src" + ] + } + }, + "include": [ + "**/*.ts", + "**/*.tsx" + ] +} diff --git a/apps/discovery/types.tsx b/apps/discovery/types.tsx new file mode 100644 index 00000000..08ba229b --- /dev/null +++ b/apps/discovery/types.tsx @@ -0,0 +1,26 @@ +import { RenderHTMLProps } from 'react-native-render-html'; + +export type RootStackParamList = { + Root: undefined; + NotFound: undefined; +}; + +export type BottomTabParamList = { + TabOne: undefined; + TabTwo: undefined; +}; + +export type TabOneParamList = { + TabOneScreen: undefined; +}; + +export type TabTwoParamList = { + TabTwoScreen: undefined; +}; + +export interface SnippetDeclaration { + name: string; + codeSource: string; + supportsLegacy: boolean; + props?: RenderHTMLProps; +} diff --git a/apps/discovery/version.js b/apps/discovery/version.js new file mode 100644 index 00000000..eb77d4ef --- /dev/null +++ b/apps/discovery/version.js @@ -0,0 +1,6 @@ +const json = require('react-native-render-html/package.json'); + +module.exports = { + demo: '4.0.1', + lib: json.version +}; diff --git a/apps/website/.gitignore b/apps/website/.gitignore new file mode 100644 index 00000000..e44a45b4 --- /dev/null +++ b/apps/website/.gitignore @@ -0,0 +1,25 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Typedoc +/apisidebar.json + +/api/**/*.mdx diff --git a/apps/website/README.md b/apps/website/README.md new file mode 100644 index 00000000..231a499c --- /dev/null +++ b/apps/website/README.md @@ -0,0 +1,33 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +## Installation + +```console +yarn install +``` + +## Local Development + +```console +yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +## Build + +```console +yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +## Deployment + +```console +GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/apps/website/api/.gitignore b/apps/website/api/.gitignore new file mode 100644 index 00000000..b17149b3 --- /dev/null +++ b/apps/website/api/.gitignore @@ -0,0 +1 @@ +*.mdx \ No newline at end of file diff --git a/apps/website/babel.config.js b/apps/website/babel.config.js new file mode 100644 index 00000000..6bf8d26f --- /dev/null +++ b/apps/website/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')] +}; diff --git a/apps/website/blog/2021-06-07-foundry-announcement.mdx b/apps/website/blog/2021-06-07-foundry-announcement.mdx new file mode 100644 index 00000000..f8b33546 --- /dev/null +++ b/apps/website/blog/2021-06-07-foundry-announcement.mdx @@ -0,0 +1,323 @@ +--- +title: Announcing the Beta Foundry Release +author: Jules Sam. Randolph +author_title: Developer of React Native Render HTML v6 +author_url: https://github.com/jsamr/ +author_image_url: https://avatars.githubusercontent.com/u/3646758?v=4 +tags: [foundry, "release notes"] +description: A major rewrite of the hackable, full-featured Open Source HTML rendering solution for React Native. +image: img/foundry-announcement.png +hide_table_of_contents: false +--- +import SocialLinks from '@site/src/components/SocialLinks'; +import DiscoveryFrame from '@site/src/components/DiscoveryFrame'; +import Reference from '@site/src/components/Reference'; +import TNodeTransformDisplay from '@site/src/components/TNodeTransformDisplay'; +import ListsShowcase from '@site/src/components/ListsShowcase'; +import ExpoDiscoveryCard from '@site/src/components/ExpoDiscoveryCard'; + +After seven months of a long and exciting journey in alpha development and +testing with the community, I am proud to announce the first Foundry (v6) beta +release of React Native Render HTML. + +This process has led the +new API to mature, and the introduction of beta stage marks the end of its +instability. +During the beta stage, I will bring fixes to any issue reported by the +community and expect the test coverage to rise above 90%. I also plan to refine +the **Discovery App** and website, including additional sections for best user +experience. Now, let's get to the heart of it! + +<!--truncate--> + +## The Discovery App + +Along with the release comes this new website and the **Discovery App** which +features all the docs of the website with embedded RNRH-rendered snippets. For +this very reason, the Discovery App is recommended for newcomers, or for those +who want **a "live" feeling of the new engine capabilities**. The website is +more suited during development when searching for specific information. +In addition, the Discovery App has a collection of "Playgrounds" to play with +specific components and observe how they respond to style and props changes. + +<DiscoveryFrame scale={0.95} /> + +<ExpoDiscoveryCard /> + +## Overview of New Features + +### The Transient Render Engine + +The Transient Render engine (TRE) transforms DOM nodes into a ready-to-render +data structure called the Transient Render Tree (TRT), which is made of <Reference type="api-def" name="TNodes" url="/react-native-render-html/api/tnode" />. It allows features such as **whitespace collapsing**, **hoisting**, +**CSS inheritance** and more. + +A legitimate concerns is whether it adds any overhead. The short answer is +*no*, if we compare it to the legacy engine which had its own transient render +structure. Moreover, this TRT construction process is benchmarked to safeguard +its speed. In addition to the enumerated features, the new transient data +structure offers obvious advantages for library consumers: + +- It is totally transparent and predictable; you can create snapshots of a +​<Reference type="api-def" name="TNode" url="/react-native-render-html/api/tnode" /> thanks to the <Reference type="api-def" name="TNodeShape" member="snaphot()" +url="/react-native-render-html/api/tnodeshape#snapshot" /> method for an +intuitive understanding of the engine internals. This feature is extremely +handy for debugging and testing! +- It's hackable by allowing to define custom **content models** for tags. Say +hi to inline images! +- It is shipped with a CSS processor which enforces strict translation rules +from CSS to React Native styles. Say goodbye to native crashes caused by +unsupported CSS properties! See the [**dedicated +article**](/react-native-render-html/docs/flow/css-processing) for +reference. +- It paves the way to server side (or build-time) pre-rendering in the future, +and, why not, a react fiber and MDX builder. + +Below is an example of HTML transformation into a Transient Render Tree: + +<TNodeTransformDisplay title="Translation of HTML markup into a Transient Render Tree" caption="This figure shows how HTML markup translates to a transient render tree structure. The markup for the TRT is JSX and has been produced by the snapshot() method. Notice that whitespace have collapsed!" html="%3Ca%20href%3D%22https%3A%2F%2Fdomain.com%22%3E%0AThis%20is%0A%3Cspan%3Ephrasing%20content%3C%2Fspan%3E%0A%3Cimg%20src%3D%22https%3A%2F%2Fdomain.com%2Flogo.jpg%22%20%2F%3E%0A%20%20%20%20and%20this%20is%20%3Cstrong%3Etoo%3C%2Fstrong%3E.%0A%3C%2Fa%3E" snapshot="%3CTDocument%20tagName%3D%22html%22%3E%0A%20%20%3CTBlock%20tagName%3D%22body%22%3E%0A%20%20%20%20%3CTBlock%20tagName%3D%22a%22%20href%3D%22https%3A%2F%2Fdomain.com%22%3E%0A%20%20%20%20%20%20%3CTPhrasing%20anonymous%3E%0A%20%20%20%20%20%20%20%20%3CTText%20anonymous%20data%3D%22This%20is%20%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%3CTText%20tagName%3D%22span%22%20data%3D%22phrasing%20content%22%20%2F%3E%0A%20%20%20%20%20%20%3C%2FTPhrasing%3E%0A%20%20%20%20%20%20%3CTBlock%20tagName%3D%22img%22%20src%3D%22https%3A%2F%2Fdomain.com%2Flogo.jpg%22%20%2F%3E%0A%20%20%20%20%20%20%3CTPhrasing%20anonymous%3E%0A%20%20%20%20%20%20%20%20%3CTText%20anonymous%20data%3D%22and%20this%20is%20%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%3CTText%20tagName%3D%22strong%22%20data%3D%22too%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%3CTText%20anonymous%20data%3D%22.%22%20%2F%3E%0A%20%20%20%20%20%20%3C%2FTPhrasing%3E%0A%20%20%20%20%3C%2FTBlock%3E%0A%20%20%3C%2FTBlock%3E%0A%3C%2FTDocument%3E" /> + +:::tip Learn More +A detailed review of the Transient Render Engine has its [**dedicated article**](/react-native-render-html/docs/flow/transient-render-engine). +You can also learn more about the new data flow in the [**Architecture article**](/react-native-render-html/docs/architecture). +::: + +### Custom Renderers + +The new rendering API is an order of magnitude more powerful than the legacy. +Custom renderers are now plain React Component instead of functions, and you +have now access to the underlying renderer for rich customization: + +```jsx title="Foundry Custom Renderer" +import React from 'react'; +import { Alert } from 'react-native'; + +function H1Renderer({ + TDefaultRenderer, + ...props +}) { + const onPress = () => Alert.alert('pressed!'); + return ( + <TDefaultRenderer + {...props} + onPress={onPress} + /> + ); +} +``` +Default renderers support `onPress` and many more interesting props! See +​<Reference type="api-def" name="TDefaultRendererProps" url="/react-native-render-html/api/tdefaultrendererprops" />. +Moreover, you can customize the rendering of children thanks to the <Reference +type="api-def" name="TChildrenRenderer" url="/react-native-render-html/api/tchildrenrenderer" /> component! + +```jsx title="Foundry Custom Renderer with Children Tampering" +import React from 'react'; +import { TChildrenRenderer } from 'react-native-render-html'; +import AdComponent from './AdComponent'; + +function ArticleWithAds({ + TDefaultRenderer, + tnode, + ...defaultRendererProps +}) { + const firstChildrenChunk = tnode.children.slice(0, 2); + const secondChildrenChunk = tnode.children.slice(2, 4); + const thirdChildrenChunk = tnode.children.slice(4); + return ( + <TDefaultRenderer tnode={tnode} {...defaultRendererProps}> + <TChildrenRenderer tchildren={firstChildrenChunk} /> + {firstChildrenChunk.length === 2 ? <AdComponent /> : null} + <TChildrenRenderer tchildren={secondChildrenChunk} /> + {secondChildrenChunk.length === 2 ? <AdComponent /> : null} + <TChildrenRenderer tchildren={thirdChildrenChunk} /> + </TDefaultRenderer> + ); +} +``` +This custom renderer will insert an `AdComponent` element after the second and +fourth children of this <Reference type="api-def" name="TNode" url="/react-native-render-html/api/tnode" />. + +Last but not least, custom renderers can reuse internal renderers (those +special renderers displaying lists, images and anchors). For this purpose, +you can use the <Reference type="api-def" name="InternalRenderer" url="/react-native-render-html/api/customrendererprops#internalrenderer" /> prop or <Reference type="api-def" name="useInternalRenderer" url="/react-native-render-html/api/useinternalrenderer" /> hook. + +:::tip Learn More +[**Check-out the Custom Rendering guide**](/react-native-render-html/docs/guides/custom-renderers). +::: + +### Font Selection + +CSS `font-family` property allows a comma-separated list of fonts, while react +Native `fontFamily` does not. Moreover, setting a font that is not available in +the system will often lead to native crashes. To reconcile this inconsistency, the CSS +Processor will try to match each font in a `font-family` property with a list +of supported fonts available in the system by the library consumer. The prop to +declare such fonts is <Reference type="api-def" name="systemFonts" +url="/react-native-render-html/api/renderhtmlprops#systemfonts"/>. + +:::tip Learn More +[**Check-out the Font Selection section from the Textual guide**](/react-native-render-html/docs/content/textual#font-selection). +::: + +### A Revamped List Renderer + +The versatile new list component [gives access to 47 markers +presets](https://github.com/jsamr/react-native-li/tree/master/packages/counter-style#readme) +for custom [CSS Counter +Styles](https://drafts.csswg.org/css-counter-styles-3/); supports +`list-style-type` CSS property and `start` attribute. There is also an experimental RTL feature! + +<ListsShowcase /> + +Note that the **thai** and **arabic indic** counters have been rendered via +[@jsamr/counter-style](https://github.com/jsamr/react-native-li/tree/master/packages/counter-style#readme) +presets, and the **russian** counter has been rendered with a custom, 2 +lines-of-code counter renderer. Learn more about this fancy feature and examples [**in the dedicated +article**](/react-native-render-html/docs/content/lists). + +### Extensible Internal Image Renderer + +The new internal image renderer is shipped with `object-fit` CSS property support. +Moreover, **its building blocks are completely reusable for custom +rendering**: + +<dl> + +<dt> + +​<Reference library="react-native-render-html" name="IMGElementContainer" url="/react-native-render-html/api/imgelementcontainer" member={undefined} full={false} type="api-def" plural={undefined} /> + +</dt><dd> + +To render the container of the ​<Reference full={false} name="<img>" url="https://mdn.io/img" type="html-el" /> element. + +</dd><dt> + +​<Reference library="react-native-render-html" name="IMGElementContentError" url="/react-native-render-html/api/imgelementcontenterror" member={undefined} full={false} type="api-def" plural={undefined} /> + +</dt><dd> + +To render the fallback view on error state. + +</dd><dt> + +​<Reference library="react-native-render-html" name="IMGElementContentLoading" url="/react-native-render-html/api/imgelementcontentloading" member={undefined} full={false} type="api-def" plural={undefined} /> + +</dt><dd> + +To render the fallback view on loading state. + +</dd><dt> + +​<Reference library="react-native-render-html" name="IMGElementContentSuccess" url="/react-native-render-html/api/imgelementcontentsuccess" member={undefined} full={false} type="api-def" plural={undefined} /> + +</dt><dd> + +To render the image on success state.. + +</dd><dt> + +​<Reference library="react-native-render-html" name="useIMGElementState" url="/react-native-render-html/api/useimgelementstate" member={undefined} full={false} type="api-def" plural={undefined} /> + +</dt><dd> + +To get the state of the image resource fetching. + +</dd> + +</dl> + + +:::tip Learn More +[**Check-out the Images article**](/react-native-render-html/docs/content/images). +::: + +### Composite Rendering Architecture + +The three-layer rendering architecture shows its potential when rendering many HTML +snippets at a time. It basically means that you can put configuration in a +context to avoid the cost of instantiating the TRE too many times: + +```jsx +<RenderHTML source={{ html }} /> +``` + +is equivalent to this (**explicit 3 layers**): + +```jsx +<TRenderEngineProvider> + <RenderHTMLConfigProvider> + <RenderHTMLSource source={{ html }} /> + </RenderHTMLConfigProvider> +</TRenderEngineProvider> +``` + +:::tip Learn More +[**Check-out the rendering article**](/react-native-render-html/docs/flow/rendering). +::: + +It also offers the ability to select the root of the document to render, and to +inspect the DOM object asynchronously before rendering. + +:::tip Learn More +[**Check-out the DOM Tampering guide**](/react-native-render-html/docs/guides/dom-tampering) +::: + +## Massive dumps of squashed bugs + +After merging the Foundry PR to master, **73% of open issues have been +closed**. Most fixes stem from the efficiency and rigor of the new test-driven +CSS processor and Transient Render Engine. Most notable areas of fixes: + +- **Unrecognized styles** crashing the app. The new CSS processor is strict and +deterministic in what is translatable to React Native styles and what is not. +- **Missing inheritable styles**. Styles inheritance and specificity are +implemented and battle-tested in the TRE. +- **List prefixes styles** not inheriting from parent styles (color...). The +new list internal renderer takes them all. +- **Missing HTML tags support**. The TRE now has explicit support for all the +tags specified in the [HTML5 WHATWG living +standard](https://html.spec.whatwg.org/). However, not all tags will be +rendered. Tags with a **content model** set to `none` will not be rendered (you +can override this model though). Check-out the list of all tags and their +models in the <Reference type="api-doc" name="defaultHTMLElementModels" url="/react-native-render-html/api/defaulthtmlelementmodels/" /> definition. + +:::tip Learn More +[Check-out the release notes for more details](https://github.com/meliorence/react-native-render-html/releases/tag/v6.0.0-beta.0). +::: + +## Ready for Production? + +### Quality and Stability Assessments + +With all the bug fixes, high test coverage and API stability, entering the +beta stage means **the Foundry release is now ready for production**. Test coverage for +the CSS processor and TRE is **100%** (see +[native-html/core](https://github.com/native-html/core)) repository. The +`react-native-render-html` package has a test coverage above **64%**, and will +rise to above **90%** by the end of the beta stage. + +### Migrating from v4 and v5 + +[**Check-out our dedicated +guide**](/react-native-render-html/docs/migration-guide), and please don't +hesitate to ask for help in [**our discord channel**](https://discord.gg/dbEMMJM). + +## Final Notes + +:::note Consulting +I am available for consulting, to help you incorporate this +library in your project or migrate from legacy versions. Contact me via +[email](https://github.com/jsamr) or +[LinkedIn](https://www.linkedin.com/in/js-randolph/). +::: + +I want to thank [Maxime Bertonnier](https://github.com/Exilz), the original +first contributor of `react-native-render-html` for letting me join the team +and take over this awesome project. I want to also thank all those amazing +alpha-testers from the community who have helped me refine the API over the +last 7 months. And finally, kudos to [Expensify](https://use.expensify.com/), +Inc. for hiring me to build the first iteration of the engine, which was +originally motivated by the lack of whitespace collapsing support. + +<SocialLinks twitterUrl="https://twitter.com/jsamrn/status/1402322299395756032" redditUrl="https://www.reddit.com/r/reactjs/comments/nva0dk/announcing_the_beta_foundry_release_of_react/" /> \ No newline at end of file diff --git a/apps/website/blog/2021-06-27-create-blog-app-rnrh-I.mdx b/apps/website/blog/2021-06-27-create-blog-app-rnrh-I.mdx new file mode 100644 index 00000000..53d663b3 --- /dev/null +++ b/apps/website/blog/2021-06-27-create-blog-app-rnrh-I.mdx @@ -0,0 +1,248 @@ +--- +title: 'Create A WebView-free Blog App with React Native Render HTML, Part I' +author: Jules Sam. Randolph +author_title: Developer of React Native Render HTML v6 +author_url: https://github.com/jsamr/ +author_image_url: https://avatars.githubusercontent.com/u/3646758?v=4 +tags: [foundry, Blog, Article] +description: A step-by-step guide to render a Blog Article with table of content and scroll-to-section feature in React Native. +image: img/article-create-webviewfree-blog-app.png +hide_table_of_contents: false +--- +import SocialLinks from '@site/src/components/SocialLinks'; +import Screenshot from '@site/src/components/Screenshot'; +import APIReference from '@site/src/components/APIReference'; +import ExpoBlogCard from '@site/src/components/ExpoBlogCard'; + +<Screenshot + style={{ float: 'right', marginLeft: 10 }} + url="/img/article-body-dark.png" + scale={0.75} +/> + +The [Foundry Release beta is out](./2021-06-07-foundry-announcement.mdx), and I wanted to show you its powerful +capabilities with a very common use-case: rendering an article from a Blog. For +this case study, we will use the official React Native blog, which is build on +[Docusaurus](https://docusaurus.io/). The App will feature: + +- A list of articles fetched from an RSS Feed; +- An aside table of content displayed in a drawer layout; +- A scroll-to-section feature when pressing a TOC entry. + +This study will be a good opportunity to learn or revisit important techniques +to master this library. Also note that the implementation, especially targeted +CSS classes are inherently tied to how the website is structured. Since the +React Native blog is built on Docusaurus, the implementation should be very +easy to transpose in other docusaurus-based blogs. + +Now, let's get to the heart of it ❤️ + +<div style={{ clear: 'right' }} /> + +<!--truncate--> + +:::tip +The source code of this case study is available in the `main` branch of this +repo: [`jsamr/rnrh-blog`](https://github.com/jsamr/rnrh-blog). The `enhanced` +branch contains a few more features beyond this tutorial, such as a refined UI, +dark mode, caching with [react-queries](https://react-query.tanstack.com/)... +etc. You can try out the **enhanced** version right now with expo, see [the +project page](https://expo.io/@jsamr/react-native-blog) for instructions. +::: + +:::tip +If you have any question or remarks regarding this tutorial, [you're welcome in our Discord channel](https://discord.gg/dbEMMJM). +::: + +## Introduction + + +I propose starting with the end-result, and then explain how we got there. The App has two screens: + +1. The Home screen, displaying a list of articles fetched from a RSS feed. +2. The Article screen, displaying the body of the article and a side-menu to navigate into sections. + +The navigation is handled by [React Navigation](https://reactnavigation.org/) library, and most of the +components come from [React Native Paper](https://reactnativepaper.com/). + +:::important +The steps laid out in this tutorial won't cover the **enhanced** implementation such as +seen in below gallery. We will focus on simplicity and won't spend much time on +theming. But you can always check out the enhanced implementation here: +[`jsamr/rnrh-blog` (enhanced branch)](https://github.com/jsamr/rnrh-blog/tree/enhanced) +::: + +### Gallery + +<div style={{display: 'flex', gap: 20, justifyContent: 'center' }}> + +<Screenshot url="/img/home-dark.png" scale={0.5} /> +<Screenshot url="/img/article-body-dark.png" scale={0.5} /> +<Screenshot url="/img/article-side-dark.png" scale={0.5} /> + +</div> + +<div style={{display: 'flex', gap: 20, justifyContent: 'center' }}> + +<Screenshot url="/img/home-light.png" scale={0.5} /> +<Screenshot url="/img/article-body-light.png" scale={0.5} /> +<Screenshot url="/img/article-side-light.png" scale={0.5} /> + +</div> + +<ExpoBlogCard /> + +## Getting Started + +We will use Expo cli to initiate the project. If you don't have it installed yet, install the cli globally: + +```bash +npm install -g expo-cli +``` + +After which, create the project. We will use TypeScript and yarn, but of course +you're free to set a plain JavaScript project instead. + +```bash +expo init rnrh-blog -t expo-template-blank-typescript --name Blog --yarn +``` + +Then we need to install dependencies required for this project: + +```bash +cd rnrh-blog +expo install @react-navigation/native@^5 @react-navigation/stack@^5 \ + react-native-screens react-native-safe-area-context \ + react-native-rss-parser@^1 react-native-render-html \ + react-native-paper@^4 react-native-gesture-handler events +``` + +Now, run + +```bash +yarn android +``` + +to launch the App in an android emulator. + +## Setting Up Navigation + +### Declare the Routes in TypeScript + +Create a new `shared-types.ts` file in the root of your project with the following definitions: + +```ts title="shared-types.ts" +export type RootStackParamList = { + Home: undefined; + Article: ArticleParams; +}; + +export interface ArticleParams { + url: string; + title: string; +} +``` + +These types define the names of the routes supported by our stack navigator, +and the types of their params. Notice that the `Article` route takes a `url` +and `title` for display. + +### Create the Routes Components + +Add two files, `screens/HomeScreen.tsx` and `screens/ArticleScreen.tsx`: + +```tsx title="screens/HomeScreen.tsx" +import React from 'react'; +import { Text } from 'react-native'; +import { SafeAreaView } from 'react-native-safe-area-context'; + +export default function HomeScreen() { + return ( + <SafeAreaView> + <Text>Welcome to the React Native Blog!</Text> + </SafeAreaView> + ); +} +``` + +```tsx title="screens/ArticleScreen.tsx" +import React, { useEffect } from 'react'; +import { StackScreenProps } from '@react-navigation/stack'; +import { RootStackParamList } from '../shared-types'; + +type ArticleScreenProps = StackScreenProps<RootStackParamList, 'Article'>; + +function useSetTitleEffect({ route, navigation }: ArticleScreenProps) { + useEffect( + function setTitle() { + navigation.setOptions({ title: route.params.title }); + }, + [route.params.title, navigation] + ); +} + +export default function ArticleScreen(props: ArticleScreenProps) { + useSetTitleEffect(props); + return null; +} +``` + +:::note Remarks +In the `ArticleScreen` component, we define an effect to set the screen title +displayed in the header based on a route parameter. The logic is internal +to the [React Navigation](https://reactnavigation.org/) library. +::: + +### Create the Root Navigator + +Replace the current `App.tsx` with the following: + +```tsx title="App.tsx" +import { createStackNavigator } from '@react-navigation/stack'; +import { SafeAreaProvider } from 'react-native-safe-area-context'; +import React from 'react'; +import { NavigationContainer } from '@react-navigation/native'; +import { RootStackParamList } from './shared-types'; +import HomeScreen from './screens/HomeScreen'; +import ArticleScreen from './screens/ArticleScreen'; + +const Stack = createStackNavigator<RootStackParamList>(); + +export default function App() { + return ( + <SafeAreaProvider> + <NavigationContainer> + <Stack.Navigator + screenOptions={{ + headerShown: false + }}> + <Stack.Screen + name="Home" + options={{ title: 'Blog' }} + component={HomeScreen} + /> + <Stack.Screen + name="Article" + options={{ headerShown: true }} + component={ArticleScreen} + /> + </Stack.Navigator> + </NavigationContainer> + </SafeAreaProvider> + ); +} +``` + +You should finally see a screen displaying "Welcome to the React Native Blog"! +Great, the structure is ready: from now on, we can implement each of those +screens. + +:::tip +If you are not familiar with React Navigation, you could benefit from reading +its [Stack Navigator +documentation](https://reactnavigation.org/docs/stack-navigator) before going further. +::: + +**Now, we're ready to implement the RSS feed list. Let's jump to [Part II](./2021-06-28-create-blog-app-rnrh-II.mdx)**. + +<SocialLinks twitterUrl="https://twitter.com/jsamrn/status/1409520975226490880" redditUrl="https://www.reddit.com/r/reactnative/comments/o948fs/i_wrote_a_demo_and_tutorial_for_a_webviewfree/" /> \ No newline at end of file diff --git a/apps/website/blog/2021-06-28-create-blog-app-rnrh-II.mdx b/apps/website/blog/2021-06-28-create-blog-app-rnrh-II.mdx new file mode 100644 index 00000000..3a0b0393 --- /dev/null +++ b/apps/website/blog/2021-06-28-create-blog-app-rnrh-II.mdx @@ -0,0 +1,796 @@ +--- +title: 'Create A WebView-free Blog App with React Native Render HTML, Part II' +author: Jules Sam. Randolph +author_title: Developer of React Native Render HTML v6 +author_url: https://github.com/jsamr/ +author_image_url: https://avatars.githubusercontent.com/u/3646758?v=4 +tags: [foundry, Blog, Article] +description: A step-by-step guide to render a Blog Article with table of content and scroll-to-section feature in React Native. +image: img/article-create-webviewfree-blog-app.png +hide_table_of_contents: false +--- +import SocialLinks from '@site/src/components/SocialLinks'; +import Screenshot from '@site/src/components/Screenshot'; +import APIReference from '@site/src/components/APIReference'; +import ExpoBlogCard from '@site/src/components/ExpoBlogCard'; + +This article is the part II of the *Create a WebView-free Blog App with React Native Render HTML* serie. +See also [Part I](./2021-06-27-create-blog-app-rnrh-I.mdx) and [Part III](./2021-06-29-create-blog-app-rnrh-III.mdx). + +<!--truncate--> + +:::tip +The source code of this case study is available in the `main` branch of this +repo: [`jsamr/rnrh-blog`](https://github.com/jsamr/rnrh-blog). The `enhanced` +branch contains a few more features beyond this tutorial, such as a refined UI, +dark mode, caching with [react-queries](https://react-query.tanstack.com/)... +etc. You can try out the **enhanced** version right now with expo, see [the +project page](https://expo.io/@jsamr/react-native-blog) for instructions. +::: + +:::tip +If you have any question or remarks regarding this tutorial, [you're welcome in our Discord channel](https://discord.gg/dbEMMJM). +::: + +<ExpoBlogCard /> + +## The Home Screen + +Let's get back to our `HomeScreen.tsx` file. Below are the steps to get to a functional component: + +1. Fetch the RSS feed items. We'll do this in the `useRssFeed` hook. +2. Render a `FlatList` filled with the fetched items. +3. Render individual items in a `FeedItemDisplay` component. + +### The `useRssFeed` Hook + +First of all, we'll define the `FeedItem` TypeScript interface in +`shared-types.ts`. This is the shape of items parsed by the RSS parser. + +```tsx title="shared-types.ts" +// ... previous exports + +export interface FeedItem { + title: string; + links: [{ url: string }]; + description: string; + published: string; +} +``` + +Then, let's define the hook in the `hooks/useRssFeed.ts` file. + +```tsx title="hooks/useRssFeed.ts" +import { useState, useEffect, useCallback } from 'react'; +import * as rssParser from 'react-native-rss-parser'; +import { FeedItem } from '../shared-types'; + +export default function useRssFeed(feed: string) { + const [{ isRefreshing, refreshId, items }, setRssState] = useState({ + items: null as null | FeedItem[], + isRefreshing: true, + refreshId: 0 + }); + const refresh = useCallback(() => { + setRssState((s) => ({ + ...s, + isRefreshing: true, + refreshId: s.refreshId + 1 + })); + }, []); + useEffect( + function loadFeed() { + let cancelled = false; + (async function () { + const response = await fetch(feed); + if (response.ok) { + const data = await response.text(); + const feed = await rssParser.parse(data); + !cancelled && + setRssState((s) => ({ + ...s, + items: (feed.items as unknown) as FeedItem[], + isRefreshing: false + })); + } else { + !cancelled && + setRssState((s) => ({ + ...s, + isRefreshing: false + })); + } + })(); + return () => { + cancelled = true; + }; + }, + [refreshId, feed] + ); + return { refresh, isRefreshing, items }; +} +``` + +This hook uses an effect to load the feed, and store the retrieved items in a +local state (`items`). A few remarks: + +1. We provide a `refresh` function to trigger a new fetch along with a `isRefreshing` + state. +2. The effect callback returns a cleanup function to avoid setting state on + unmounted components. Not doing this is considered an antipattern, see [this + guide](https://dev.to/pallymore/clean-up-async-requests-in-useeffect-hooks-90h) for a deep dive. + +Last but not least, if you are using TypeScript, you will need to add module +definitions for rss-parser. Put this file in the `hooks` folder: + +```ts title="hooks/react-native-rss-parser.d.ts" +declare module 'react-native-rss-parser'; +``` + +### The `FeedItemDisplay` Component + +We are going to define this component in the `components` directory, like so: + +```tsx title="components/FeedItemDisplay.tsx" +import { NavigationProp, useNavigation } from '@react-navigation/native'; +import React, { useCallback } from 'react'; +import { Card, Text } from 'react-native-paper'; +import { FeedItem, RootStackParamList } from '../shared-types'; + +export default function FeedItemDisplay({ item }: { item: FeedItem }) { + const date = new Date(Date.parse(item.published)); + const navigation = useNavigation<NavigationProp<RootStackParamList>>(); + const url = item.links[0].url; + const onPress = useCallback(() => { + navigation.navigate('Article', { url: url, title: item.title }); + }, [url]); + return ( + <Card + style={{ + marginHorizontal: 10, + paddingRight: 10 + }} + onPress={onPress}> + <Card.Title + titleNumberOfLines={2} + title={item.title} + titleStyle={{ lineHeight: 26 }} + subtitle={date.toLocaleDateString()} + /> + <Card.Content> + <Text numberOfLines={3}>{item.description}</Text> + </Card.Content> + </Card> + ); +} +``` + +This component barely displays a `FeedItem` in a `Card` component from +`react-native-paper`. Besides, it allows navigation to the "Article" route when +pressed. + +### The List Component + +Since we have the data consumable with a hook, and individual items, let's +rewrite the default export of `screens/HomeScreen.tsx`: + +```tsx +import React from 'react'; +import { FlatList, ListRenderItem, View } from 'react-native'; +// ... other imports +import FeedItemDisplay from '../components/FeedItemDisplay'; +import useRssFeed from '../hooks/useRssFeed'; + +function Separator() { + return <View style={{ height: 10 }} />; +} + +const renderItem: ListRenderItem<FeedItem> = function renderItem({ item }) { + return <FeedItemDisplay item={item} />; +}; + +export default function HomeScreen() { + const { items, refresh, isRefreshing } = useRssFeed( + 'https://reactnative.dev/blog/rss.xml' + ); + return ( + <SafeAreaView style={{ flexGrow: 1 }}> + <FlatList + onRefresh={refresh} + refreshing={isRefreshing} + data={items} + renderItem={renderItem} + ListFooterComponent={Separator} + ItemSeparatorComponent={Separator} + ListHeaderComponent={Separator} + /> + </SafeAreaView> + ); +} +``` + +<Screenshot + style={{ float: 'right', marginLeft: 10 }} + url="/img/blog-article-home.png" + scale={0.5} +/> + +Great! Thus you should be able to see the list on your app. Press a card and +you'll see an empty Article screen showing up. Note that we are using a +`Separator` component for consistent spacing above, below and between items. + +:::tip +If you are unfamiliar with the `FlatList` component, [check out the official guide](https://reactnative.dev/docs/using-a-listview). +::: + +:::note +You can drag-to-refresh the list to fetch the RSS feed again. This is thanks to +`onRefresh` and `refreshing` props of the `FlatList` component. +::: + +Now it's time to refine the Article screen! + +<div style={{ clear: 'right' }} /> + +## The Article Screen + +To render the article, we'll need to follow the below steps: + +1. Fetch the HTML from the given URL; +2. Parse the HTML to build a DOM; +3. Extract headings from the DOM; +4. Render the headings in a Drawer and the DOM in a `ScrollView` with <APIReference name="RenderHTMLSource" />. + +One important note is that we must use the [explicit composite rendering +architecture](/react-native-render-html/docs/flow/rendering#composite-rendering-architecture) +because we want access to the DOM object from the controlling component to +easily extract headings, which is more tedious when using the +implicit composite architecture (e.g., with the <APIReference name="RenderHTML" +/> component). + +### Setting up the Composite Rendering Architecture + +Explicit composite rendering implies that we will replace <APIReference name="RenderHTML" /> with <APIReference name="RenderHTMLSource" +/>, which will have two ascendants in the render tree: a <APIReference name="TRenderEngineProvider" /> +and a <APIReference name="RenderHTMLConfigProvider" />. Those +parents will respectively share an engine instance and configuration with any +​<APIReference name="RenderHTMLSource" /> descendant. + +A good place to put those providers is the very root of the application. For that end, we will +create a `components/WebEngine.tsx` and load it from `App.tsx`: + +```tsx title="components/WebEngine.tsx" +import * as React from 'react'; +import { + RenderHTMLConfigProvider, + TRenderEngineProvider, + TRenderEngineConfig, +} from 'react-native-render-html'; +import { findOne } from 'domutils'; + +const selectDomRoot: TRenderEngineConfig["selectDomRoot"] = (node) => + findOne((e) => e.name === "article", node.children, true); + +const ignoredDomTags = ["button"]; + +export default function WebEngine({ children }: React.PropsWithChildren<{}>) { + // Every prop is defined outside of the function component. + // This is important to prevent extraneous rebuilts of the engine. + return ( + <TRenderEngineProvider + ignoredDomTags={ignoredDomTags} + selectDomRoot={selectDomRoot}> + <RenderHTMLConfigProvider enableExperimentalMarginCollapsing> + {children} + </RenderHTMLConfigProvider> + </TRenderEngineProvider> + ); +} +``` + +A few remarks on different props used here: + +- <APIReference name="TRenderEngineConfig" member="ignoreDomTags" full /> prop to + ignore irrelevant tags; +- <APIReference name="TRenderEngineConfig" member="selectDomRoot" full /> prop to + select the first DOM element to render; +- <APIReference + name="RenderHTMLConfig" + member="enableExperimentalMarginCollapsing" + full + /> prop to collapse vertical margins. + +We will go back to this component later to refine the appearance. For the time +being, we'll focus on features. +A final step is to import the `WebEngine` from the root component: + +```tsx {2,8,28} title="App.tsx" +// ... other imports +import WebEngine from './components/WebEngine'; + +const Stack = createStackNavigator<RootStackParamList>(); + +export default function App() { + return ( + <WebEngine> + <SafeAreaProvider> + <NavigationContainer> + <Stack.Navigator + screenOptions={{ + headerShown: false + }}> + <Stack.Screen + name="Home" + options={{ title: 'Blog' }} + component={HomeScreen} + /> + <Stack.Screen + name="Article" + options={{ headerShown: true }} + component={ArticleScreen} + /> + </Stack.Navigator> + </NavigationContainer> + </SafeAreaProvider> + </WebEngine> + ); +} +``` + +### Rendering the Article + +#### The `ArticleBody` Component + +Let's implement an `ArticleBody` component which sole purpose is to display +the rendered DOM when it's ready, and a loading indicator when it's not: + +```tsx title="components/ArticleBody.tsx" +import React from 'react'; +import { StyleSheet, View } from 'react-native'; +import { useWindowDimensions } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; +import { RenderHTMLSource, Document } from 'react-native-render-html'; +import { ActivityIndicator } from 'react-native-paper'; + +function LoadingDisplay() { + return ( + <View style={styles.loading}> + <ActivityIndicator color="#61dafb" size="large" /> + </View> + ); +} + +const HZ_MARGIN = 10; + +export default function ArticleBody({ dom }: { dom: Document | null }) { + const { width } = useWindowDimensions(); + const availableWidth = Math.min(width, 500); + return ( + <ScrollView + style={styles.container} + contentContainerStyle={[ + styles.content, + { width: availableWidth } + ]}> + {dom ? ( + <RenderHTMLSource + contentWidth={availableWidth - 2 * HZ_MARGIN} + source={{ + dom + }} + /> + ) : ( + <LoadingDisplay /> + )} + </ScrollView> + ); +} + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + }, + content: { + flexGrow: 1, + alignSelf: "center", + paddingHorizontal: HZ_MARGIN, + // leave some space for the FAB + paddingBottom: 65 + }, + loading: { + flexGrow: 1, + justifyContent: "center", + alignItems: "center", + }, + loading: { + flexGrow: 1, + justifyContent: "center", + alignItems: "center", + }, +}); +``` + +Note that the <APIReference name="RenderHTMLSourceProps" member="source" full/> +prop can take a `dom`, `uri` or `html` field. Just as a reminder, we need to +use the `dom` source variant because we will have to query +headings displayed in a Drawer menu. + +#### Back to the `ArticleScreen` + +We need to produce a `dom` object to feed the `ArticleBody` component we have +just defined. We propose two hooks to produce this object: + +- `useFetchHtml(url: string)` to fetch the HTML; +- `useArticleDom(url: string)` to create a DOM. + +Add this new file in `hooks/useArticleDom.ts`: + +```tsx title="hooks/useArticleDom.ts" +import { useEffect, useState, useMemo } from 'react'; +import { useAmbientTRenderEngine } from 'react-native-render-html'; + +function useFetchHtml(url: string) { + const [fetechState, setState] = useState({ + html: null as string | null, + error: null as string | null + }); + useEffect( + function fetchArticle() { + let cancelled = false; + (async function () { + const response = await fetch(url); + if (response.ok) { + const html = await response.text(); + !cancelled && setState({ html, error: null }); + } else { + !cancelled && + setState({ + html: null, + error: `Could not load HTML. Received status ${response.status}` + }); + } + })(); + return () => { + cancelled = true; + }; + }, + [url] + ); + return fetechState; +} + +export default function useArticleDom(url: string) { + const engine = useAmbientTRenderEngine(); + const { html } = useFetchHtml(url); + const dom = useMemo(() => { + if (typeof html === 'string') { + return engine.parseDocument(html); + } + return null; + }, [html, engine]); + return { + dom + }; +} +``` + +The important stuff is happening in the `useArticleDom` hook. We're using +​<APIReference name="useAmbientTRenderEngine" /> hook to get the +instance of the Transient Render Engine provided by <APIReference name="TRenderEngineProvider" />, +which in turns offers the <APIReference name="TRenderEngine" member="parseDocument" /> method to +transform an HTML string into a DOM. Moreover, note that because we passed <APIReference name="TRenderEngineConfig" member="selectDomRoot" /> +prop to select the first `<article>` met, the returned `dom` object will be an +`<article>` element. Everything else such as `<header>`, `<footer>` and other +elements will be ignored. + +Finally, let's consume this hook from the `ArticleScreen` component and render an `ArticleBody`: + +```tsx title="screens/ArticleScreen" +// ... other imports +import ArticleBody from '../components/ArticleBody'; +import useArticleDom from '../hooks/useArticleDom'; + +// ... other definitions + +export default function ArticleScreen(props: ArticleScreenProps) { + useSetTitleEffect(props); + const { dom } = useArticleDom(props.route.params.url); + return <ArticleBody dom={dom} />; +} +``` + +Fantastic! It's now rendering the whole article. **It's very ugly though, and +significantly divergent from the webpage layout, but we'll address that later**: + +<Screenshot scale={0.85} url="/img/blog-article-body-unstyled.png" /> + +### The Drawer Layout + +We want to display a menu on the right. For this purpose, we will use the +[`DrawerLayout`](https://docs.swmansion.com/react-native-gesture-handler/docs/api/components/drawer-layout/) +component from `react-native-gesture-handler`. + +Let's include this component in the `ArticleScreen` component: + +```tsx title="screens/ArticleScreen" +import React, { useCallback, useEffect, useRef } from 'react'; +// ... other imports +import { StyleSheet } from 'react-native'; +import { DrawerLayout } from 'react-native-gesture-handler'; +import { FAB } from 'react-native-paper'; + +// ... other definitions + +function useDrawer() { + const drawerRef = useRef<DrawerLayout>(null); + const openDrawer = useCallback(() => { + drawerRef.current?.openDrawer(); + }, []); + const closeDrawer = useCallback(() => { + drawerRef.current?.closeDrawer(); + }, []); + return { + drawerRef, + openDrawer, + closeDrawer + }; +} + +export default function ArticleScreen(props: ArticleScreenProps) { + useSetTitleEffect(props); + const { dom } = useArticleDom(props.route.params.url); + const { drawerRef, openDrawer } = useDrawer(); + const renderToc = useCallback(function renderSceneContent() { + return null; + }, []); + return ( + <DrawerLayout + drawerPosition="right" + drawerWidth={300} + renderNavigationView={renderToc} + ref={drawerRef}> + <ArticleBody dom={dom} /> + <FAB + style={styles.fab} + color="#61dafb" + icon="format-list-bulleted-square" + onPress={openDrawer} + /> + </DrawerLayout> + ); +} + +const styles = StyleSheet.create({ + fab: { + position: 'absolute', + bottom: 15, + right: 15, + backgroundColor: 'white' + } +}); +``` + +### Extracting headings + +Now, let's get back to `useArticleDom` hook and use an effect to extract headings from the DOM: + +```ts {1,3-4,10,18-33,36} title="hooks/useArticleDom.ts" +import { useEffect, useState, useMemo } from 'react'; +// ... other imports +import { findAll } from 'domutils'; +import { Element } from 'domhandler'; + +// useFetchHtml + +export default function useArticleDom(url: string) { + const engine = useAmbientTRenderEngine(); + const [headings, setHeadings] = useState<Element[]>([]); + const { html } = useFetchHtml(url); + const dom = useMemo(() => { + if (typeof html === 'string') { + return engine.parseDocument(html); + } + return null; + }, [html, engine]); + useEffect( + function extractHeadings() { + if (dom != null) { + // We know the DOM hierarchy is going to be document → body → article + // because the engine will always ensure that a root document + // and a body are present. This process is called normalization. + const article = (dom.children[0] as Element)?.children[0] as Element; + const headers = findAll( + (elm) => elm.tagName === 'h2' || elm.tagName === 'h3', + article.children + ); + setHeadings(headers); + } + }, + [dom] + ); + return { + dom, + headings + }; +} +``` + +The effect is pretty straightforwards. It uses `findAll` from `domutils` to +extract all `h2` and `h3` tags, and finally update the `headings` state. +We are now ready to define a new `TOC` component to render those headings in the drawer. + +### The `TOC` Component + +Let's start by defining a `TOCEntry` component in `components/TOCEntry.tsx`: + +```tsx title="components/TOCEntry.tsx" +import React from 'react'; +import { Pressable, StyleSheet, Text } from 'react-native'; + +export default function TOCEntry({ + headerName, + tagName, + active, + onPress +}: { + headerName: string; + tagName: string; + active: boolean; + onPress: () => void; +}) { + return ( + <Pressable + style={[styles.container, active && styles['container--active']]} + onPress={onPress} + android_ripple={{ color: '#baebf3' }}> + <Text + style={[ + styles.label, + styles[`label--${tagName as 'h2' | 'h3'}` as const] + ]}> + {headerName} + </Text> + </Pressable> + ); +} + +const styles = StyleSheet.create({ + container: { + marginBottom: 10, + paddingRight: 20, + marginLeft: 10, + borderRadius: 10, + paddingVertical: 10 + }, + 'container--active': { + backgroundColor: "rgba(186, 235, 243, 0.5)" + }, + label: { + textAlign: 'right', + fontSize: 14, + color: 'rgb(28, 30, 33)' + }, + 'label--h2': { + fontSize: 18 + }, + 'label--h3': {} +}); +``` + +The `TOCEntry` renders a `Pressable` which label is styled depending of the +`tagName` (h2 or h3) and whether it's active (e.g. selected). +Now we're ready to define the `TOC` component in `components/TOC.tsx`: + +```tsx title="components/TOC.tsx" +import React, { useState } from 'react'; +import { ScrollView, StyleSheet, View } from 'react-native'; +import { textContent } from 'domutils'; +import { Element } from 'domhandler'; +import TOCEntry from './TOCEntry'; + +export default function TOC({ + headings, + onPressEntry +}: { + headings: Element[]; + onPressEntry?: (name: string) => void; +}) { + const [activeEntry, setActiveEntry] = useState( + headings.length ? textContent(headings[0]) : '' + ); + return ( + <ScrollView + contentContainerStyle={styles.scrollContent} + style={styles.scrollView}> + <View style={styles.scrollBackground} /> + {headings.map((header) => { + const headerName = textContent(header); + const onPress = () => { + setActiveEntry(headerName); + onPressEntry?.(headerName); + }; + return ( + <TOCEntry + active={headerName === activeEntry} + key={headerName} + onPress={onPress} + tagName={header.tagName} + headerName={headerName} + /> + ); + })} + </ScrollView> + ); +} + +const styles = StyleSheet.create({ + scrollView: { + flex: 1, + backgroundColor: 'white', + opacity: 0.92, + paddingRight: 10 + }, + scrollContent: { + flex: 1, + paddingVertical: 20, + position: 'relative' + }, + scrollBackground: { + ...StyleSheet.absoluteFillObject, + flex: 1, + borderRightWidth: 1, + marginRight: 10, + borderColor: 'rgba(125,125,125,0.3)' + } +}); +``` + +Finally, we must render the `TOC` component in the `ArticleScreen`: + +```tsx {2,10-18} title="screens/ArticleScreen.tsx" +// other imports +import TOC from '../components/TOC'; + +// ... + +export default function ArticleScreen(props: ArticleScreenProps) { + useSetTitleEffect(props); + const { dom, headings } = useArticleDom(props.route.params.url); + const { drawerRef, openDrawer } = useDrawer(); + const onPressEntry = useCallback((entry: string) => { + // We'll handle that later + }, []); + const renderToc = useCallback( + function renderToc() { + return <TOC headings={headings} onPressEntry={onPressEntry} />; + }, + [headings] + ); + return ( + <DrawerLayout + drawerPosition="right" + drawerWidth={300} + renderNavigationView={renderToc} + ref={drawerRef}> + <ArticleBody dom={dom} /> + <FAB + style={styles.fab} + color="#61dafb" + icon="format-list-bulleted-square" + onPress={openDrawer} + /> + </DrawerLayout> + ); +} + +// styles +``` + +Now, you should have a drawable TOC! + +<Screenshot scale={0.85} url="/img/blog-article-side.png" /> + +However, pressing an entry won't do anything. **It is hence time to tackle the +implementation of the tap-to-scroll feature! Let's jump to [Part +III](./2021-06-29-create-blog-app-rnrh-III.mdx)**. + +<SocialLinks twitterUrl="https://twitter.com/jsamrn/status/1409520975226490880" redditUrl="https://www.reddit.com/r/reactnative/comments/o948fs/i_wrote_a_demo_and_tutorial_for_a_webviewfree/" /> \ No newline at end of file diff --git a/apps/website/blog/2021-06-29-create-blog-app-rnrh-III.mdx b/apps/website/blog/2021-06-29-create-blog-app-rnrh-III.mdx new file mode 100644 index 00000000..11a4a8d9 --- /dev/null +++ b/apps/website/blog/2021-06-29-create-blog-app-rnrh-III.mdx @@ -0,0 +1,848 @@ +--- +title: 'Create A WebView-free Blog App with React Native Render HTML, Part III' +author: Jules Sam. Randolph +author_title: Developer of React Native Render HTML v6 +author_url: https://github.com/jsamr/ +author_image_url: https://avatars.githubusercontent.com/u/3646758?v=4 +tags: [foundry, Blog, Article] +description: A step-by-step guide to render a Blog Article with table of content and scroll-to-section feature in React Native. +image: img/article-create-webviewfree-blog-app.png +hide_table_of_contents: false +--- +import SocialLinks from '@site/src/components/SocialLinks'; +import Screenshot from '@site/src/components/Screenshot'; +import APIReference from '@site/src/components/APIReference'; +import ExpoBlogCard from '@site/src/components/ExpoBlogCard'; + +This article is the part III of the *Create a WebView-free Blog App with React Native Render HTML* serie. +See also [Part I](./2021-06-27-create-blog-app-rnrh-I.mdx) and [Part II](./2021-06-28-create-blog-app-rnrh-II.mdx). + +<!--truncate--> + +:::tip +The source code of this case study is available in the `main` branch of this +repo: [`jsamr/rnrh-blog`](https://github.com/jsamr/rnrh-blog). The `enhanced` +branch contains a few more features beyond this tutorial, such as a refined UI, +dark mode, caching with [react-queries](https://react-query.tanstack.com/)... +etc. You can try out the **enhanced** version right now with expo, see [the +project page](https://expo.io/@jsamr/react-native-blog) for instructions. +::: + +:::tip +If you have any question or remarks regarding this tutorial, [you're welcome in our Discord channel](https://discord.gg/dbEMMJM). +::: + +<ExpoBlogCard /> + +## Tap To Scroll Feature + +### The `Scroller` Class + +We'll put all the scrolling logic in a `Scroller` class that we'll later use with hooks. +Create this new file: `utils/Scroller.ts`: + +```ts title="utils/Scroller.ts" +import { MutableRefObject } from "react"; +import { LayoutChangeEvent, Platform, ScrollViewProps } from "react-native"; +import { ScrollView } from "react-native-gesture-handler"; +import { EventEmitter } from "events"; + +// This is the min distance from the top edge of the scroll view +// to select a heading +const MIN_DIST_FROM_TOP_EDG = 15; + +export default class Scroller { + private ref: MutableRefObject<ScrollView | null>; + private entriesMap: Record<string, number> = {}; + private entriesCoordinates: Array<[string, number]> = []; + private eventEmitter = new EventEmitter(); + private lastEntryName = ""; + private offset = 0; + + constructor(ref: MutableRefObject<ScrollView | null>) { + this.ref = ref; + } + + handlers: ScrollViewProps = { + onContentSizeChange: () => { + this.entriesCoordinates = Object.entries(this.entriesMap).sort( + (a, b) => a[1] - b[1] + ); + }, + onScroll: ({ nativeEvent }) => { + const offsetY = + nativeEvent.contentOffset.y - this.offset + MIN_DIST_FROM_TOP_EDG; + const layoutHeight = nativeEvent.layoutMeasurement.height; + // We use a conditional to avoid overheading the JS thread on Android. + // On iOS, scrollEventThrottle will do the work. + if (Platform.OS !== "android" || Math.abs(nativeEvent.velocity!.y) < 1) { + for (let i = 0; i < this.entriesCoordinates.length; i++) { + const [entryName, lowerBound] = this.entriesCoordinates[i]; + const upperBound = + i < this.entriesCoordinates.length - 1 + ? this.entriesCoordinates[i + 1][1] + : lowerBound + layoutHeight; + if (offsetY >= lowerBound && offsetY < upperBound) { + if (entryName !== this.lastEntryName) { + this.eventEmitter.emit("select-entry", entryName); + this.lastEntryName = entryName; + } + break; + } + } + } + }, + }; + + setOffset(offset: number) { + this.offset = offset; + } + + addSelectedEntryListener(listener: (entryName: string) => void) { + this.eventEmitter.addListener("select-entry", listener); + } + + removeSelectedEntryListener(listener: (entryName: string) => void) { + this.eventEmitter.removeListener("select-entry", listener); + } + + registerScrollEntry(name: string, layout: LayoutChangeEvent) { + this.entriesMap[name] = layout.nativeEvent.layout.y; + } + + scrollToEntry(entryName: string) { + if (entryName in this.entriesMap) { + this.ref.current?.scrollTo({ + y: this.entriesMap[entryName] + this.offset - MIN_DIST_FROM_TOP_EDG, + animated: true, + }); + } + } +} +``` + +Below is a summary of each member in this class. + +<dl> + <dt> + + `constructor` + + </dt> + <dd> + + The constructor takes a `ScrollView` ref to enable the `scrollToEntry` method. + + </dd> + <dt> + + `addSelectedEntryListener` + + </dt> + <dd> + + A method to listen to selected entry changes. This will be useful + in the table of content drawer to update the active entry on scroll. + + </dd> + <dt> + + `removeSelectedEntryListener` + + </dt> + <dd> + + A method to free a listener to selected entry changes. + + </dd> + <dt> + + `registerScrollEntry` + + </dt> + <dd> + + A method to be used with `onLayout` in order to store the coordinates + of each entry in the body of the article. + + </dd> + <dt> + + `handlers` + + </dt> + <dd> + + Event handlers to be passed to a `ScrollView` component. The `onScroll` handler + will be used to update the selected entry in the table of content drawer. + + </dd> + <dt> + + `setOffset` + + </dt> + <dd> + + A method to set the offset of the `headings` container. Because of the DOM + structure offered by Docusaurus wich looks like: + + + ```html + <article> + <header>...</header> + <div class="markdown"> + <h2>...</h2> + <h3>...</h3> + </div> + </article> + ``` + + the computed headings tags coordinates will be relative to the `<div>` rather + then relative to the `ScrollView` content, and we need to adjust to that. + + </dd> + <dt> + + `scrollToEntry` + + </dt> + <dd> + + A method to imperatively scroll to the given entry name. + + </dd> +</dl> + +### Sharing the `Scroller` in a React Context + +Let's start by creating a scroller context and export the relevant hook and +provider: + +```ts title="utils/scroller.tsx" +import React, { createContext, PropsWithChildren, useContext } from "react"; +import Scroller from './Scroller'; + +const scrollerContext = createContext<Scroller>(null as any); + +export function useScroller(): Scroller { + return useContext(scrollerContext); +} + +export function ScrollerProvider({ + children, + scroller +}: PropsWithChildren<{ scroller: Scroller }>) { + return ( + <scrollerContext.Provider value={scroller}> + {children} + </scrollerContext.Provider> + ); +} +``` + +Then we can provide a `scroller` instance from the `ArticleScreen` component, +and scroll to the targeted entry on menu entry press. + +```tsx {1,3-4,8-15,22-26,34,41,49} title="screens/ArticleScreen.tsx" +import React, { useCallback, useEffect, useRef, useMemo } from "react"; +// ... other imports +import Scroller from "../utils/Scroller"; +import { ScrollerProvider } from "../utils/scroller"; + +// other hooks + +function useScrollFeature(scrollerDep: any) { + const scrollViewRef = useRef<null | ScrollView>(null); + const scroller = useMemo(() => new Scroller(scrollViewRef), [scrollerDep]); + return { + scroller, + scrollViewRef, + }; +} + +export default function ArticleScreen(props: ArticleScreenProps) { + useSetTitleEffect(props); + const url = props.route.params.url; + const { dom, headings } = useArticleDom(url); + const { drawerRef, openDrawer, closeDrawer } = useDrawer(); + const { scrollViewRef, scroller } = useScrollFeature(url); + const onPressEntry = useCallback((entry: string) => { + closeDrawer(); + scroller.scrollToEntry(entry); + }, [scroller]); + const renderToc = useCallback( + function renderToc() { + return <TOC headings={headings} onPressEntry={onPressEntry} />; + }, + [headings] + ); + return ( + <ScrollerProvider scroller={scroller}> + <DrawerLayout + drawerPosition="right" + drawerWidth={300} + renderNavigationView={renderToc} + ref={drawerRef} + > + <ArticleBody scrollViewRef={scrollViewRef} dom={dom} /> + <FAB + style={styles.fab} + color="#61dafb" + icon="format-list-bulleted-square" + onPress={openDrawer} + /> + </DrawerLayout> + </ScrollerProvider> + ); +} + +// styles +``` + +Finally, we must consume the `scrollViewRef` in the `ArticleBody` component, +and pass the `Scroller.handlers` event handlers to the `ScrollView` component: + +```tsx {3,9,12,16,19} title="components/ArticleBody.tsx" +import React, { useCallback } from "react"; +// ... other imports +import { useScroller } from "../utils/scroller"; + +// other definitions + +export default function ArticleBody({ + dom, + scrollViewRef +}: { + dom: Document | null; + scrollViewRef: any; +}) { + const { width } = useWindowDimensions(); + const availableWidth = Math.min(width, 500); + const scroller = useScroller(); + return ( + <ScrollView + {...scroller.handlers} + style={styles.container} + ref={scrollViewRef} + scrollEventThrottle={100} + // other props + > + {/* ... */} + </ScrollView> + ); +} +``` + +Great! Nevertheless we have yet two unaddressed issues: + +- Update selected entry on scroll in the `TOC`; +- Register headings layouts. We will use a custom renderer for that purpose. + +### Listening to Entry Changes in `TOC` + +First of all, I propose to factor the logic of adding a listener to +selected entry changes in a separate hook (`hooks/useOnEntryChangeEffect.ts`): + +```ts title="hooks/useOnEntryChangeEffect.ts" +import { useEffect } from "react"; +import { useScroller } from "../utils/scroller"; + +export default function useOnEntryChangeEffect( + onEntryChange: (entryName: string) => void +) { + const scroller = useScroller(); + useEffect( + function updateActiveTargetOnScroll() { + scroller.addSelectedEntryListener(onEntryChange); + return () => scroller.removeSelectedEntryListener(onEntryChange); + }, + [scroller, onEntryChange] + ); +} +``` + +Then, we just need to consume this hook from the `TOC` component: + +```ts {2,14} title="components/TOC.tsx" +// ...other imports +import useOnEntryChangeEffect from "../hooks/useOnEntryChangeEffect"; + +export default function TOC({ + headings, + onPressEntry, +}: { + headings: Element[]; + onPressEntry?: (name: string) => void; +}) { + const [activeEntry, setActiveEntry] = useState( + headings.length ? textContent(headings[0]) : "" + ); + useOnEntryChangeEffect(setActiveEntry); + // ... +} +``` + +### Register Headings Layouts + +The `Scroller` is still missing the coordinates of each heading to be able to +properly `scrollToEntry`. For this purpose, we are going to create a [custom +renderer](/react-native-render-html/docs/guides/custom-renderers#component-based-custom-rendering) +for `<h2>` and `<h3>` tags. We will also need to register a `<header>` renderer +to store the header height. If you remember well, the DOM has a structure like +below: + +```html +<article> + <!-- We need to account for the header height --> + <header>...</header> + <div class="markdown"> + <h2>...</h2> + <h3>...</h3> + </div> +</article> +``` + + +Let's get back to `components/WebEngine.tsx` and register both renderers here: + +```tsx {1,3-4,9,10,11,13-45,50,61} title="components/WebEngine.tsx" +import React, { useCallback } from "react"; +import { + CustomBlockRenderer, + CustomTagRendererRecord, + RenderHTMLConfigProvider, + TRenderEngineProvider, + TRenderEngineConfig, +} from "react-native-render-html"; +import { findOne, textContent } from "domutils"; +import { useScroller } from "../utils/scroller"; +import { LayoutChangeEvent } from "react-native"; + +const HeadingRenderer: CustomBlockRenderer = function HeaderRenderer({ + TDefaultRenderer, + ...props +}) { + const scroller = useScroller(); + const onLayout = useCallback( + (e: LayoutChangeEvent) => { + scroller.registerScrollEntry(textContent(props.tnode.domNode!), e); + }, + [scroller] + ); + return <TDefaultRenderer {...props} viewProps={{ onLayout }} />; +}; + +const HeaderRenderer: CustomBlockRenderer = function HeaderRenderer({ + TDefaultRenderer, + ...props +}) { + const scroller = useScroller(); + const onLayout = useCallback( + (e: LayoutChangeEvent) => { + scroller.setOffset(e.nativeEvent.layout.y + e.nativeEvent.layout.height); + }, + [scroller] + ); + return <TDefaultRenderer {...props} viewProps={{ onLayout }} />; +}; + +const renderers: CustomTagRendererRecord = { + h2: HeadingRenderer, + h3: HeadingRenderer, + header: HeaderRenderer, +}; + +const selectDomRoot: TRenderEngineConfig["selectDomRoot"] = (node) => + findOne((e) => e.name === "article", node.children, true); + +const ignoredDomTags = ["button", "footer"]; + +export default function WebEngine({ children }: React.PropsWithChildren<{}>) { + // Every prop is defined outside of the function component. + // This is important to prevent extraneous rebuilts of the engine. + return ( + <TRenderEngineProvider + ignoredDomTags={ignoredDomTags} + selectDomRoot={selectDomRoot} + > + <RenderHTMLConfigProvider + renderers={renderers} + enableExperimentalMarginCollapsing + > + {children} + </RenderHTMLConfigProvider> + </TRenderEngineProvider> + ); +} +``` + +Because the `<h2>`, `<h3>` and `<header>` tags have a content model set to +**block**, they will be rendered in a `View`, so we can pass `onLayout` in +​<APIReference name="TDefaultRendererProps" member="viewProps" /> prop. + +Hence we're done with the tap-to-scroll feature! But the `ArticleBody` is still +pretty ugly, so we'll use some styles and fixes to prettify it! + +## Styling Refinements + +### Fixing the Avatar + +The avatar should be 50x50 and its container displayed in row. We are going to fix it in two steps: + +1. By targeting the container class with styles to display in row; +2. By setting a custom `<img>` renderer to fix the size. + +So let's edit the `components/WebEngine` to apply those fixes: + +```tsx {5,9,15-21,26,31-63,70} title="components/WebEngine" +import React, { useCallback } from "react"; +import { + CustomBlockRenderer, + CustomTagRendererRecord, + MixedStyleRecord, + RenderHTMLConfigProvider, + TRenderEngineProvider, + TRenderEngineConfig, + useInternalRenderer, +} from "react-native-render-html"; +// ... other imports + +// HeaderRenderer + +const ImageRenderer: CustomBlockRenderer = function ImageRenderer(props) { + const { Renderer, rendererProps } = useInternalRenderer("img", props); + if (props.tnode.parent?.hasClass("avatar__photo")) { + return <Renderer {...rendererProps} width={50} height={50} />; + } + return <Renderer {...rendererProps} />; +}; + +const renderers: CustomTagRendererRecord = { + h2: HeadingRenderer, + h3: HeadingRenderer, + img: ImageRenderer +}; + +// ... other definitions + +const classesStyles: MixedStyleRecord = { + avatar: { + marginTop: 10, + flexDirection: "row", + alignItems: "center", + flexWrap: "nowrap", + }, + avatar__photo: { + width: 50, + height: 50, + borderRadius: 25, + overflow: "hidden", + }, + avatar__intro: { + flexShrink: 1, + alignItems: "flex-start", + }, + avatar__name: { + fontWeight: "bold", + flexGrow: 0, + marginBottom: 10, + }, + avatar__subtitle: { + color: "rgb(118, 118, 118)", + fontWeight: "bold", + lineHeight: 16, + }, + "avatar__photo-link": { + borderRadius: 25, + marginRight: 10, + overflow: "hidden", + }, +} + +export default function WebEngine({ children }: React.PropsWithChildren<{}>) { + return ( + <TRenderEngineProvider + ignoredDomTags={ignoredDomTags} + selectDomRoot={selectDomRoot} + classesStyles={classesStyles} + // other props + > + {/*...*/} + </TRenderEngineProvider> + ); +} +``` + +### Fixing Paragraphs in `<li>` Elements + +Paragraphs nested in `<li>` elements have top and bottom margins, which is undesirable. +To fix the issue, we're going to add a custom `<p>` renderer like so: + +```tsx title="components/WebEngine.tsx" +// renderers and imports + +const ParagraphRenderer: CustomBlockRenderer = function ParagraphRenderer({ + TDefaultRenderer, + tnode, + ...props +}) { + const marginsFix = + tnode.markers.olNestLevel > -1 || tnode.markers.ulNestLevel > -1 + ? { marginTop: 0, marginBottom: 0 } + : null; + return ( + <TDefaultRenderer + {...props} + tnode={tnode} + style={[props.style, marginsFix]} + /> + ); +}; + +const renderers: CustomTagRendererRecord = { + // ... other renderers + p: ParagraphRenderer +}; +``` + +:::note +We are using `markers` which contain the current nest level of `ol` and `ul` +elements to assess if we are rendering inside a list. See <APIReference name="Markers" />. +::: + +### Discard `#` anchors appended to Headings by Docusaurus + +These elements have a `"hash-link"` class, so we can use `ignoreDomNode` to discard them: + +```tsx {5,15-16,25} title="components/WebEngine.tsx" +import React, { useCallback } from "react"; +import { + CustomBlockRenderer, + CustomTagRendererRecord, + isDomElement, + MixedStyleRecord, + RenderHTMLConfigProvider, + TRenderEngineProvider, + TRenderEngineConfig, + useInternalRenderer, +} from "react-native-render-html"; + +// ... + +const ignoreDomNode: TRenderEngineConfig["ignoreDomNode"] = (node) => + isDomElement(node) && !!node.attribs.class?.match(/hash-link/); + +export default function WebEngine({ children }: React.PropsWithChildren<{}>) { + // Every prop is defined outside of the function component. + // This is important to prevent extraneous rebuilts of the engine. + return ( + <TRenderEngineProvider + ignoredDomTags={ignoredDomTags} + selectDomRoot={selectDomRoot} + ignoreDomNode={ignoreDomNode} + // ... + > + {/*...*/} + </TRenderEngineProvider> + ); +} +``` + +Great! Now the `#` characters have been removed: + +<Screenshot url="/img/blog-article-body-code-issue.png" scale={0.85} /> + +However, code samples look pretty ugly: + +- They're missing padding; +- They should be horizontally scrollable and lines should not wrap; +- A monospace font should be used; +- Whitespaces should be preserved. + +So, let's fix it! + +### Fixing Code Samples + +Code samples are rendered by Docusaurus in a `<pre class="prism-code">` tag. We need to fix two issues: + +- Define a custom renderer for `pre` tags, which renders inside a `ScrollView` when matching the `"prism-code"` class. +- Define a custom renderer for `span` tags. We need to do that because the +whole code block is rendered inside a `code` element with a `display: flex; +flex-direction: column`. However, `code` is translated to a React Native `Text` +since his element model is **textual**. To work around this issue, we can +inject line breaks after each `span` element with a CSS `token-line` class +which content does not end with a new line. + + +```tsx title="components/WebEngine.tsx" +// ...other imports +import { TChildrenRenderer } from 'react-native-render-html'; +import { ScrollView } from 'react-native-gesture-handler'; + +// ... + +const PreRenderer: CustomBlockRenderer = function PreRenderer({ + TDefaultRenderer, + ...props +}) { + if (props.tnode.hasClass("prism-code")) { + return ( + <ScrollView horizontal style={props.style}> + <TDefaultRenderer + {...props} + style={{ flexGrow: 1, flexShrink: 1, padding: 10 }} + /> + </ScrollView> + ); + } + return <TDefaultRenderer {...props} />; +}; + +function tnodeEndsWithNewLine(tnode: TNode): boolean { + if (tnode.type === "text") { + return tnode.data.endsWith("\n"); + } + const lastChild = tnode.children[tnode.children.length - 1]; + return lastChild ? tnodeEndsWithNewLine(lastChild) : false; +} + +const SpanRenderer: CustomTextualRenderer = function SpanRenderer({ + TDefaultRenderer, + ...props +}) { + if (props.tnode.hasClass("token-line") && !tnodeEndsWithNewLine(props.tnode)) { + return ( + <TDefaultRenderer {...props}> + <TChildrenRenderer tchildren={props.tnode.children} /> + {"\n"} + </TDefaultRenderer> + ); + } + return <TDefaultRenderer {...props} />; +}; + +const renderers: CustomTagRendererRecord = { + // ... other renderers + span: SpanRenderer, + pre: PreRenderer, +}; + +const classesStyles: MixedStyleRecord = { + // ... other classes styles + "prism-code": { + backgroundColor: "#282c34", + fontFamily: "monospace", + borderRadius: 10, + fontSize: 14, + lineHeight: 14 * 1.6, + flexShrink: 0, + }, +}; +``` + +<Screenshot url="/img/blog-article-body-code-fixed.png" scale={0.85} /> + +That's looking much better. We're almost done! + +### Final Touch + +We could add a few more styles to match the React Native blog styles: + +```tsx title="components/WebEngine.tsx" +import { + // ... + MixedStyleDeclaration, + // ... +} from "react-native-render-html"; + +// other imports and declarations + +const tagsStyles: MixedStyleRecord = { + a: { + color: "#1c1e21", + backgroundColor: "rgba(187, 239, 253, 0.3)", + }, + li: { + marginBottom: 10, + }, + img: { + alignSelf: "center", + }, + h4: { + marginBottom: 0, + marginTop: 0, + }, + code: { + backgroundColor: "rgba(0, 0, 0, 0.06)", + fontSize: 14, + }, + blockquote: { + marginLeft: 0, + marginRight: 0, + paddingLeft: 20, + paddingRight: 20, + backgroundColor: "#fff8d8", + borderLeftWidth: 10, + borderLeftColor: "#ffe564", + }, +}; + +const baseStyle: MixedStyleDeclaration = { + color: "#1c1e21", + fontSize: 16, + lineHeight: 16 * 1.8, +}; + +export default function WebEngine({ children }: React.PropsWithChildren<{}>) { + return ( + <TRenderEngineProvider + // ... + tagsStyles={tagsStyles} + baseStyle={baseStyle}> + {/*...*/} + </TRenderEngineProvider> + ); +} +``` + +<Screenshot url="/img/blog-article-body-refined.png" scale={0.85} /> + +## Epilogue + +### Frustrating React Native Text Limitations + +As a final note, I'd like to mention a few frustrating limitations in React +Native that prevented me from replicating more accurately the official blog styles: + +1. `backgroundColor` spans to the full line-box of text elements, whereas in +CSS, it only spans to the text content-area. Below is a diagram explaining the difference: +![](https://iamvdo.me/content/01-blog/30-css-avance-metriques-des-fontes-line-height-et-vertical-align/line-height.png) See a complete explanation [in this excellent article on CSS text styling](https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align). +2. `padding` and `border` are ignored in nested text elements. + +All these features are required to get the official blog appealing anchors styles: + +![](/img/react-native-blog-anchors.png) + +Instead we have backgrounds overlapping each other, which becomes weird when there is a high density of anchors: + +![](/img/appaling-react-native-text-bg.png) + +This is because, as stated before, the `backgroundColor` spans to the entire +height of the line box, instead of spanning to the content area. + +### Going Further + +You can take a look at the [`enhanced` branch of the project](https://github.com/jsamr/rnrh-blog/tree/enhanced) and see how the +below features have been implemented: + +- Cached queries with `react-queries`; +- Dark mode (follows system mode); +- Progressive rendering for fast time to first contentful paint via `FlatList`; +- Collapsible header with `react-native-reanimated` (v2); +- Video support with `expo-av`. + +That's all for this tutorial! Don't forget to [give us a star](https://github.com/meliorence/react-native-render-html) if you enjoy this library. +You can also [follow me on Twitter](https://twitter.com/jsamrn), and [rate this library on Open Base](https://openbase.com/js/react-native-render-html?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge). + +<SocialLinks twitterUrl="https://twitter.com/jsamrn/status/1409520975226490880" redditUrl="https://www.reddit.com/r/reactnative/comments/o948fs/i_wrote_a_demo_and_tutorial_for_a_webviewfree/" /> \ No newline at end of file diff --git a/apps/website/blog/2021-10-23-6-2-updates.mdx b/apps/website/blog/2021-10-23-6-2-updates.mdx new file mode 100644 index 00000000..54b379df --- /dev/null +++ b/apps/website/blog/2021-10-23-6-2-updates.mdx @@ -0,0 +1,434 @@ +--- +title: What's New in v6.2? +author: Jules Sam. Randolph +author_title: Developer of React Native Render HTML v6 +author_url: https://github.com/jsamr/ +author_image_url: https://avatars.githubusercontent.com/u/3646758?v=4 +tags: [foundry, 'release notes'] +description: A version focused on accessibility and enhanced model rendering. +image: img/article-6.2-release-notes.png +hide_table_of_contents: false +draft: false +--- + +import APIReference from '@site/src/components/APIReference'; +import Reference from '@site/src/components/Reference'; +import SocialLinks from '@site/src/components/SocialLinks'; + +It has been over three months since the first final version of the Foundry +release has been made public. Today, I am glad to announce the release of the 6.2 version! This new version focuses on two areas of +improvements: + +1. [Accessibility](https://en.wikipedia.org/wiki/Computer_accessibility), and more specifically integration with _VoiceOver_ and _TalkBack_ screen readers; +2. Richer [model-based + rendering](/docs/guides/custom-renderers#model-based-custom-rendering), and the + feature to define React Native props from those models. + +As you will discover through this reading, both are somehow related. Let's find out how! + +:::info bonus +This post also covers a due overview of features introduced in the previous 6.1 minor release. +::: + +<!--truncate--> + +## You Might not Need a Custom Component Renderer + +[Model-based rendering](/docs/guides/custom-renderers#model-based-custom-rendering) via <APIReference name="RenderHTMLProps" +member="customHTMLElementModels"/> prop has been a lightweight alternative to +custom (component) renderers since the early stages of the Foundry release. +However, it was limited to setting user agent styles (<APIReference +name="HTMLElementModel" member="mixedUAStyles" />), +although those styles could be derived from the DOM node element attributes +(the now-deprecated <APIReference name="HTMLElementModel" member="getUADerivedStyleFromAttributes" />). +The below example is a reminder on how those element models can be defined, for instance to +register a new `<blue-circle>` tag which renders to a 50 by 50 blue circle! + +```js title="An Example of Model-Based Rendering" +import RenderHTML, { + HTMLElementModel, + HTMLContentModel +} from 'react-native-render-html'; + +// The eponym prop to pass to RenderHTML +const customHTMLElementModels = { + 'blue-circle': HTMLElementModel.fromCustomModel({ + tagName: 'blue-circle', + mixedUAStyles: { + width: 50, + height: 50, + borderRadius: 25, + alignSelf: 'center', + backgroundColor: 'blue' + }, + contentModel: HTMLContentModel.block + }) +}; +``` + +:::important +Keep in mind that <APIReference name="HTMLElementModel" member="mixedUAStyles" +/> has a lower specificity than styles passed to `RenderHTML` such as +​<APIReference name="RenderHTMLProps" member="tagsStyles" />. +See the [CSS Processing guide](/docs/flow/css-processing#specificity) section +related to specificity for a refresher. +::: + +Version 6.2 ships with a bunch of new fields for HTML element models which +should increase model-based rendering adoption. Let's take a tour! + +### `getMixedUAStyles` + +This field deprecates <APIReference name="HTMLElementModel" +member="getUADerivedStyleFromAttributes"/>; it serves the same purpose but its +signature has changed. It now receives the target `tnode` and DOM `element`, +which lets us implement more fine-grained logic such as CSS-selector-like +behaviors: + +```js title="Conditionnaly remove margins of 'ol' direct descendents of 'p' elements." +import RenderHTML, { + defaultHTMLElementModels, + isDomElement +} from 'react-native-render-html'; + +// The eponym prop to pass to RenderHTML +const customHTMLElementModels = { + ol: defaultHTMLElementModels.ol.extend({ + getMixedUAStyles(tnode, element) { + if (isDomElement(element.parent) && element.parent.tagName === 'p') { + // This is equivalent to targetting a "p > ol" CSS selector. + return { + marginTop: 0, + marginBottom: 0 + }; + } + } + }) +}; +``` + +However and as stated before, those styles will have a lower specificity than tags, classes and +ID styles and as such, these are not "real" CSS selectors. Hopefully, CSS selectors will be +implemented at some point, [you can upvote the feature request here](https://native-html.canny.io/features/p/support-complex-css-like-selectors-eg-div-button)! +The hard challenge is that these should not impede performances. I am planning to explore this issue next year. + +:::warning +Beware that this `tnode` is an instance of <APIReference name="TNodeDescriptor" +/>, which is a minimal `tnode` shape available during the Transient Render +Engine creation. You will not have access to `parent` or `children` fields, +since the hierarchy is yet in the making. This is why we are using the second +argument, `element`, to query the DOM hierarchy instead. For this very reason, +you are advised to use [`domutils`](https://github.com/fb55/domutils) library +to query the DOM and create your conditional styling rules. +::: + +### `reactNativeProps` + +This field holds props that will be passed to the native component during the +rendering phase. It is an object with three optional properties (for reference, +the shape of this object is a <APIReference name="ReactNativePropsDefinitions" +/>): + +1. `text`, to pass native props to `Text`-backed renderers; +2. `view`, to pass native props to `View`-backed renderers; +3. `native`, to pass props to either `View` or `Text`-backed renderers. + +In the next snippet, we are defining a custom tag, `<nav-widget>`, and setting +accessibility props to any underlying native component for the render phase. We +can also define `onPress`, which will cause the renderer to use the +​<APIReference name="RenderHTMLProps" member="GenericPressable" /> instead of +default `View` for block renderers. + +```js title="Defining React Native props in an HTML element model" +import RenderHTML, { + HTMLContentModel, + HTMLElementModel +} from 'react-native-render-html'; + +// The eponym prop to pass to RenderHTML +const customHTMLElementModels = { + 'nav-widget': HTMLElementModel.fromCustomModel({ + tagName: 'nav-widget', + contentModel: HTMLContentModel.block, + reactNativeProps: { + native: { + accessibilityRole: 'link', + onPress() { + console.info('Pressed the nav widget!'); + } + } + } + }) +}; +``` + +However, this field is somehow limited in that it cannot depend on `tnode` attributes. +This is where <APIReference name="HTMLElementModel" member="getReactNativeProps" /> comes to the rescue! + +### `getReactNativeProps` + +The purpose of this field is identical to <APIReference name="HTMLElementModel" +member="reactNativeProps" /> field. It only differs in that instead of a plain +object, it is a method which takes three arguments. A `tnode` (the Transient Node), +the `preGeneratedProps` (props generated by the TRE such as accessibility props, see next section) +and and `element` (the DOM node). Finally, it returns a plain object (see <APIReference +name="ReactNativePropsDefinitions" />). + +In the example below, a custom `nav-widget` tag is registered. This time, we +are handling `onPress` events conditionally, based on attributes of the +`tnode`. The snippets uses a phony API, `appNavigatorController`, to navigate +between screens. Such API is easy to implement with a globally-defined ref to a +[`react-navigation`](https://reactnavigation.org) "navigation" object. + +:::important +It is worth noting that you cannot use React hooks in those element models +functions. But you can use any ad-hoc API to emit events, and glue that logic +to hooks. If you really need React hooks, it might be simple to [create a custom +component renderer](/docs/guides/custom-renderers#component-based-custom-rendering). +::: + +```js title="Defining React Native props based on the TNode in an HTML element model" +import RenderHTML, { + HTMLContentModel, + HTMLElementModel +} from 'react-native-render-html'; +import appNavigatorController from './appNavigatorController'; + +// The eponym prop to pass to RenderHTML +const customHTMLElementModels = { + 'nav-widget': HTMLElementModel.fromCustomModel({ + tagName: 'nav-widget', + contentModel: HTMLContentModel.block, + getReactNativeProps(tnode) { + return { + native: { + accessibilityRole: 'link', + onPress() { + const targetScreen = tnode.attributes['data-target']; + const targetParams = tnode.attributes['data-params']; + appNavigatorController.navigate( + targetScreen, + targetParams ? JSON.parse(targetParams) : null + ); + } + } + }; + } + }) +}; +``` + +:::tip +Don't forget that you can mix model-based and component-based rendering! +::: + +## A Focus on Accessibility + +Screen readers integration has been worked on sparsely since the Foundry +release, by addressing issues raised by the community, but until v6.2 there has +not been structural improvements to cover the full range of required features. +Thanks to the new Transient Render Engine, it has become very easy to define +translations from HTML attributes to React Native props within the engine. +Let's find out what's new! + +### Support for `aria-label` and `role` Attributes + +On one hand, <Reference type="html-attr" url="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute" name="aria-label" /> +is used to hint screen readers on how a specific node **and all its descendants** should be read out loud. It is especially +useful to handle icons which don't have inner semantic meanings. This attribute has a React Native prop equivalent, namely +[`accessibilityLabel`](https://reactnative.dev/docs/accessibility#accessibilitylabel), which serves the same purpose. +On the other hand, <Reference type="html-attr" url="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles" name="role" /> +informs the screen reader of the target element nature and how a user might interact with it. +This attributes roughly maps to React Native [`accessibilityRole`](https://reactnative.dev/docs/accessibility#accessibilityrole) +prop, although the set of allowed values slightly differs. +See [all supported roles and their mapping +here](https://github.com/native-html/core/blob/00c0cd1034c4cb721e991d5c02b232c4d64eae3d/packages/transient-render-engine/src/tree/TNodeCtor.ts#L33). + +:::warning +Remember that a majority of interactive elements will not be rendered by this library. You must change their +content model to <APIReference name="HTMLContentModel" member="block" /> in order for them to be rendered. +Nevertheless, those interactive element models are already shipped with the appropriate `accessibilityRole` prop. +::: + +The new Transient Render Engine will from now on +translate both attributes to their React Native counterparts. + +### Accessible `<a>` Tags + +`<a>` tags now receive an `accessibilityRole="link"` prop when their `href` +attribute is non-empty. To link that part with model enhancements seen in +the previous section, let's see now how we could set [an accessibility +hint](https://reactnative.dev/docs/accessibility#accessibilityhint) by +extending the HTML model: + +```ts +import RenderHTML, { defaultHTMLElementModels } from 'react-native-render-html'; + +// The eponym prop to pass to RenderHTML +const customHTMLElementModels = { + a: defaultHTMLElementModels.a.extend((aModel) => ({ + reactNativeProps: { + ...aModel.reactNativeProps, + native: { + ...aModel.reactNativeProps?.native, + accessibilityHint: 'Open in your system web browser.' + } + } + })) +}; +``` + +Notice that <APIReference full name="HTMLElementModel" member="extend" /> +method can now take a generator function. Pretty convenient to merge +nested fields! + +:::warning +Because of a [React Native +bug](https://github.com/facebook/react-native/issues/32004), nested +`Text` elements are not accessible, which means that the screen reader will not +be able to identify `<a>` tags as links when grouped with other textual +elements. Below is an example: + +```html +<p> + Unfortunately, + <a href="https://domain.com">this hyperlink is not accessible</a> +</p> +``` + +Luke Walczak from Callstack [explains how to circumvent this issue in a great +post](https://callstack.com/blog/react-native-android-accessibility-tips/). +Unfortunately, this workaround cannot be genericized and we will have to wait +for an upstream fix. +::: + +### Enhanced Accessibility for `<img>` Tags + +`<img>` tags have been accessible since the Foundry beta. But the accessibility +props were set after the loading was complete. We have found that changing +accessibility annotations on the fly can degrade aural +experiences and have provided a fix. + +:::info +`accessibilityRole="image"` will be set for `<img>` only when either `alt` or +`aria-label` attribute is present. +::: + +### Accessible `<h1-6>` Tags + +React Native has a “header” accessibility role which screen reader users depend +on widely to identify quickly the content hierarchy of a screen. Until this +release, `react-native-render-html` did not pass the appropriate role to +heading tags. + +## Other Enhancements + +### Support for `user-select` CSS property + +With the new Transient Render Engine featuring React Native prop generation, it +has become very easy to pass the `selectable` prop to React Native `Text` +components based on the presence of `user-select` CSS property. Usage example: + +```html +<p style="user-select: none"> + This line is not selectable.<br /> + <span>Neither is that one.</span> +</p> +``` + +:::important +Please not that this is not full support. The TRE will map `user-select: none;` to `selectable={false}` and +any other value to `selectable={true}`. +::: + +## Bonus: Version 6.1 Features + +I didn't publish a release notes post for this version; I'm catching up +here! From now on, I will try to write up a post for each minor and major +release. + +### `enableExperimentalBRCollapsing` Prop + +This **recommended prop** allows consumers to circumvent a bug in the Foundry +release where line breaks (`<br>`) would be printed erroneously, such +as at the end of a paragraph. Its default it yet `false` to avoid introducing +breaking changes but it will be enabled by default in the next major +release. + +:::tip learn more +Read the complete explanation for this prop [in the textual content guide](/docs/content/textual#line-breaks). +::: + +### `enableExperimentalGhostLinesPrevention` Prop + +This **recommended prop** allows to circumvent [a React Native +bug](https://github.com/facebook/react-native/issues/32062) where empty `Text` +elements would be printed as ghost lines of fixed height (around 20 dpi). Its +default it yet `false` to avoid introducing breaking changes but it will be +enabled by default in the next major release. + +:::tip learn more +Read the complete explanation for this prop [in the textual content guide](/docs/content/textual#empty-tags). +::: + +### `provideEmbeddedHeaders` Prop + +A function prop which allows to generate HTTP headers for +remote resources. It currently works with `<img>` and `<iframe>` tags (since version 2.6 of the +[`@native-html/iframe-plugin`](https://github.com/native-html/plugins/tree/master/packages/iframe-plugin#readme) library). + +:::tip learn more +See for example how it can be used with images [in the image content guide](/docs/content/images#providing-headers). +::: + +### `bypassAnonymousTPhrasingNodes` Prop + +This prop, `true` by default, makes the React rendering layer bypass grouping +(anonymous) `TPhrasing` nodes which have only one child. It is best understood by +example. For instance, the following HTML snippet: + +```html +<p>A sentence.</p> +``` + +will produce the below Transient Render Tree: + +```xml +<TBlock tagName="p"> + <TPhrasing> + <TText>A sentence.</TText> + </TPhrasing> +</TBlock> +``` + +which by default rendering rules, would be translated to the below React render tree: + +```xml +<View> + <Text> + <Text>A sentence.</Text> + </Text> +</View> +``` + +However, when `bypassAnonymousTPhrasingNodes` prop is `true` (the default), +the render tree will be simplified to: + +```xml +<View> + <Text>A sentence.</Text> +</View> +``` + +This behavior is preferred for many reasons. The most simple one is that it +simplifies the render tree. The less React elements there are, the best it is +performance-wise. Moreover, there are a lot of React Native bugs related to +nested `Text` nodes, so this simplification limits the number of occurrences +of those bugs. + +## Learn More + +Check out [the release notes in the official repository](https://github.com/meliorence/react-native-render-html/releases/tag/v6.2.0). +Moreover, if you encounter any issue while upgrading from a lower minor (6.0.x, 6.1.x), you are welcome to [comment this Github issue](https://github.com/meliorence/react-native-render-html/issues/526)! + +<SocialLinks twitterUrl="https://twitter.com/jsamrn/status/1452137777508667397" redditUrl="https://www.reddit.com/r/reactnative/comments/qe9pam/checkout_whats_new_in_react_native_render_html_v62/" /> diff --git a/apps/website/docs/.gitignore b/apps/website/docs/.gitignore new file mode 100644 index 00000000..3929e408 --- /dev/null +++ b/apps/website/docs/.gitignore @@ -0,0 +1,3 @@ +**/*.mdx +**/*.md +!migration-guide.mdx \ No newline at end of file diff --git a/apps/website/docs/content/_category_.json b/apps/website/docs/content/_category_.json new file mode 100644 index 00000000..926da4bc --- /dev/null +++ b/apps/website/docs/content/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Content", + "position": 2 +} diff --git a/apps/website/docs/flow/_category_.json b/apps/website/docs/flow/_category_.json new file mode 100644 index 00000000..9465022d --- /dev/null +++ b/apps/website/docs/flow/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Flow", + "position": 3 +} diff --git a/apps/website/docs/guides/_category_.json b/apps/website/docs/guides/_category_.json new file mode 100644 index 00000000..e7905087 --- /dev/null +++ b/apps/website/docs/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 2 +} diff --git a/apps/website/docs/migration-guide.mdx b/apps/website/docs/migration-guide.mdx new file mode 100644 index 00000000..288a24f3 --- /dev/null +++ b/apps/website/docs/migration-guide.mdx @@ -0,0 +1,144 @@ +--- +id: migration-guide +description: A guide to migrate React Native Render HTML from v5 to v6. +sidebar_position: 10 +--- +import APIReference from '@site/src/components/APIReference'; + +# Migrating to v6 + +:::important + +V6 is a brand new rewrite of the library, bringing amazing new features such as +whitespace collapsing, list style type support, and enhanced performances. +However, it will take some work to migrate your project to support the new API. + +::: + +## Props + +:::note + +A good amount of props have had their name changes, while their behavior is +similar or equivalent. The biggest endeavor will be to [migrate custom +renderers](#migrate-custom-renderers). + +::: + +### Props to Monitor + +| Prop | Remarks | +| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `renderers` | Each renderer function should be converted to a React Component. See [Custom Rendering guide](./guides/custom-renderers.mdx) and the below section, [Migrating Custom Renderers](#migrating-custom-renderers). | +| `renderersProps` | To access those props from a custom renderer, you should now use `useRendererProps` hook. | +| `source` | A new type of source is available, `source.dom`. See [DOM Tampering](./guides/dom-tampering.mdx#prerendering) for a use case. | +| `computeEmbeddedMaxWidth` | You can now take advantage of `useComputeMaxWidthForTag` hook to consume max width from custom renderers. | +| `tagsStyles` | Those styles are now mixed styles records, which are unlikely to break. See [Styling Components](./guides/styling.mdx). | +| `classesStyles` | Those styles are now mixed styles records, which are unlikely to break. See [Styling Components](./guides/styling.mdx). | +| `allowedStyles` | CSS properties are now camelCased. | +| `ignoredStyles` | CSS properties are now camelCased. | + +### Renamed and Moved Props + +| v5 | v6 | Remarks | +| -------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `enableExperimentalPercentWidth` | `renderersProps.img.enableExperimentalPercentWidth` | | +| `imagesInitialDimensions` | `renderersProps.img.initialDimensions ` | | +| `onLinkPress` | `renderersProps.a.onPress` | | +| `onParsed` | `onTTreeUpdate` | The structure has changed. See [Transient Render Engine](./flow/transient-render-engine.mdx). | +| `listsPrefixesRenderers` | `customListStyleSpecs` | The API has changed, see [Lists, customization](./content/lists.mdx#defining-and-customizing-markers-pseudo-elements). | +| `ignoredTags` | `ignoredDomTags` | | +| `ignoreNodesFunction` | `ignoreDomNode` | | + +### Discontinued Props + +| Prop | Remarks | +| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `containerStyle` | You can use `baseStyle` instead. | +| `customWrapper` | | +| `ptSize` | | +| `baseFontStyle` | You can use `baseStyle` instead. | +| `alterData` | You can use `domVisitors.onText` instead. See [Dom Tampering](./guides/dom-tampering.mdx#example-altering-data). | +| `alterChildren` | You can use `domVisitors.onElement` instead. See [Dom Tampering](./guides/dom-tampering.mdx#example-inserting-elements). | +| `alterNode` | You can use `domVisitors.onElement` instead. See [Dom Tampering](./guides/dom-tampering.mdx#example-removing-elements). | +| `allowWhitespaceNodes` | White-space collapsing is now fully supported. See [Transient Render Engine, whitespace collapsing](./flow/transient-render-engine.mdx#whitespace-collapsing). | + +### Other Props + +Props not listed in the above section are unchanged. + +## Migrating Custom Renderers + +### Arguments Equivalence + +Let's start with a custom renderer from v5: + +```jsx title="renderers.jsx" +const renderers = { + hr: (htmlAttribs, children, convertedCSSStyles, passProps) => { + return /* Whatever */; + } +}; +``` + +In v6, renderers are React components: + +```jsx title="renderers.jsx" +const renderers = { + hr: ({ + tnode, + onPress, + propsFromParent, + sharedProps, + style, + textProps, + type, + viewProps, + InternalRenderer, + TDefaultRenderer + }) => { + return /* Whatever */; + } +}; +``` + +:::tip +See <APIReference name="CustomRendererProps" /> for a detail on each of these props. +::: + +Let's see now how arguments map from v5 to v6: + +| Argument (v5) | Prop Name (v6) | Remarks | +| ------------------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `htmlAttribs` | `tnode.attributes` | The TNode is the intermediary representation of the element to render. See [Architecture](./architecture.mdx). | +| `children` | Alternative exists. | You can still render children. However, instead of having access to the children as React elements, you can inspect `tnode.children` and render these with `TNodeChildrenRenderer`. This is much more flexible than the legacy API. See [Custom Rendering](./guides/custom-renderers.mdx). | +| `convertedCSSStyles` | `style` | Those styles are flatten and can be easily inspected. | +| `passProps.renderersProps` | Alternative exists. | You can access renderers prop for a specific tag via `useRendererProps` hook. | +| `passProps.nodeIndex` | `tnode.nodeIndex` | | +| `passProps.transientChildren` | `tnode.children` | | +| `passProps.domNode` | `tnode.domNode` | | +| `passProps.parentWrapper` | `type` | Either `"text"` or `"block"`. | +| `passProps.data` | `tnode.data` | Available when `tnode.type === 'text'` | +| `passProps.key` | N/A | Keys don't need to be used anymore since renderers are components. The key is handled by the parent (`TNodeRenderer`). | +| `passProps.parentTag` | `tnode.parent.tagName` | | +| `passProps.onLinkPress` | Alternative exists. | You can access this prop via `useRendererProps('a').onPress`. | +| `passProps.tagsStyles` | No Equivalent. | | +| `passProps.classesStyles` | No Equivalent. | | +| `passProps.defaultTextProps` | `textProps` | | +| `passProps`.<wbr/>`defaultWebViewProps` | `sharedProps`.<wbr/>`defaultWebViewProps` | | +| `passProps`.<wbr/>`computeEmbeddedMaxWidth` | `sharedProps`.<wbr/>`computeEmbeddedMaxWidth` | A better option is to take advantage of `useComputeMaxWidthForTag` hook. | +| `passProps.contentWidth` | Alternative exists. | Access content width via `useContentWidth` hook. | + +### Custom Tags + +Let's say we registered a renderer for `<bluecircle>` tag, which is non-standard. In v6, we must also register the **element model** for this tag. +See [Custom Rendering, registering a new tag](./guides/custom-renderers.mdx#example-registering-a-new-tag). + +## Other Exports + +| Export | Remarks | +| --------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `getParentsTagsRecursively` | Discontinued. | +| `getClosestNodeParentByTag` | Discontinued. | +| `constructStyles` | Discontinued. Not applicable since the styling logic has been totaly reframed and should be much more consistent. | +| `domNodeToHTMLString` | Unchanged. | diff --git a/apps/website/docusaurus.config.js b/apps/website/docusaurus.config.js new file mode 100644 index 00000000..f94185f1 --- /dev/null +++ b/apps/website/docusaurus.config.js @@ -0,0 +1,270 @@ +const { WEBSITE_ROOT, WEBSITE_BASE } = require('@doc/constants'); +const version = require('react-native-render-html/package.json').version; +const { existsSync } = require('fs'); + +const apisidebarPath = './apisidebar.json'; +let hasAPIsidebar = existsSync(apisidebarPath); + +const plugins = [ + 'docusaurus-plugin-sass', + [ + 'doc-docusaurus-rfg-plugin', + { + icon: '../../assets/favicon.svg', + apiKey: '5cfedd426015fefc5fb4a1612a13ebdb930aaf46', + name: 'Discover RNRH', + themeColor: '#8181ff', + backgroundColor: '#000040' + } + ], + // Only include this plugin when the apisidebar file has been generated. + hasAPIsidebar + ? [ + '@docusaurus/plugin-content-docs', + { + id: 'api', + path: 'api', + routeBasePath: 'api', + sidebarPath: require.resolve(apisidebarPath), + disableVersioning: false + } + ] + : null, + [ + 'doc-docusaurus-typedoc-plugin', + { + version, + outDir: './api', + sidebarFile: './apisidebar.json', + typedoc: { + entryPoints: ['../../packages/render-html/src/index.ts'], + tsconfig: '../../packages/render-html/tsconfig.json', + excludePrivate: true + } + } + ] +].filter((c) => c !== null); + +/** @type {import('@docusaurus/types').DocusaurusConfig} */ +module.exports = { + title: 'React Native Render HTML', + tagline: + 'The hackable, full-featured Open Source HTML rendering solution for React Native.', + url: WEBSITE_ROOT, + baseUrl: WEBSITE_BASE, + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'throw', + // TODO remove when this issue is resolved + // https://github.com/facebook/docusaurus/issues/4923 + // Also remove the swizzled LayoutHead + favicon: 'favicons/favicon-32x32.png', + organizationName: 'meliorence', + projectName: 'react-native-render-html', + plugins: plugins, + trailingSlash: false, + themeConfig: { + algolia: { + apiKey: '4f9905bd301a15034820905263f47dda', + indexName: 'meliorence', + // Should be set to true for versioned sites + contextualSearch: false, + // Optional: Algolia search parameters + searchParameters: {} + }, + gtag: { + trackingID: 'G-CYR1XDV25N', + anonymizeIP: true + }, + prism: { + theme: require('prism-react-renderer/themes/dracula') + }, + colorMode: { + defaultMode: 'dark', + respectPrefersColorScheme: true + }, + navbar: { + hideOnScroll: true, + logo: { + alt: 'RNRH', + src: 'img/logo.svg' + }, + items: [ + { + type: 'doc', + docId: 'intro', + position: 'left', + label: 'Docs' + }, + { + to: 'api/', + activeBasePath: 'api', + position: 'left', + label: 'API' + }, + { + to: 'api/renderhtmlprops', + position: 'left', + label: 'Props' + }, + { + type: 'doc', + docId: 'faq', + label: 'FAQ', + activeSidebarClassName: '__fun' + }, + { to: 'blog', label: 'Blog', position: 'left' }, + { + to: 'https://github.com/sponsors/jsamr', + label: 'Sponsorship', + position: 'left' + }, + { + to: `https://github.com/meliorence/react-native-render-html/releases/tag/v${version}`, + label: `v${version}`, + position: 'right' + }, + { + href: 'https://github.com/meliorence/react-native-render-html', + position: 'right', + className: 'header-github-link', + 'aria-label': 'GitHub repository' + } + ] + }, + footer: { + style: 'dark', + links: [ + { + title: 'Essentials', + items: [ + { + label: 'Introduction', + to: '/docs/intro' + }, + { + label: 'Architecture', + to: '/docs/architecture' + }, + { + to: '/docs/faq', + label: 'FAQ' + }, + { + to: '/api/renderhtmlprops', + label: 'Props' + } + ] + }, + { + title: 'Content', + items: [ + { + label: 'Textual', + to: '/docs/content/textual' + }, + { + label: 'Images', + to: '/docs/content/images' + }, + { + label: 'Lists', + to: '/docs/content/lists' + }, + { + label: 'Anchors', + to: '/docs/content/anchors' + } + ] + }, + { + title: 'Guides', + items: [ + { + label: 'Custom Rendering', + to: '/docs/guides/custom-renderers' + }, + { + label: 'Styling', + to: '/docs/guides/styling' + }, + { + label: 'DOM Tampering', + to: '/docs/guides/dom-tampering' + } + ] + }, + { + title: 'Community', + items: [ + { + to: 'https://github.com/meliorence/react-native-render-html/blob/master/HELP.adoc', + label: 'Help' + }, + { + to: 'https://github.com/meliorence/react-native-render-html/blob/master/CONTRIBUTING.adoc', + label: 'Contributing' + }, + { + to: 'https://native-html.canny.io/features', + label: 'Request features' + }, + { + label: 'Stack Overflow', + href: 'https://stackoverflow.com/questions/tagged/react-native-render-html' + }, + { + label: 'Discord', + href: 'https://discord.gg/dbEMMJM' + } + ] + }, + { + title: 'More', + items: [ + { + label: 'Blog', + to: '/blog' + }, + { + label: 'GitHub', + href: 'https://github.com/meliorence/react-native-render-html' + }, + { + label: 'Twitter', + href: 'https://twitter.com/jsamrn?ref_src=twsrc%5Etfw' + }, + { + label: 'Rate this library', + href: 'https://openbase.com/js/react-native-render-html?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge' + } + ] + } + ], + copyright: `Copyright © ${new Date().getFullYear()} Meliorence, Inc and Jules Sam. Randolph.` + } + }, + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + sidebarPath: require.resolve('./sidebars.js'), + // Please change this to your repo. + // editUrl: null, + disableVersioning: false + }, + blog: { + showReadingTime: true, + feedOptions: { + type: 'all', + title: 'React Native Render HTML Official Blog', + copyright: `Copyright © ${new Date().getFullYear()} Meliorence, Inc. and Jules Sam. Randolph` + } + }, + theme: { + customCss: require.resolve('./src/css/custom.scss') + } + } + ] + ] +}; diff --git a/apps/website/package.json b/apps/website/package.json new file mode 100644 index 00000000..55a666b9 --- /dev/null +++ b/apps/website/package.json @@ -0,0 +1,58 @@ +{ + "name": "website", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus api:gen && DOCUSAURUS_NO_DUPLICATE_TITLE_WARNING=false docusaurus start --no-open", + "build": "docusaurus api:gen && DOCUSAURUS_NO_DUPLICATE_TITLE_WARNING=false docusaurus build", + "build-docs": "doc-mdx-gen-cli docs", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus api:gen && docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "api-gendoc": "docusaurus api:gen" + }, + "dependencies": { + "@doc/constants": "workspace:*", + "@doc/svg-component": "workspace:*", + "@docusaurus/core": "^3.9.2", + "@docusaurus/preset-classic": "^3.9.2", + "@mdx-js/react": "^3.1.1", + "clsx": "^2.1.1", + "docusaurus-plugin-sass": "^0.2.6", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-modal": "^3.16.3" + }, + "devDependencies": { + "@doc/mdx-gen-cli": "workspace:*", + "@doc/pages": "workspace:*", + "@doc/svgr-conf": "workspace:*", + "@docusaurus/module-type-aliases": "^3.9.2", + "@tsconfig/docusaurus": "^2.0.4", + "@types/react": "~19.1.0", + "@types/react-helmet": "^6.1.11", + "@types/react-modal": "^3.16.3", + "@types/react-router-dom": "^5.3.3", + "doc-docusaurus-rfg-plugin": "workspace:*", + "doc-docusaurus-typedoc-plugin": "workspace:*", + "sass": "^1.93.2", + "typedoc": "^0.28.14", + "typescript": "^5.4.5" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/apps/website/sidebars.js b/apps/website/sidebars.js new file mode 100644 index 00000000..15621f6f --- /dev/null +++ b/apps/website/sidebars.js @@ -0,0 +1,33 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +module.exports = { + // By default, Docusaurus generates a sidebar from the docs folder structure + docSidebar: [ + { type: 'autogenerated', dirName: '.' }, + { + type: 'link', + label: 'Props', + href: '/api/renderhtmlprops' + } + ] + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + { + type: 'category', + label: 'Tutorial', + items: ['hello'], + }, + ], + */ +}; diff --git a/apps/website/src/components/APIReference.tsx b/apps/website/src/components/APIReference.tsx new file mode 100644 index 00000000..6b784567 --- /dev/null +++ b/apps/website/src/components/APIReference.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import Reference from './Reference'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +export default function APIReference({ + name, + member, + full = false +}: { + name: string; + member?: string; + full?: boolean; +}) { + const memberSuffix = member ? `#${member.toLowerCase()}` : ''; + return ( + <Reference + url={useBaseUrl(`/api/${name.toLowerCase()}${memberSuffix}`)} + name={ + member && name && full ? `${name}.${member}` : member ? member : name + } + full={full} + type="api-def" + /> + ); +} diff --git a/apps/website/src/components/AdmonitionMDX.tsx b/apps/website/src/components/AdmonitionMDX.tsx new file mode 100644 index 00000000..4d5ca018 --- /dev/null +++ b/apps/website/src/components/AdmonitionMDX.tsx @@ -0,0 +1,78 @@ +import React, { PropsWithChildren } from 'react'; + +export type AdmonitionType = + | 'note' + | 'tip' + | 'warning' + | 'important' + | 'caution'; + +const infimaMappings: Record<AdmonitionType, string> = { + note: 'secondary', + important: 'info', + tip: 'success', + warning: 'danger', + caution: 'danger' +}; + +// From https://github.com/elviswolcott/remark-admonitions/blob/master/lib/index.js +const types = { + note: { + ifmClass: 'secondary', + keyword: 'note', + emoji: 'ℹ️', // 'ℹ' + svg: + '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg>' + }, + tip: { + ifmClass: 'success', + keyword: 'tip', + emoji: '💡', //'💡' + svg: + '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"/></svg>' + }, + warning: { + ifmClass: 'danger', + keyword: 'warning', + emoji: '🔥', //'🔥' + svg: + '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"/></svg>' + }, + important: { + ifmClass: 'info', + keyword: 'important', + emoji: '❗️', //'❗' + svg: + '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>' + }, + caution: { + ifmClass: 'warning', + keyword: 'caution', + emoji: '⚠️', // '⚠️' + svg: + '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>' + } +}; + +export default function AdmonitionMDX({ + type, + children +}: PropsWithChildren<{ + type: AdmonitionType; +}>) { + return ( + <div + className={`admonition admonition-${type} alert alert--${infimaMappings[type]}`}> + <div className="admonition-heading"> + <h5> + <span + className="admonition-icon" + dangerouslySetInnerHTML={{ __html: types[type].svg }} + /> + {type} + </h5> + </div> + <div className="admonition-content">{children}</div> + </div> + ); +} diff --git a/apps/website/src/components/Badges.module.scss b/apps/website/src/components/Badges.module.scss new file mode 100644 index 00000000..068912f6 --- /dev/null +++ b/apps/website/src/components/Badges.module.scss @@ -0,0 +1,24 @@ +.badge { + height: 20px; + overflow: hidden; + > img { + display: block; + } +} + +.stats { + display: flex; + display: none; + align-items: center; + justify-content: flex-end; + gap: 1rem; +} + +.stats { + @media screen and (max-width: 450px) { + & { + position: relative; + flex-direction: column; + } + } +} diff --git a/apps/website/src/components/Badges.tsx b/apps/website/src/components/Badges.tsx new file mode 100644 index 00000000..5201f939 --- /dev/null +++ b/apps/website/src/components/Badges.tsx @@ -0,0 +1,19 @@ +import TwitterFollow from './TwitterFollow'; +import React from 'react'; +import classes from './Badges.module.scss'; + +export default function Badges() { + return ( + <div className={classes.stats}> + <TwitterFollow className={classes.badge} /> + <iframe + src="https://ghbtns.com/github-btn.html?user=meliorence&repo=react-native-render-html&type=star&count=true&size=small" + frameBorder="0" + scrolling="0" + width="92" + height="20" + title="GitHub" + /> + </div> + ); +} diff --git a/apps/website/src/components/DiscoveryFrame.module.scss b/apps/website/src/components/DiscoveryFrame.module.scss new file mode 100644 index 00000000..08091e8c --- /dev/null +++ b/apps/website/src/components/DiscoveryFrame.module.scss @@ -0,0 +1,12 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + margin-bottom: var(--ifm-leading); +} + +.button { + align-self: center; + display: flex; + justify-content: center; +} diff --git a/apps/website/src/components/DiscoveryFrame.tsx b/apps/website/src/components/DiscoveryFrame.tsx new file mode 100644 index 00000000..89a2bbb4 --- /dev/null +++ b/apps/website/src/components/DiscoveryFrame.tsx @@ -0,0 +1,45 @@ +/* eslint-disable no-undef */ +import React, { useRef, useCallback } from 'react'; +//@ts-ignore +import discoveryVideoUrl from '@site/static/video/discovery.webm'; +import classes from './DiscoveryFrame.module.scss'; +import clsx from 'clsx'; +import IPhoneFrame from './IPhoneFrame'; + +export default function DiscoveryFrame({ scale }: { scale?: number }) { + const videoRef = useRef<HTMLVideoElement>(); + const playPause = useCallback(() => { + if (videoRef.current?.paused) { + videoRef.current?.play(); + } else { + videoRef.current?.pause(); + } + }, []); + return ( + <div className={classes['container']}> + <IPhoneFrame scale={scale}> + <video + ref={videoRef} + controls={false} + loop + autoPlay + muted + preload="lazy" + onClick={playPause}> + <source src={discoveryVideoUrl} type="video/webm" /> + </video> + </IPhoneFrame> + <button + aria-label="Play/pause" + onClick={playPause} + className={clsx('button', 'button--primary', classes.button)}> + <svg width="32" height="32" viewBox="0 0 24 24"> + <path + fill="var(--ifm-button-color)" + d="M3,5V19L11,12M13,19H16V5H13M18,5V19H21V5" + /> + </svg> + </button> + </div> + ); +} diff --git a/apps/website/src/components/ExpoBlogCard.tsx b/apps/website/src/components/ExpoBlogCard.tsx new file mode 100644 index 00000000..65abfeea --- /dev/null +++ b/apps/website/src/components/ExpoBlogCard.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import TryOnExpoCard from './TryOnExpoCard'; + +export default function ExpoBlogCard({ className }: { className?: string }) { + return ( + <TryOnExpoCard + themed={true} + className={className} + name="React Native Blog" + projectUrl={'https://expo.io/@jsamr/react-native-blog'} + imagePath="/img/blog-expo-qr.png" + /> + ); +} diff --git a/apps/website/src/components/ExpoDiscoveryCard.tsx b/apps/website/src/components/ExpoDiscoveryCard.tsx new file mode 100644 index 00000000..b5403de3 --- /dev/null +++ b/apps/website/src/components/ExpoDiscoveryCard.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import TryOnExpoCard from './TryOnExpoCard'; + +export default function ExpoDiscoveryCard({ + className +}: { + className?: string; +}) { + return ( + <TryOnExpoCard + white + className={className} + name="Discovery" + projectUrl={'https://expo.io/@jsamr/react-native-render-html-discovery'} + imagePath="/img/discovery-expo-qr.png" + /> + ); +} diff --git a/apps/website/src/components/ExpoSnippet.module.scss b/apps/website/src/components/ExpoSnippet.module.scss new file mode 100644 index 00000000..6e537584 --- /dev/null +++ b/apps/website/src/components/ExpoSnippet.module.scss @@ -0,0 +1,5 @@ +.expoIframe { + display: block; + width: 100%; + height: 100%; +} diff --git a/apps/website/src/components/ExpoSnippet.tsx b/apps/website/src/components/ExpoSnippet.tsx new file mode 100644 index 00000000..2a8aa7ac --- /dev/null +++ b/apps/website/src/components/ExpoSnippet.tsx @@ -0,0 +1,164 @@ +import React, { + memo, + PropsWithChildren, + useEffect, + useMemo, + useRef +} from 'react'; +import useThemeContext from '@theme/hooks/useThemeContext'; +import styles from './ExpoSnippet.module.scss'; + +function makeIframeSrcParamsQuery({ + name, + description, + theme, + iframeId +}: { + name: string; + description?: string; + theme: 'light' | 'dark'; + iframeId: string; +}) { + return [ + ['iframeId', iframeId], + ['preview', 'true'], + ['platform', 'my device'], + ['supportedPlatforms', 'ios,android'], + name ? ['name', encodeURIComponent(name)] : null, + description ? ['description', encodeURIComponent(description)] : null, + ['theme', theme], + ['verbose', 'false'], + ['waitForData', 'true'] + ] + .filter((v) => !!v) + .map(([k, v]) => `${k}=${v}`) + .join('&'); +} + +function installIframeListener({ + iframe, + iframeId, + code, + version, + extraneousDeps +}: { + iframe: HTMLIFrameElement; + iframeId: string; + code: string; + version: string; + extraneousDeps: string[]; +}) { + const listener = function (event: MessageEvent) { + var eventName = event.data[0]; + var data = event.data[1]; + const deps = [ + `react-native-render-html@${version}`, + 'react-native-safe-area-context', + ...extraneousDeps + ]; + if (eventName === 'expoFrameLoaded' && data.iframeId === iframeId) { + iframe.contentWindow.postMessage( + [ + 'expoDataEvent', + { + iframeId: iframeId, + dependencies: deps.join(','), + code, + files: '' + } + ], + '*' + ); + } + }; + window.addEventListener('message', listener); + // cleanup + return () => window.removeEventListener('message', listener); +} + +const ExpoIframe = memo(function ExpoIframe({ + name, + description, + theme, + code, + version, + extraneousDeps +}: { + name?: string; + description?: string; + theme: 'light' | 'dark'; + code: string; + version: string; + extraneousDeps: string[]; +}) { + // see https://git.io/JOX5X + const iframeId = useRef(Math.random().toString(36).substr(2, 10)); + const ref = useRef<HTMLIFrameElement>(null); + const params = useMemo( + () => + makeIframeSrcParamsQuery({ + iframeId: iframeId.current, + name, + theme, + description + }), + [description, name, theme] + ); + const src = `https://snack.expo.io/embedded?${params}`; + useEffect( + function postIframeMessage() { + const cleanup = installIframeListener({ + iframe: ref.current, + iframeId: iframeId.current, + code, + version, + extraneousDeps + }); + return cleanup; + }, + [code, extraneousDeps, version] + ); + return ( + <iframe + className={styles.expoIframe} + ref={ref} + src={src} + frameBorder="0" + loading="lazy" + data-snack-iframe={true} + /> + ); +}); + +export default function ExpoSnippet({ + expoSource, + title, + caption, + version, + className, + extraneousDeps +}: PropsWithChildren<{ + title: string; + expoSource: string; + caption?: string; + version: string; + className?: string; + extraneousDeps: string[]; +}>) { + const { isDarkTheme } = useThemeContext(); + const style: React.CSSProperties = { + backgroundColor: isDarkTheme ? '#212121' : '#f9f9f9' + }; + return ( + <div className={className} style={style}> + <ExpoIframe + code={expoSource} + theme={isDarkTheme ? 'dark' : 'light'} + name={title} + description={caption} + version={version} + extraneousDeps={extraneousDeps} + /> + </div> + ); +} diff --git a/apps/website/src/components/HomepageFeatures.module.scss b/apps/website/src/components/HomepageFeatures.module.scss new file mode 100644 index 00000000..9dcb82c3 --- /dev/null +++ b/apps/website/src/components/HomepageFeatures.module.scss @@ -0,0 +1,13 @@ +/* stylelint-disable docusaurus/copyright-header */ + +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/apps/website/src/components/HomepageFeatures.tsx b/apps/website/src/components/HomepageFeatures.tsx new file mode 100644 index 00000000..4c77d7c5 --- /dev/null +++ b/apps/website/src/components/HomepageFeatures.tsx @@ -0,0 +1,104 @@ +import React from 'react'; +import clsx from 'clsx'; +import styles from './HomepageFeatures.module.scss'; + +const features = [ + { + title: 'Easy to Use', + Svg: require('../../static/img/undraw_relaxation.svg').default, + description: ( + <> + Despite its rich features and plugins,{' '} + <code>react-native-render-html</code> was designed for ease of use in + mind. Getting started is a matter of seconds. + </> + ) + }, + { + title: 'Transparent', + Svg: require('../../static/img/undraw_back_home.svg').default, + description: ( + <> + The internal data structure to render elements is{' '} + <strong>entirely transparent</strong>. You can easily{' '} + <strong>inspect</strong> the transient tree structure and have an + immediate idea of the engine belly. + </> + ) + }, + { + title: 'Hackable', + Svg: require('../../static/img/undraw_hacker_mind.svg').default, + description: ( + <> + Every step of the data flow can be tampered with. You can{' '} + <strong>alter the DOM</strong>,{' '} + <strong>customize and define elements models</strong>, implement{' '} + <strong>custom renderers</strong> and <strong>defer rendering</strong>{' '} + for asynchronous DOM inspection in a breeze. + </> + ) + }, + { + title: 'Standards Compliance', + Svg: require('../../static/img/undraw_static_assets.svg').default, + description: ( + <> + This library aims at balancing adherance to the W3C and WHATWG standards + with complexity and speed. + </> + ) + }, + { + title: 'Styles Safety', + Svg: require('../../static/img/undraw_security_on.svg').default, + description: ( + <> + Despite React Native styles and W3C CSS numerous incompatibilities, this + library <strong>reconciles both standards</strong>, and brings support + for properties unavailable in React Native such as{' '} + <code>list-style-type</code>, <code>white-space</code>... + </> + ) + }, + { + title: 'Production Ready', + Svg: require('../../static/img/undraw_certificate.svg').default, + description: ( + <> + This library is ready for production, and its development{' '} + <strong>test-driven</strong>. The transient node engine is{' '} + <strong>CI-benchmarked</strong> to safeguard its speed. + </> + ) + } +]; + +function Feature({ Svg, title, description }) { + return ( + <div className={clsx('col col--4')}> + <div className="text--center"> + <Svg className={styles.featureSvg} alt={title} /> + </div> + <div className="text--center padding-horiz--md"> + <h2>{title}</h2> + <p>{description}</p> + </div> + </div> + ); +} + +export default function HomepageFeatures() { + return ( + <section className={styles.features}> + <h1 style={{ display: 'none' }}>Overview of features</h1> + <div className="container"> + <div className="row"> + {features.map((props, idx) => ( + <Feature key={idx} {...props} /> + ))} + </div> + </div> + </section> + ); +} diff --git a/apps/website/src/components/HomepageHeader.module.scss b/apps/website/src/components/HomepageHeader.module.scss new file mode 100644 index 00000000..4dff7f86 --- /dev/null +++ b/apps/website/src/components/HomepageHeader.module.scss @@ -0,0 +1,137 @@ +.root { + --root-background: #f1f3faf5; + html[data-theme='dark'] & { + --root-background: #010205f8; + } + &::before { + content: ''; + background-image: url('/img/banner.webp'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + position: absolute; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: 100%; + height: 100%; + filter: grayscale(1); + html[data-theme="light"] & { + filter: grayscale(1) invert(1); + } + } + min-height: calc(100vh - 60px); + position: relative; +} + +.rootOverlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--root-background); +} + +.heroBanner { + padding: 1rem 1rem 0 1rem; + position: relative; + overflow: hidden; + background-color: transparent; + display: flex; + flex-direction: column; + overflow: visible; +} + +.title { + background-color: rgba(108, 108, 233, 0.25); + padding: 4rem; + display: block; + width: 100%; + text-align: center; + position: relative; + > h1 { + letter-spacing: 2px; + } +} + +.main { + display: flex; + gap: 8rem; + overflow: visible; +} + +.content { + text-align: right; + max-width: 800px; + justify-content: center; + display: flex; + gap: 4rem; + flex-direction: column; + @media screen and (max-width: 1024px) { + & { + text-align: center; + } + } +} + +.subtitle { + line-height: 1.4; +} + +.features { + padding-right: 0; + list-style-type: none; + font-size: 20px; + font-weight: bold; + color: var(--ifm-font-color-base); +} + +@media screen and (max-width: 966px) { + .heroBanner { + padding: 2rem; + } +} + +.screenshot { + --offset-top: 4rem; + margin-top: calc(-1 * var(--offset-top)); + max-height: calc(100vh - 350px + var(--offset-top)); + overflow: hidden; + z-index: 10; +} + +.screenshotContainer { + position: relative; + @media screen and (max-width: 1024px) { + & { + display: none; + } + } +} + +.screenshotOverlay { + top: 0; + right: 0; + bottom: 0; + left: 0; + position: absolute; + background: linear-gradient(transparent 50%, var(--root-background)); +} + +.button { + font-family: var(--ifm-font-family-base); +} + +.buttonsGroup { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 1rem; + @media screen and (max-width: 1024px) { + & { + align-items: center; + } + } +} diff --git a/apps/website/src/components/HomepageHeader.tsx b/apps/website/src/components/HomepageHeader.tsx new file mode 100644 index 00000000..67f68ba8 --- /dev/null +++ b/apps/website/src/components/HomepageHeader.tsx @@ -0,0 +1,76 @@ +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import classes from './HomepageHeader.module.scss'; +import Screenshot from './Screenshot'; +//@ts-ignore +import showcaseImgWebp from '@site/static/img/discover-screenshot.webp'; +//@ts-ignore +import showcaseImgJpeg from '@site/static/img/discover-screenshot.jpeg'; + +function Feature({ children }) { + return <li>{children}</li>; +} + +function onPressReadMore() { + const target = document.getElementById('more'); + if (target) { + target.scrollIntoView({ behavior: 'smooth' }); + } +} + +export default function HomepageHeader() { + return ( + <header className={classes.root}> + <div className={classes.rootOverlay} /> + <div className={clsx(classes.title, 'margin-bottom--md')}> + <h1 className={clsx('hero__title')}>React Native Render HTML</h1> + <p className={clsx('hero__subtitle', classes.subtitle)}> + Give a <strong>genuine native</strong> feeling to your HTML content. + </p> + </div> + <div className={clsx('hero hero--primary', classes.heroBanner)}> + <div className={classes.main}> + <div className={clsx(classes.content)}> + <ul className={clsx(classes.features)}> + <Feature>📱 Render HTML into 100% native views</Feature> + <Feature>⚙️ Write custom tag renderers</Feature> + <Feature>🖌️ Style tags and classes</Feature> + </ul> + <div className={clsx(classes.buttonsGroup)}> + <Link + className={clsx( + 'button button--outline button--primary button--lg', + classes.button + )} + to="/docs/intro"> + Get Started! + </Link> + </div> + <div className={clsx(classes.buttonsGroup, 'margin-bottom--md')}> + <button + className={clsx( + 'button button--outline button--primary button--lg' + )} + style={{ borderWidth: 0 }} + onClick={onPressReadMore}> + ⬇ Read More + </button> + </div> + </div> + <div className={classes.screenshotContainer}> + <div className={classes.screenshot}> + <Screenshot + url={showcaseImgJpeg} + webpUrl={showcaseImgWebp} + alt="Showcase of a component rendered with React Native Render HTML." + scale={1} + /> + <div className={classes.screenshotOverlay} /> + </div> + </div> + </div> + </div> + </header> + ); +} diff --git a/apps/website/src/components/IPhoneFrame.module.scss b/apps/website/src/components/IPhoneFrame.module.scss new file mode 100644 index 00000000..c5533176 --- /dev/null +++ b/apps/website/src/components/IPhoneFrame.module.scss @@ -0,0 +1,139 @@ +// iPhone X +$device-silver: #e2e3e4; +$device-silver-dark: darken($device-silver, 10%); +$device-silver-panel: #222; + +.device-iphone-x { + --scale-factor: 1; + --device-height: calc(868px * var(--scale-factor)); + --device-width: calc(428px * var(--scale-factor)); + --frame-padding: calc(28px * var(--scale-factor)); + --video-height: calc(var(--device-height) - 2 * var(--frame-padding)); + --video-width: calc(var(--device-width) - 2 * var(--frame-padding)); + height: var(--device-height); + width: var(--device-width); + position: relative; + margin: auto; + margin-bottom: 1rem; + + .device-frame { + background: $device-silver-panel; + border-radius: calc(68px * var(--scale-factor)); + box-shadow: inset 0 0 2px 2px $device-silver-dark, + inset 0 0 0 7px $device-silver; + height: var(--device-height); + padding: var(--frame-padding); + width: var(--device-width); + } + + // 2436-by-1125-pixel resolution + .device-content { + border-radius: calc(40px * var(--scale-factor)); + height: var(--video-height); + width: var(--video-width); + overflow: hidden; + } + + .device-header { + background: $device-silver-panel; + border-bottom-left-radius: calc(20px * var(--scale-factor)); + border-bottom-right-radius: calc(20px * var(--scale-factor)); + height: calc(30px * var(--scale-factor)); + left: 50%; + margin-left: calc(-102px * var(--scale-factor)); + position: absolute; + top: calc(28px * var(--scale-factor)); + width: calc(204px * var(--scale-factor)); + + &::after, + &::before { + content: ''; + height: calc(10px * var(--scale-factor)); + position: absolute; + top: 0; + width: calc(10px * var(--scale-factor)); + } + &::after { + background: radial-gradient( + circle at bottom left, + transparent 0, + transparent 75%, + $device-silver-panel 75%, + $device-silver-panel 100% + ); + left: calc(-10px * var(--scale-factor)); + } + &::before { + background: radial-gradient( + circle at bottom right, + transparent 0, + transparent 75%, + $device-silver-panel 75%, + $device-silver-panel 100% + ); + right: calc(-10px * var(--scale-factor)); + } + } + + .device-sensors { + &::after, + &::before { + content: ''; + position: absolute; + } + &::after { + background: #444; + border-radius: calc(3px * var(--scale-factor)); + height: calc(6px * var(--scale-factor)); + left: 50%; + margin-left: calc(-25px * var(--scale-factor)); + top: calc(32px * var(--scale-factor)); + width: calc(50px * var(--scale-factor)); + } + &::before { + background: #444; + border-radius: 50%; + height: calc(14px * var(--scale-factor)); + left: 50%; + margin-left: calc(40px * var(--scale-factor)); + top: calc(28px * var(--scale-factor)); + width: calc(14px * var(--scale-factor)); + } + } + + .device-btns { + background: $device-silver-dark; + height: calc(32px * var(--scale-factor)); + left: calc(-3px * var(--scale-factor)); + position: absolute; + top: calc(115px * var(--scale-factor)); + width: calc(3px * var(--scale-factor)); + + &::after, + &::before { + background: $device-silver-dark; + content: ''; + height: calc(62px * var(--scale-factor)); + left: 0; + position: absolute; + width: calc(3px * var(--scale-factor)); + } + + &::after { + top: calc(60px * var(--scale-factor)); + } + &::before { + top: calc(140px * var(--scale-factor)); + } + } + + .device-power { + background: $device-silver-dark; + height: calc(100px * var(--scale-factor)); + right: calc(-3px * var(--scale-factor)); + position: absolute; + top: calc(200px * var(--scale-factor)); + width: calc(3px * var(--scale-factor)); + } +} + diff --git a/apps/website/src/components/IPhoneFrame.tsx b/apps/website/src/components/IPhoneFrame.tsx new file mode 100644 index 00000000..c7e5af8f --- /dev/null +++ b/apps/website/src/components/IPhoneFrame.tsx @@ -0,0 +1,32 @@ +import clsx from 'clsx'; +import React from 'react'; +import classes from './IPhoneFrame.module.scss'; + +export default function IPhoneFrame({ + children, + scale = 1, + style, + className +}: { + children: any; + style?: React.CSSProperties; + scale?: number; + className?: string; +}) { + return ( + <div + style={{ '--scale-factor': scale, ...style } as any} + className={clsx(classes['device-iphone-x'], className)}> + <div className={classes['device-frame']}> + {React.cloneElement(children, { + ...children.props, + className: classes['device-content'] + })} + </div> + <div className={classes['device-header']} /> + <div className={classes['device-sensors']} /> + <div className={classes['device-btns']} /> + <div className={classes['device-power']} /> + </div> + ); +} diff --git a/apps/website/src/components/ListsShowcase.module.scss b/apps/website/src/components/ListsShowcase.module.scss new file mode 100644 index 00000000..a1119e65 --- /dev/null +++ b/apps/website/src/components/ListsShowcase.module.scss @@ -0,0 +1,92 @@ +.grid { + --grid-highlight-color: var(--ifm-color-primary); + display: grid; + grid-template-columns: repeat(4, minmax(0, 120px)); + grid-gap: calc(var(--ifm-leading) / 3); + justify-content: center; + margin-bottom: var(--ifm-leading); + grid-template-areas: + 'loweralpha lowergreek lowerroman square' + 'disclosureclosed circle disclosureopen disc' + 'thai russian arabicindic discrtl' + 'thai russian arabicindic discrtl'; +} + +.item { + &--numeric { + grid-area: numeric; + } + &--loweralpha { + grid-area: loweralpha; + } + &--lowergreek { + grid-area: lowergreek; + } + &--lowerroman { + grid-area: lowerroman; + } + &--discrtl { + grid-area: discrtl; + } + &--arabicindic { + grid-area: arabicindic; + } + &--russian { + grid-area: russian; + } + &--circle { + grid-area: circle; + } + &--disc { + grid-area: disc; + } + &--square { + grid-area: square; + } + &--thai { + grid-area: thai; + } + &--disclosureopen { + grid-area: disclosureopen; + } + &--disclosureclosed { + grid-area: disclosureclosed; + } + border-color: var(--grid-highlight-color); + border-width: 0.5rem 0.5rem 0 0.5rem; + border-style: solid; + box-sizing: content-box; + flex: 1; + margin: 0; + position: relative; + display: flex; + flex-direction: column; + justify-content: flex-start; + overflow: hidden; + &--rtl > img { + align-self: flex-end; + } + > img { + object-fit: contain; + object-position: top; + flex: 1; + overflow: hidden; + html[data-theme='dark'] & { + filter: invert(1); + } + } + > figcaption { + min-height: 49.2px; + font-size: small; + display: flex; + flex-direction: column; + justify-content: center; + padding: 0.5rem; + background-color: var(--grid-highlight-color); + vertical-align: middle; + text-align: center; + line-height: 1.2; + padding-bottom: 10px; + color: var(--theme-on-primary); + } +} diff --git a/apps/website/src/components/ListsShowcase.tsx b/apps/website/src/components/ListsShowcase.tsx new file mode 100644 index 00000000..cc321538 --- /dev/null +++ b/apps/website/src/components/ListsShowcase.tsx @@ -0,0 +1,88 @@ +import React from 'react'; +import classes from './ListsShowcase.module.scss'; +import lowerAlpha from '@site/static/img/lists/lower-alpha.png'; +import lowerGreek from '@site/static/img/lists/lower-greek.png'; +import lowerRoman from '@site/static/img/lists/lower-roman.png'; +import rtlArabic from '@site/static/img/lists/rtl-arabic.png'; +import rtlBullet from '@site/static/img/lists/rtl-bullet.png'; +import thai from '@site/static/img/lists/thai.png'; +import russian from '@site/static/img/lists/russian.png'; +import circle from '@site/static/img/lists/circle.png'; +import disc from '@site/static/img/lists/disc.png'; +import disclosureOpen from '@site/static/img/lists/disclosure-open.png'; +import disclosureClosed from '@site/static/img/lists/disclosure-closed.png'; +import square from '@site/static/img/lists/square.png'; +import clsx from 'clsx'; + +function ListItem({ + src, + caption, + rtl, + id +}: { + src: string; + caption: string; + rtl: boolean; + id: string; +}) { + return ( + <figure + className={clsx( + classes.item, + classes[`item--${id}`], + rtl && classes['item--rtl'] + )}> + <img src={src} /> + <figcaption>{caption}</figcaption> + </figure> + ); +} + +export default function ListsShowcase() { + return ( + <div className={classes.grid}> + <ListItem + id="loweralpha" + rtl={false} + caption="Lower Alpha" + src={lowerAlpha} + /> + <ListItem + id="lowergreek" + rtl={false} + caption="Lower Greek" + src={lowerGreek} + /> + <ListItem + id="lowerroman" + rtl={false} + caption="Lower Roman" + src={lowerRoman} + /> + <ListItem id="discrtl" rtl={true} caption="Disc (RTL)" src={rtlBullet} /> + <ListItem + id="arabicindic" + rtl={true} + caption="Arabic Indic (RTL)" + src={rtlArabic} + /> + <ListItem id="russian" rtl={false} caption="Russian" src={russian} /> + <ListItem id="circle" rtl={false} caption="Circle" src={circle} /> + <ListItem id="disc" rtl={false} caption="Disc" src={disc} /> + <ListItem id="square" rtl={false} caption="Square" src={square} /> + <ListItem id="thai" rtl={false} caption="Thai" src={thai} /> + <ListItem + id="disclosureopen" + rtl={false} + caption="Disclosure Open" + src={disclosureOpen} + /> + <ListItem + id="disclosureclosed" + rtl={false} + caption="Disclosure Closed" + src={disclosureClosed} + /> + </div> + ); +} diff --git a/apps/website/src/components/Reference.module.scss b/apps/website/src/components/Reference.module.scss new file mode 100644 index 00000000..dc010ab1 --- /dev/null +++ b/apps/website/src/components/Reference.module.scss @@ -0,0 +1,39 @@ +@import '../css/shared.scss'; + +a.ref { + text-decoration-color: var(--ifm-link-color); + text-decoration: none; + &:hover { + color: var(--ifm-link-color); + text-decoration: underline; + } + > code { + color: var(--ifm-link-color); + } + &--rnrh-prop, &--api-def { + @extend .reference; + white-space: pre; + text-decoration: none !important; + font-weight: bolder; + --ifm-alert-color: var(--syntax-color-type); + code { + color: var(--syntax-color-type); + } + &:hover { + text-decoration: none; + } + } + &--html-attr {} + &--html-el {} + &--es-symbol {} + &--css-prop {} + &--rn-symbol {} + &--library { + color: var(--reference-color-lib); + } + &--doc { + text-decoration: solid underline; + color: var(--reference-color-doc); + font-weight: bolder; + } +} diff --git a/apps/website/src/components/Reference.tsx b/apps/website/src/components/Reference.tsx new file mode 100644 index 00000000..bf8dd90c --- /dev/null +++ b/apps/website/src/components/Reference.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import type { RefType } from '@doc/pages'; +import clsx from 'clsx'; +import styles from './Reference.module.scss'; +import Link from '@docusaurus/Link'; + +export default function Reference({ + url, + type, + member, + name, + full, + plural +}: { + name: string; + member?: string; + url: string; + full: boolean; + type: RefType | 'rnrh-prop' | 'api-def'; + plural?: boolean; +}) { + const shouldWrapCode = type !== 'doc'; + const pluralMark = plural ? 's' : ''; + const fullName = + (member && full ? `${name}.${member}` : member ? member : name) + + pluralMark; + return ( + <Link className={clsx(styles.ref, styles[`ref--${type}`])} to={url}> + {shouldWrapCode ? <code>{fullName}</code> : fullName} + </Link> + ); +} diff --git a/apps/website/src/components/RenderHTMLCard.module.scss b/apps/website/src/components/RenderHTMLCard.module.scss new file mode 100644 index 00000000..71ae9d6f --- /dev/null +++ b/apps/website/src/components/RenderHTMLCard.module.scss @@ -0,0 +1,98 @@ +@import '../css/shared.scss'; + +.figure { + @extend .figure, .figure--card; + margin: 0 0 var(--ifm-leading) 0 !important; + padding: 0 !important; +} + +.figure__title { + @extend .figure__title; +} + +.sourceContainer { + // padding: 0 var(--ifm-leading) 0 var(--ifm-leading); +} + +.sourceContainer__code { + border-top-left-radius: var(--ifm-global-radius); + border-top-right-radius: var(--ifm-global-radius); + overflow: hidden; +} + +.sourceContainer__fixRadius { + --ifm-global-radius: 0; + --ifm-leading: 0; +} + +.caption { + @extend .figure__caption; + padding-bottom: 0; +} + +.notice { + display: block; + text-align: center; + color: var(--ifm-font-color-secondary); +} + +.expoBox { + display: flex; + justify-content: center; + align-items: center; + padding-top: var(--ifm-leading); + padding-bottom: var(--ifm-leading); +} + +.expoBox__button { + cursor: grab; + display: flex; + justify-content: center; + align-items: center; +} + +.expoBox__span { + margin-left: var(--ifm-leading); + font-weight: bold; +} + +/* MODAL */ + +.modalContent { + width: calc(100vw - var(--modal-inset) * 2 - var(--scrollbar-width)); + height: calc(100vh - var(--modal-inset) * 2); + max-width: 1024px; + margin: auto; +} + +.modalContainer { + --modal-inset: calc(var(--ifm-leading) * 3); + --scrollbar-width: 10px; + margin: var(--modal-inset); + padding: 0; + z-index: 1000; + width: calc(100vw - var(--modal-inset) * 2) - var(--scrollbar-width); + height: calc(100vh - var(--modal-inset) * 2); +} + +.modal__closeButton { + position: absolute; + top: var(--ifm-leading); + right: var(--ifm-leading); + font-size: 22px; + width: 30px; + height: 30px; + appearance: none; + background-color: var(--ifm-background-surface-color); + color: var(--ifm-font-color-base); + border-radius: 30px; + border: 0; + cursor: grab; +} + +.overlay { + position: fixed; + inset: 0px; + background-color: rgba(0, 0, 0, 0.75); + z-index: 999; +} diff --git a/apps/website/src/components/RenderHTMLCard.tsx b/apps/website/src/components/RenderHTMLCard.tsx new file mode 100644 index 00000000..cc9f9a48 --- /dev/null +++ b/apps/website/src/components/RenderHTMLCard.tsx @@ -0,0 +1,177 @@ +import React, { + PropsWithChildren, + useCallback, + useEffect, + useRef, + useState +} from 'react'; +import ReactModal from 'react-modal'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import BrowserOnly from '@docusaurus/BrowserOnly'; +import ExpoSnippet from './ExpoSnippet'; +import styles from './RenderHTMLCard.module.scss'; + +const ExpoLogo = ({ color, size }) => ( + <svg + width="24" + height="26" + viewBox="0 0 24 26" + style={{ width: size, height: size }} + fill="none" + xmlns="http://www.w3.org/2000/svg"> + <path + d="M22.069 10.075a2.273 2.273 0 00-.887-.74 2.296 2.296 0 00-2.237.16 2.265 2.265 0 00-.77.859 2.016 2.016 0 00.392 2.274 3.342 3.342 0 002.23-.63 3.289 3.289 0 001.271-1.923zM15.3 1.3l-1.45-.788-6.31 3.481.503.27.957.498 1.732-.954 4.569-2.523-.001.016zm.584-.24a.225.225 0 01.16.15l2.114 6.182a.205.205 0 01-.1.269 4.063 4.063 0 00-1.798 1.974 4.017 4.017 0 00-.175 2.655 4.283 4.283 0 001.755 2.332c.842.55 1.852.79 2.854.68a.269.269 0 01.262.16l2.184 6.345a.256.256 0 01-.101.278l-6.712 3.89a.253.253 0 01-.101.02.27.27 0 01-.181-.03L13.69 24.5a.234.234 0 01-.1-.1l-4.6-10.483-7.005 3.95a.327.327 0 01-.272.01l-1.592-.898a.23.23 0 01-.1-.299l6.805-12.8a.243.243 0 01.11-.099L13.721.03a.259.259 0 01.241 0l1.923 1.03zM7.47 4.499L7.14 4.33.58 16.71l1.197.668 5.657-7.335a.275.275 0 01.231-.1.282.282 0 01.201.149l6.16 14.066 1.646 1.007L9.06 6.005l-.281-.798-1.318-.718.01.01zm10.145 7.382a2.51 2.51 0 01.12-1.663 2.54 2.54 0 011.138-1.23 2.798 2.798 0 013.261.4 2.513 2.513 0 01.073 3.568l-.073.073a2.77 2.77 0 01-3.788.01 2.719 2.719 0 01-.731-1.158z" + fill={color} + /> + </svg> +); + +const tabs = [ + { label: 'JSX Source', value: 'jsx' }, + { label: 'HTML Snippet', value: 'html' }, + { label: 'TRT Snapshot', value: 'snapshot' } +]; + +function ExpoModal({ + isOpen, + onModalClose, + ...props +}: { + isOpen: boolean; + onModalClose: any; + expoSource: string; + title: string; + caption?: string; + preferHtmlSrc: boolean; + version: string; + extraneousDeps: string[]; +}) { + const modalRef = useRef(null); + useEffect( + function fixClickOverlay() { + const current = modalRef.current; + current.node.addEventListener('click', onModalClose); + return () => { + current.node.removeEventListener('click', onModalClose); + }; + }, + [onModalClose] + ); + return ( + <ReactModal + parentSelector={() => document.querySelector('body')} + overlayClassName={styles.overlay} + portalClassName={styles.portal} + className={styles.modalContainer} + isOpen={isOpen} + onRequestClose={onModalClose} + shouldCloseOnEsc + shouldCloseOnOverlayClick + appElement={document.body} + ref={modalRef} + contentLabel="Expo Interactive Source"> + <ExpoSnippet className={styles.modalContent} {...props} /> + <button className={styles.modal__closeButton} onClick={onModalClose}> + X + </button> + </ReactModal> + ); +} + +export default function RenderHTMLCard({ + snippet, + title, + caption, + html, + preferHtmlSrc, + snapshot, + expoSource, + ...props +}: PropsWithChildren<{ + snippet: string; + expoSource: string; + html: string; + snapshot: string; + title: string; + caption?: string; + preferHtmlSrc: boolean; + version: string; + extraneousDeps: string[]; +}>) { + const [isOpen, setIsOpen] = useState(false); + + const normalSnippet = decodeURIComponent(snippet); + const normalExpoSource = decodeURIComponent(expoSource); + const normalHtml = decodeURIComponent(html); + const normalSnapshot = decodeURIComponent(snapshot); + const onModalClose = useCallback(() => setIsOpen(false), []); + + return ( + <> + {title && <div className={styles.figure__title}>{title}</div>} + <figure className={styles.figure}> + <div className={styles.sourceContainer}> + <div className={styles.sourceContainer__code}> + <div className={styles.sourceContainer__fixRadius}> + <Tabs + defaultValue={preferHtmlSrc ? 'html' : 'jsx'} + title={title} + values={tabs}> + <TabItem value="html"> + <div className="codeblock--with-line-numbers"> + <CodeBlock className="html">{normalHtml}</CodeBlock> + </div> + </TabItem> + <TabItem value="jsx"> + <div className="codeblock--with-line-numbers"> + <CodeBlock className="jsx">{normalSnippet}</CodeBlock> + </div> + </TabItem> + <TabItem value="snapshot"> + <div className="codeblock--with-line-numbers"> + <CodeBlock className="xml">{normalSnapshot}</CodeBlock> + </div> + </TabItem> + </Tabs> + </div> + </div> + <BrowserOnly> + {() => ( + <ExpoModal + isOpen={isOpen} + onModalClose={onModalClose} + {...props} + expoSource={normalExpoSource} + title={title} + caption={caption} + preferHtmlSrc={preferHtmlSrc} + /> + )} + </BrowserOnly> + {caption && ( + <figcaption className={styles.caption}>{caption}</figcaption> + )} + <small + style={!!caption ? { paddingTop: 'var(--ifm-leading)' } : {}} + className={styles.notice}> + Press on the button below to show how this code renders on your + device. + </small> + </div> + <div className={styles.expoBox}> + <button + onClick={() => setIsOpen(true)} + className={`${styles.expoBox__button} button button--primary`} + role="button"> + <ExpoLogo color="var(--ifm-button-color)" size={40} /> + <span className={styles.expoBox__span}> + Run on Your Device with Expo + </span> + </button> + </div> + </figure> + </> + ); +} diff --git a/apps/website/src/components/Screenshot.tsx b/apps/website/src/components/Screenshot.tsx new file mode 100644 index 00000000..f76715d3 --- /dev/null +++ b/apps/website/src/components/Screenshot.tsx @@ -0,0 +1,33 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import React from 'react'; +import IPhoneFrame from './IPhoneFrame'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +export default function Screenshot({ + scale, + url, + webpUrl, + alt, + style, + frameStyle, + className +}: { + scale?: number; + style?: any; + className?: any; + frameStyle?: any; + url: string; + webpUrl?: string; + alt?: string; +}) { + return ( + <div className={className} style={style}> + <IPhoneFrame style={frameStyle} scale={scale}> + <picture> + {webpUrl && <source type="image/webp" srcSet={useBaseUrl(webpUrl)} />} + <img loading="lazy" alt={alt} src={useBaseUrl(url)} /> + </picture> + </IPhoneFrame> + </div> + ); +} diff --git a/apps/website/src/components/SocialLinks.module.scss b/apps/website/src/components/SocialLinks.module.scss new file mode 100644 index 00000000..84c225ae --- /dev/null +++ b/apps/website/src/components/SocialLinks.module.scss @@ -0,0 +1,59 @@ + +$icon-size: 16px; + +.socialButton { + color: var(--button-color); + border-color: var(--button-color); + display: inline flex; + align-items: center; + &:hover { + --button-color: var(--ifm-font-color-base); + } +} + +.socialLinks { + width: 100%; + margin: auto; + background-color: rgba(5, 5, 5, 0.05); + padding: 1rem; + margin-top: 4rem; + html[data-theme="dark"] & { + background-color: rgba(5, 5, 5, 0.2); + } + .icon { + width: min(50px, 33%); + flex-shrink: 0; + } + + .row { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: center; + } + + .text { + margin-left: 1rem; + font-size: larger; + line-height: 2; + } + + .twitter { + --button-color: #1b95e0; + @extend .socialButton; + } + + .reddit { + --button-color: #ff4500; + @extend .socialButton; + } + + .ic { + position: relative; + width: $icon-size; + height: $icon-size; + margin-left: 1rem; + white-space: pre; + } +} diff --git a/apps/website/src/components/SocialLinks.tsx b/apps/website/src/components/SocialLinks.tsx new file mode 100644 index 00000000..1a1a69a1 --- /dev/null +++ b/apps/website/src/components/SocialLinks.tsx @@ -0,0 +1,70 @@ +import React from 'react'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import clsx from 'clsx'; +import classes from './SocialLinks.module.scss'; + +function TwitterLogo() { + return ( + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 72 72" + className={classes['ic']}> + <path fill="none" d="M0 0h72v72H0z" /> + <path + fill="var(--button-color)" + d="M68.812 15.14c-2.348 1.04-4.87 1.744-7.52 2.06 2.704-1.62 4.78-4.186 5.757-7.243-2.53 1.5-5.33 2.592-8.314 3.176C56.35 10.59 52.948 9 49.182 9c-7.23 0-13.092 5.86-13.092 13.093 0 1.026.118 2.02.338 2.98C25.543 24.527 15.9 19.318 9.44 11.396c-1.125 1.936-1.77 4.184-1.77 6.58 0 4.543 2.312 8.552 5.824 10.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163 0 6.345 4.513 11.638 10.504 12.84-1.1.298-2.256.457-3.45.457-.845 0-1.666-.078-2.464-.23 1.667 5.2 6.5 8.985 12.23 9.09-4.482 3.51-10.13 5.605-16.26 5.605-1.055 0-2.096-.06-3.122-.184 5.794 3.717 12.676 5.882 20.067 5.882 24.083 0 37.25-19.95 37.25-37.25 0-.565-.013-1.133-.038-1.693 2.558-1.847 4.778-4.15 6.532-6.774z" + /> + </svg> + ); +} + +function RedditLogo() { + return ( + <svg + className={classes['ic']} + xmlns="http://www.w3.org/2000/svg" + fill="var(--button-color)" + viewBox="0 0 24 24"> + <path d="M14.238 15.348c.085.084.085.221 0 .306-.465.462-1.194.687-2.231.687l-.008-.002-.008.002c-1.036 0-1.766-.225-2.231-.688-.085-.084-.085-.221 0-.305.084-.084.222-.084.307 0 .379.377 1.008.561 1.924.561l.008.002.008-.002c.915 0 1.544-.184 1.924-.561.085-.084.223-.084.307 0zm-3.44-2.418c0-.507-.414-.919-.922-.919-.509 0-.923.412-.923.919 0 .506.414.918.923.918.508.001.922-.411.922-.918zm13.202-.93c0 6.627-5.373 12-12 12s-12-5.373-12-12 5.373-12 12-12 12 5.373 12 12zm-5-.129c0-.851-.695-1.543-1.55-1.543-.417 0-.795.167-1.074.435-1.056-.695-2.485-1.137-4.066-1.194l.865-2.724 2.343.549-.003.034c0 .696.569 1.262 1.268 1.262.699 0 1.267-.566 1.267-1.262s-.568-1.262-1.267-1.262c-.537 0-.994.335-1.179.804l-2.525-.592c-.11-.027-.223.037-.257.145l-.965 3.038c-1.656.02-3.155.466-4.258 1.181-.277-.255-.644-.415-1.05-.415-.854.001-1.549.693-1.549 1.544 0 .566.311 1.056.768 1.325-.03.164-.05.331-.05.5 0 2.281 2.805 4.137 6.253 4.137s6.253-1.856 6.253-4.137c0-.16-.017-.317-.044-.472.486-.261.82-.766.82-1.353zm-4.872.141c-.509 0-.922.412-.922.919 0 .506.414.918.922.918s.922-.412.922-.918c0-.507-.413-.919-.922-.919z" /> + </svg> + ); +} + +export default function SocialLinks({ + redditUrl, + twitterUrl +}: { + redditUrl: string; + twitterUrl: string; +}) { + return ( + <div className={classes.socialLinks}> + <div className={classes.row}> + <img + className={classes.icon} + src={useBaseUrl('/img/undraw_online_discussion.svg')} + /> + <div className={classes.text}>Give us feedback in those threads</div> + </div> + <div className={clsx(classes.row, 'margin-top--md')}> + <a + className={clsx( + classes.twitter, + 'button', + 'button--outline', + 'margin-right--md' + )} + href={twitterUrl}> + Twitter + <TwitterLogo /> + </a> + <a + className={clsx(classes.reddit, 'button', 'button--outline')} + href={redditUrl}> + Reddit + <RedditLogo /> + </a> + </div> + </div> + ); +} diff --git a/apps/website/src/components/SvgFigure.module.scss b/apps/website/src/components/SvgFigure.module.scss new file mode 100644 index 00000000..0701d35e --- /dev/null +++ b/apps/website/src/components/SvgFigure.module.scss @@ -0,0 +1,22 @@ +@import '../css/shared.scss'; + +.figure { + @extend .figure; + margin: 0 0 var(--ifm-leading) 0; + padding: 0; +} + +.figure__title { + @extend .figure__title; +} + +.figure__caption { + @extend .figure__caption; + background-color: var(--theme-surface-bg); +} + +.svgContainer { + padding: var(--ifm-leading); + background-color: var(--ifm-code-background); + background-color: rgba(125,125,125,0.15); +} diff --git a/apps/website/src/components/SvgFigure.tsx b/apps/website/src/components/SvgFigure.tsx new file mode 100644 index 00000000..82729d95 --- /dev/null +++ b/apps/website/src/components/SvgFigure.tsx @@ -0,0 +1,39 @@ +/* eslint-disable react-native/no-inline-styles */ +import React from 'react'; +import { SvgAssetType } from '@doc/pages'; +import DataFlowSvg from '../svg/data-flow.svg'; +import styles from './SvgFigure.module.scss'; + +const svgAssetsIndex: Record<SvgAssetType, typeof DataFlowSvg> = { + 'data-flow': DataFlowSvg +}; + +export default function SvgFigure({ + asset, + description, + title +}: { + asset: SvgAssetType; + description: string; + title: string; +}) { + const SvgComponent = svgAssetsIndex[asset]; + return ( + <> + {title && <div className={styles.figure__title}>{title}</div>} + <figure className={styles.figure}> + <div className={styles.svgContainer}> + <SvgComponent + content="var(--ifm-font-color-base)" + secondaryContent="var(--ifm-font-color-secondary)" + codeBlockBg="rgba(125,125,125,0.15)" + width="100%" + /> + </div> + <figcaption className={styles.figure__caption}> + {description} + </figcaption> + </figure> + </> + ); +} diff --git a/apps/website/src/components/TNodeTransformDisplay.module.scss b/apps/website/src/components/TNodeTransformDisplay.module.scss new file mode 100644 index 00000000..14f21601 --- /dev/null +++ b/apps/website/src/components/TNodeTransformDisplay.module.scss @@ -0,0 +1,19 @@ +@import '../css/shared.scss'; + +.arrow { + text-align: center; + font-size: 50px; + padding-bottom: var(--ifm-leading); +} + +.figure { + @extend .figure, .figure--card; +} + +.figure__caption { + @extend .figure__caption; +} + +.figure__title { + @extend .figure__title; +} diff --git a/apps/website/src/components/TNodeTransformDisplay.tsx b/apps/website/src/components/TNodeTransformDisplay.tsx new file mode 100644 index 00000000..04d58905 --- /dev/null +++ b/apps/website/src/components/TNodeTransformDisplay.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +import CodeBlock from '@theme/CodeBlock'; +import styles from './TNodeTransformDisplay.module.scss'; + +export default function TNodeTransformDisplay({ + html, + snapshot, + caption, + title +}: { + title?: string; + caption?: string; + html: string; + snapshot: string; +}) { + const normalHtml = decodeURIComponent(html); + const normalSnapshot = decodeURIComponent(snapshot); + return ( + <> + {title && <div className={styles.figure__title}>{title}</div>} + <figure className={styles.figure}> + <CodeBlock className={'html'}>{normalHtml}</CodeBlock> + <div className={styles.arrow}>↓</div> + <CodeBlock className={'xml'}>{normalSnapshot}</CodeBlock> + {caption && ( + <figcaption className={styles.figure__caption}>{caption}</figcaption> + )} + </figure> + </> + ); +} diff --git a/apps/website/src/components/TryOnExpoCard.module.scss b/apps/website/src/components/TryOnExpoCard.module.scss new file mode 100644 index 00000000..4005c9b5 --- /dev/null +++ b/apps/website/src/components/TryOnExpoCard.module.scss @@ -0,0 +1,24 @@ +html[data-theme='dark'] .expoBox--themed, .expoBox--white { + img { + filter: invert(1) opacity(80%); + } +} +.expoBox { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + line-height: 1.4; + &__logo { + margin-bottom: 0.5rem; + } + &__qr { + margin-top: 0.5rem; + align-self: center; + } +} + +.img { + width: 120px; + height: 120px; +} diff --git a/apps/website/src/components/TryOnExpoCard.tsx b/apps/website/src/components/TryOnExpoCard.tsx new file mode 100644 index 00000000..32b3fb12 --- /dev/null +++ b/apps/website/src/components/TryOnExpoCard.tsx @@ -0,0 +1,59 @@ +import React from 'react'; +import clsx from 'clsx'; +import classes from './TryOnExpoCard.module.scss'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import Link from '@docusaurus/Link'; + +const ExpoLogo = ({ size }) => ( + <svg + width="24" + height="26" + viewBox="0 0 24 26" + style={{ width: size, height: size }} + fill="none" + xmlns="http://www.w3.org/2000/svg"> + <path + d="M22.069 10.075a2.273 2.273 0 00-.887-.74 2.296 2.296 0 00-2.237.16 2.265 2.265 0 00-.77.859 2.016 2.016 0 00.392 2.274 3.342 3.342 0 002.23-.63 3.289 3.289 0 001.271-1.923zM15.3 1.3l-1.45-.788-6.31 3.481.503.27.957.498 1.732-.954 4.569-2.523-.001.016zm.584-.24a.225.225 0 01.16.15l2.114 6.182a.205.205 0 01-.1.269 4.063 4.063 0 00-1.798 1.974 4.017 4.017 0 00-.175 2.655 4.283 4.283 0 001.755 2.332c.842.55 1.852.79 2.854.68a.269.269 0 01.262.16l2.184 6.345a.256.256 0 01-.101.278l-6.712 3.89a.253.253 0 01-.101.02.27.27 0 01-.181-.03L13.69 24.5a.234.234 0 01-.1-.1l-4.6-10.483-7.005 3.95a.327.327 0 01-.272.01l-1.592-.898a.23.23 0 01-.1-.299l6.805-12.8a.243.243 0 01.11-.099L13.721.03a.259.259 0 01.241 0l1.923 1.03zM7.47 4.499L7.14 4.33.58 16.71l1.197.668 5.657-7.335a.275.275 0 01.231-.1.282.282 0 01.201.149l6.16 14.066 1.646 1.007L9.06 6.005l-.281-.798-1.318-.718.01.01zm10.145 7.382a2.51 2.51 0 01.12-1.663 2.54 2.54 0 011.138-1.23 2.798 2.798 0 013.261.4 2.513 2.513 0 01.073 3.568l-.073.073a2.77 2.77 0 01-3.788.01 2.719 2.719 0 01-.731-1.158z" + fill="var(--ifm-font-color-base)" + /> + </svg> +); + +export default function TryOnExpoCard({ + className, + projectUrl, + name, + imagePath, + themed, + white +}: { + className?: string; + projectUrl: string; + name: string; + imagePath: string; + themed?: boolean; + white?: boolean; +}) { + const src = useBaseUrl(imagePath); + return ( + <div + className={clsx(classes.expoBox, className, { + [classes['expoBox--themed']]: themed, + [classes['expoBox--white']]: white + })}> + <Link to="https://expo.dev/client" className={classes['expoBox__logo']}> + <ExpoLogo size={48} /> + </Link> + <a target="_blank" rel="noopener" href={projectUrl}> + <strong>Try Out The {name} App on Expo!</strong> + </a> + <div className={classes['expoBox__qr']}> + <img + className={classes['img']} + alt={`QR code to scan the ${name} App in Expo Go`} + src={src} + /> + </div> + </div> + ); +} diff --git a/apps/website/src/components/TwitterFollow.module.scss b/apps/website/src/components/TwitterFollow.module.scss new file mode 100644 index 00000000..7e8e46da --- /dev/null +++ b/apps/website/src/components/TwitterFollow.module.scss @@ -0,0 +1,31 @@ +.button { + position: relative; + box-sizing: border-box; + display: flex; + align-items: center; + padding: 1px 8px 1px 6px; + background-color: #1b95e0; + color: #fff; + height: 20px; + border-radius: 3px; + font-weight: 500; + cursor: pointer; + font-family: sans-serif; + letter-spacing: normal; + font-size: 12px; + line-height: 12px; + &:hover { + color: var(--ifm-primary-color); + } +} + +.i { + position: relative; + display: inline-block; + width: 14px; + height: 14px; + margin-right: 5px; + background: transparent 0 0 no-repeat; + background-image: none; + background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2072%2072%22%3E%3Cpath%20fill%3D%22none%22%20d%3D%22M0%200h72v72H0z%22%2F%3E%3Cpath%20class%3D%22icon%22%20fill%3D%22%23fff%22%20d%3D%22M68.812%2015.14c-2.348%201.04-4.87%201.744-7.52%202.06%202.704-1.62%204.78-4.186%205.757-7.243-2.53%201.5-5.33%202.592-8.314%203.176C56.35%2010.59%2052.948%209%2049.182%209c-7.23%200-13.092%205.86-13.092%2013.093%200%201.026.118%202.02.338%202.98C25.543%2024.527%2015.9%2019.318%209.44%2011.396c-1.125%201.936-1.77%204.184-1.77%206.58%200%204.543%202.312%208.552%205.824%2010.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163%200%206.345%204.513%2011.638%2010.504%2012.84-1.1.298-2.256.457-3.45.457-.845%200-1.666-.078-2.464-.23%201.667%205.2%206.5%208.985%2012.23%209.09-4.482%203.51-10.13%205.605-16.26%205.605-1.055%200-2.096-.06-3.122-.184%205.794%203.717%2012.676%205.882%2020.067%205.882%2024.083%200%2037.25-19.95%2037.25-37.25%200-.565-.013-1.133-.038-1.693%202.558-1.847%204.778-4.15%206.532-6.774z%22%2F%3E%3C%2Fsvg%3E); +} diff --git a/apps/website/src/components/TwitterFollow.tsx b/apps/website/src/components/TwitterFollow.tsx new file mode 100644 index 00000000..abcc74af --- /dev/null +++ b/apps/website/src/components/TwitterFollow.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import classes from './TwitterFollow.module.scss'; +import clsx from 'clsx'; + +export default function TwitterFollow({ className }: { className?: string }) { + return ( + <a + href="https://twitter.com/jsamrn?ref_src=twsrc%5Etfw" + className={clsx(classes.button, className)} + data-show-count="false"> + <i className={classes.i} /> + Follow @jsamrn + </a> + ); +} diff --git a/apps/website/src/css/custom.scss b/apps/website/src/css/custom.scss new file mode 100644 index 00000000..3f9d5e52 --- /dev/null +++ b/apps/website/src/css/custom.scss @@ -0,0 +1,352 @@ +/* stylelint-disable docusaurus/copyright-header */ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + * See https://github.com/facebookincubator/infima/blob/master/packages/core/styles/common/variables.pcss + */ + +@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,600;1,400;1,600&family=Source+Code+Pro:ital,wght@0,400;0,600;1,400;1,600&display=swap'); +@import './shared.scss'; + +$theme-surface-bg: rgb(0, 0, 48); +// $code-bg: lighten($theme-surface-bg, 4%); +$code-bg: #1b1b5e; + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #8181ff; + // --ifm-color-primary-dark: #0d8eb1; + // --ifm-color-primary-darker: #0d86a7; + // --ifm-color-primary-darkest: #0a6f8a; + // --ifm-color-primary-light: #10aed9; + // --ifm-color-primary-lighter: #11b6e3; + // --ifm-color-primary-lightest: #00c8ff; + + --ifm-color-success: var(--ifm-color-primary); + // --ifm-color-success-dark: #5ced5c; + // --ifm-color-success-darker: #4bec4b; + // --ifm-color-success-darkest: #1ae61a; + // --ifm-color-success-light: #9ef59e; + // --ifm-color-success-lighter: #aff6af; + // --ifm-color-success-lightest: #d0fad0; + + --ifm-color-info: var(--ifm-color-primary); + // --ifm-color-info-dark: #5cc4e6; + // --ifm-color-info-darker: #4cbee4; + // --ifm-color-info-darkest: #21abda; + // --ifm-color-info-light: #9adaf0; + // --ifm-color-info-lighter: #aae0f2; + // --ifm-color-info-lightest: #c9ebf7; + + --ifm-color-danger: var(--ifm-color-primary); + // --ifm-color-danger-dark: #f54349; + // --ifm-color-danger-darker: #f43339; + // --ifm-color-danger-darkest: #e70c13; + // --ifm-color-danger-light: #f98589; + // --ifm-color-danger-lighter: #fa9599; + // --ifm-color-danger-lightest: #fbb6b9; + + --ifm-code-font-size: 95%; + --ifm-code-padding-vertical: 0; + --ifm-code-padding-horizontal: 0; + --ifm-font-family-monospace: 'Source Code Pro', monospace; + --ifm-font-family-base: 'Raleway', sans-serif; + + --ifm-global-radius: 0; + --ifm-line-height-base: 2; + + --theme-collection-odd-bg: rgba(161, 161, 161, 0.103); + --theme-collection-even-bg: rgba(109, 109, 109, 0.281); + + --ifm-table-background: var(--theme-collection-odd-bg); + --ifm-table-stripe-background: var(--theme-collection-even-bg); + + --syntax-color-punctuation: rgb(199, 146, 234); + --syntax-color-attr-name: rgb(255, 203, 107); + --syntax-color-plain: rgb(191, 199, 213); + --syntax-color-keyword: rgb(194, 59, 142); + --syntax-color-literal: rgb(136, 194, 59); + --syntax-color-type: rgb(67, 119, 231); + --syntax-color-primitive: rgb(89, 187, 243); + + --theme-surface-bg: #{$theme-surface-bg}; + + --reference-color-lib: rgb(146, 24, 24); + + // Navbar + --ifm-navbar-background-color: #{darken($theme-surface-bg, 4%)}; + --ifm-navbar-link-color: var(--ifm-color-white); + --ifm-footer-background-color: rgb(0, 0, 64); + --ifm-code-background: #{$code-bg}; + --ifm-link-color: var(--ifm-color-primary); + --reference-color-doc: var(--ifm-link-color); +} + +html { + &[data-theme='light'] { + --ifm-color-warning: #c59d30; + --ifm-color-danger: #f54349; + } + &[data-theme='dark'] { + --ifm-color-warning: #f7c53c; + --ifm-color-danger: #f54349; + } +} + +html[data-theme='light'] { + --theme-on-primary: var(--ifm-color-white); + --ifm-background-color: var(--ifm-color-white); + // Docsearch + --docsearch-text-color: var(--ifm-color-gray-800); + --docsearch-container-background: rgba(0, 16, 64, 0.9); + --docsearch-searchbox-background: var(--ifm-background-color); + + // Fonts + --ifm-font-color-secondary: var(--ifm-color-gray-700); + --ifm-font-color-base: var(--ifm-color-gray-800); + --ifm-color-highlight: var(--ifm-color-gray-900); + --reference-bg: #cececebe; + --reference-bg-hover: #253161; + --reference-color-hover: var(--ifm-color-gray-200); +} + +html[data-theme='dark'] { + --theme-on-primary: var(--ifm-color-black); + --docsearch-searchbox-background: var(--ifm-background-color) !important; + --ifm-code-background: #{$code-bg}; + --ifm-background-color: #1c1c2e; + --ifm-font-color-base: var(--ifm-color-gray-200); + --ifm-color-highlight: var(--ifm-color-gray-100); + --ifm-font-color-secondary: var(--ifm-color-gray-400); + --reference-bg: #21232bde; + --reference-bg-hover: #c0c1c5; + --reference-color-hover: var(--ifm-color-gray-800); +} + +.codeblock--with-line-numbers { + .prism-code { + counter-reset: line-number; + .token-line::marker { + content: counter(line-number); + color: var(--ifm-color-gray-700); + } + .token-line { + display: list-item; + counter-increment: line-number; + padding-left: var(--ifm-pre-padding); + margin-left: var(--ifm-global-spacing); + } + } +} + + +.DocSearch-Button { + border-radius: 0 !important; +} + +.footer--dark { + --ifm-footer-background-color: rgb(0, 0, 64); +} + +/* Avoid bug with react-modal */ +.ReactModal__Body--open .navbar.navbar--fixed-top { + z-index: 0; +} + +.table-of-contents { + line-height: 1.2; + li { + margin-bottom: 16px; + margin-top: 16px; + } +} + +.navbar__title { + font-family: var(--ifm-font-family-monospace); +} + +.navbar__logo { + width: 50px; + height: 50px; +} + +.menu__link { + --ifm-menu-color-background-active: var(--ifm-color-primary); + --ifm-menu-color-active: var(--theme-on-primary); + border-radius: var(--ifm-global-radius); + &#{&}--sublist#{&}--active { + --ifm-menu-color-active: var(--ifm-color-primary); + color: var(--ifm-menu-color-active); + } + &--sublist { + text-transform: uppercase; + cursor: unset; + font-size: 85%; + color: var(--ifm-font-color-secondary); + &::after { + display: none; + } + &:hover { + background-color: transparent; + } + } +} + +code { + font-weight: var(--ifm-font-weight-semibold); + background-color: transparent; + border-width: 0; + padding: 0; +} + +.docusaurus-highlight-code-line { + background-color: rgba(72, 77, 91, 0.25); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +code { + vertical-align: baseline; +} + +// doc and blog pages +.markdown { + li.li-api-reference { + &::marker { + color: var(--syntax-color-type); + } + list-style-type: '◆ '; + } + li > p, + dd > p, + dt > p { + margin-top: 0; + margin-bottom: 0; + } + dt a:not(:hover) > code { + background-color: transparent !important; + } + dl { + @extend .figure; + background-color: transparent; + padding: 0; + overflow: hidden; + > :nth-child(4n + 1), + > :nth-child(4n + 2) { + background-color: var(--theme-collection-odd-bg); + } + > :nth-child(4n), + > :nth-child(4n - 1) { + background-color: var(--theme-collection-even-bg); + } + dt, + dd { + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.25rem; + } + dd { + padding-bottom: 1rem; + margin-left: 0; + padding-left: 3rem; + } + } + table { + table-layout: fixed; + + > thead { + > tr { + background-color: var(--ifm-color-primary); + color: var(--theme-on-primary); + } + th { + text-align: left; + } + } + + th, + td, + tr { + border-width: 0; + } + + th, + td { + > p { + margin-bottom: 0; + } + } + } +} + +// Admonitions + +.admonition { + &-heading { + --ifm-alert-color: var(--ifm-alert-background-color); + --ifm-heading-color: var(--ifm-alert-background-color); + } +} + +.alert { + &--success { + --ifm-alert-background-color: var(--ifm-color-success); + } + &--info { + --ifm-alert-background-color: var(--ifm-color-info); + } + &--warning { + --ifm-alert-background-color: var(--ifm-color-warning); + } + &--danger { + --ifm-alert-background-color: var(--ifm-color-danger); + } + &--secondary { + --ifm-alert-background-color: var(--ifm-color-info); + } + --ifm-alert-color: var(--ifm-font-color-base); + --ifm-code-color: var(--ifm-alert-color); + --reference-color-doc: var(--ifm-alert-color); + background-color: rgba(5, 5, 5, 0.075); + border: none; + border-radius: 0; + border-left: solid var(--ifm-alert-background-color) 0.5rem; + svg { + fill: var(--ifm-alert-color); + } +} + +.button { + &--primary:not(:hover):not(#{&}--outline) { + background-color: var(--ifm-color-primary); + color: var(--theme-on-primary); + } +} + +.header-github-link::before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +} + +.header-github-link:hover { + opacity: 0.7; +} + +@media screen and (max-width: 996px) { + .navbar__brand { + display: none; + } +} + +.navbar-sidebar { + --ifm-menu-color: white; +} +.navbar__inner { + color: white; +} diff --git a/apps/website/src/css/shared.scss b/apps/website/src/css/shared.scss new file mode 100644 index 00000000..74588c36 --- /dev/null +++ b/apps/website/src/css/shared.scss @@ -0,0 +1,47 @@ +.figure { + &--card { + --ifm-font-color-base: var(--ifm-color-white); + background-color: var(--theme-surface-bg); + } + padding: var(--ifm-leading); + margin: 0 0 var(--ifm-leading) 0; + border-radius: var(--ifm-global-radius); + color: var(--ifm-font-color-base); +} + +.figure__caption { + padding: var(--ifm-leading); + font-style: italic; + text-align: center; + line-height: 1.4; + color: var(--ifm-font-color-secondary); +} + +.figure__title { + text-transform: uppercase; + padding: 0.5rem; + padding-left: 1rem; + font-size: 85%; + font-weight: var(--ifm-font-weight-bold); + background-color: var(--ifm-color-primary); + color: var(--theme-on-primary); +} + +.reference { + > code { + background-color: var(--reference-bg); + border-radius: 0; + padding: 1px 0 1px 0; + font-style: normal; + display: inline; + } + &:hover { + text-decoration: none; + > code { + background-color: var(--reference-bg-hover); + color: var(--reference-color-hover); + text-decoration: underline; + text-decoration-color: var(--reference-color-hover); + } + } +} diff --git a/apps/website/src/pages/index.module.scss b/apps/website/src/pages/index.module.scss new file mode 100644 index 00000000..2d6ce30e --- /dev/null +++ b/apps/website/src/pages/index.module.scss @@ -0,0 +1,65 @@ +.annoucement { + font-size: 24px; + margin: 0 auto; + padding: 2rem; + text-align: center; + background-color: rgba(125, 125, 125, 0.15); +} + +.advertising { + --ifm-font-color-base: var(--ifm-color-gray-100); + --ifm-link-color: var(--ifm-font-color-base); + color: var(--ifm-font-color-base); + padding: 2rem; + display: grid; + grid-gap: 4rem; + grid-template-areas: 'left right'; + background-color: var(--ifm-color-primary); + justify-content: center; + a { + font-weight: bolder; + text-decoration: underline; + &:hover { + color: var(--ifm-font-color-base); + } + } + &__label { + font-size: 20px; + } + &__left { + grid-area: left; + padding-left: 1rem; + padding-right: 1rem; + max-width: 350px; + display: flex; + flex-direction: column; + justify-content: center; + } + &__right { + grid-area: right; + > div { + margin-bottom: 0; + } + } + &__expo { + padding: 1rem; + background-color: rgba(125, 125, 125, 0.03); + border-radius: 1rem; + overflow: hidden; + } + @media screen and (max-width: 800px) { + grid-template-areas: 'left'; + &__right { + display: none; + } + &__left { + max-width: unset; + } + &__label { + text-align: center; + } + &__expo { + align-self: center; + } + } +} diff --git a/apps/website/src/pages/index.tsx b/apps/website/src/pages/index.tsx new file mode 100644 index 00000000..a40e5e5d --- /dev/null +++ b/apps/website/src/pages/index.tsx @@ -0,0 +1,48 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import classes from './index.module.scss'; +import HomepageHeader from '../components/HomepageHeader'; +import HomepageFeatures from '../components/HomepageFeatures'; +import ExpoDiscoveryCard from '../components/ExpoDiscoveryCard'; + +export default function Home() { + const { siteConfig } = useDocusaurusContext(); + return ( + <Layout title="Discover" description={siteConfig.tagline}> + <HomepageHeader /> + <div id="more" className={classes.annoucement}> + Coming from v4 or v5 ? Check out our{' '} + <Link to="/docs/migration-guide"> + <strong>migration guide</strong> + </Link> + . + </div> + <div className={classes.advertising}> + <div className={classes['advertising__left']}> + <div className={classes['advertising__label']}> + <p> + Try out our <strong>Discovery App</strong> for an immersive mobile + experience and glimpse of this library capabilities. + </p> + <p> + Scan the QR code or{' '} + <Link to="https://expo.dev/@jsamr/react-native-render-html-discovery"> + open the demo from the project page. + </Link> + . You need <Link to="https://expo.dev/client">Expo Go App</Link>{' '} + to test it. + </p> + </div> + </div> + <div className={classes['advertising__right']}> + <ExpoDiscoveryCard className={classes['advertising__expo']} /> + </div> + </div> + <main> + <HomepageFeatures /> + </main> + </Layout> + ); +} diff --git a/apps/website/src/png.d.ts b/apps/website/src/png.d.ts new file mode 100644 index 00000000..a9eed179 --- /dev/null +++ b/apps/website/src/png.d.ts @@ -0,0 +1,4 @@ +declare module '@site/static/img/lists/*.png' { + const content: string; + export default content; +} diff --git a/apps/website/src/scss.d.ts b/apps/website/src/scss.d.ts new file mode 100644 index 00000000..64ffdcfa --- /dev/null +++ b/apps/website/src/scss.d.ts @@ -0,0 +1,5 @@ +declare module '*.svg' { + import { SvgComponent } from '@doc/svg-component'; + const content: SvgComponent; + export default content; +} diff --git a/apps/website/src/svg.d.ts b/apps/website/src/svg.d.ts new file mode 100644 index 00000000..3248dcf4 --- /dev/null +++ b/apps/website/src/svg.d.ts @@ -0,0 +1,4 @@ +declare module '*.scss' { + const content: Record<string, any>; + export default content; +} diff --git a/apps/website/src/svg/.gitignore b/apps/website/src/svg/.gitignore new file mode 100644 index 00000000..61317519 --- /dev/null +++ b/apps/website/src/svg/.gitignore @@ -0,0 +1 @@ +*.svg \ No newline at end of file diff --git a/apps/website/src/theme/BlogPostItem/index.js b/apps/website/src/theme/BlogPostItem/index.js new file mode 100644 index 00000000..75dc2ed3 --- /dev/null +++ b/apps/website/src/theme/BlogPostItem/index.js @@ -0,0 +1,170 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import clsx from 'clsx'; +import { MDXProvider } from '@mdx-js/react'; +import Translate, { translate } from '@docusaurus/Translate'; +import Link from '@docusaurus/Link'; +import { usePluralForm } from '@docusaurus/theme-common'; +import MDXComponents from '@theme/MDXComponents'; +import Seo from '@theme/Seo'; +import Head from '@docusaurus/Head'; +import EditThisPage from '@theme/EditThisPage'; +import styles from './styles.module.css'; // Very simple pluralization: probably good enough for now + +function useReadingTimePlural() { + const { selectMessage } = usePluralForm(); + return (readingTimeFloat) => { + const readingTime = Math.ceil(readingTimeFloat); + return selectMessage( + readingTime, + translate( + { + id: 'theme.blog.post.readingTime.plurals', + description: + 'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)', + message: 'One min read|{readingTime} min read' + }, + { + readingTime + } + ) + ); + }; +} + +function BlogPostItem(props) { + const readingTimePlural = useReadingTimePlural(); + const { + children, + frontMatter, + metadata, + truncated, + isBlogPostPage = false + } = props; + const { date, formattedDate, permalink, tags, readingTime, title, editUrl } = + metadata; + const { author, image, keywords } = frontMatter; + const authorURL = frontMatter.author_url || frontMatter.authorURL; + const authorTitle = frontMatter.author_title || frontMatter.authorTitle; + const authorImageURL = + frontMatter.author_image_url || frontMatter.authorImageURL; + + const renderPostHeader = () => { + const TitleHeading = isBlogPostPage ? 'h1' : 'h2'; + return ( + <header> + <TitleHeading className={styles.blogPostTitle}> + {isBlogPostPage ? title : <Link to={permalink}>{title}</Link>} + </TitleHeading> + <div className={clsx(styles.blogPostData, 'margin-vert--md')}> + <time dateTime={date}>{formattedDate}</time> + + {readingTime && ( + <> + {' · '} + {readingTimePlural(readingTime)} + </> + )} + </div> + <div className="avatar margin-vert--md"> + {authorImageURL && ( + <Link className="avatar__photo-link avatar__photo" href={authorURL}> + <img src={authorImageURL} alt={author} /> + </Link> + )} + <div className="avatar__intro"> + {author && ( + <> + <div className="avatar__name"> + <Link href={authorURL}>{author}</Link> + </div> + <small className="avatar__subtitle">{authorTitle}</small> + </> + )} + </div> + </div> + </header> + ); + }; + + return ( + <> + <Seo + {...{ + keywords, + image + }} + /> + <Head> + <meta property="og:type" content="article" /> + {authorURL && <meta property="article:author" content={authorURL} />} + <meta + property="article:published_time" + content={new Date(date).toISOString()} + /> + </Head> + + <article className={!isBlogPostPage ? 'margin-bottom--xl' : undefined}> + {renderPostHeader()} + <div className="markdown"> + <MDXProvider components={MDXComponents}>{children}</MDXProvider> + </div> + {(tags.length > 0 || truncated) && ( + <footer + className={clsx('row docusaurus-mt-lg', { + [styles.blogPostDetailsFull]: isBlogPostPage + })}> + {tags.length > 0 && ( + <div className="col"> + <b> + <Translate + id="theme.tags.tagsListLabel" + description="The label alongside a tag list"> + Tags: + </Translate> + </b> + {tags.map(({ label, permalink: tagPermalink }) => ( + <Link + key={tagPermalink} + className="margin-horiz--sm" + to={tagPermalink}> + {label} + </Link> + ))} + </div> + )} + + {isBlogPostPage && editUrl && ( + <div className="col margin-top--sm"> + <EditThisPage editUrl={editUrl} /> + </div> + )} + + {!isBlogPostPage && truncated && ( + <div className="col text--right"> + <Link + to={metadata.permalink} + aria-label={`Read more about ${title}`}> + <b> + <Translate + id="theme.blog.post.readMore" + description="The label used in blog post item excerpts to link to full blog posts"> + Read More + </Translate> + </b> + </Link> + </div> + )} + </footer> + )} + </article> + </> + ); +} + +export default BlogPostItem; diff --git a/apps/website/src/theme/BlogPostItem/styles.module.css b/apps/website/src/theme/BlogPostItem/styles.module.css new file mode 100644 index 00000000..612fb71f --- /dev/null +++ b/apps/website/src/theme/BlogPostItem/styles.module.css @@ -0,0 +1,18 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.blogPostTitle { + font-size: 3rem; +} + +.blogPostData { + font-size: 0.9rem; +} + +.blogPostDetailsFull { + flex-direction: column; +} diff --git a/apps/website/src/theme/CodeBlock/__tests__/index.test.js b/apps/website/src/theme/CodeBlock/__tests__/index.test.js new file mode 100644 index 00000000..ccdbe70f --- /dev/null +++ b/apps/website/src/theme/CodeBlock/__tests__/index.test.js @@ -0,0 +1,83 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import {parseCodeBlockTitle} from '../index'; +const metastringSamples = { + doubleQuote: { + input: `title="index.js"`, + expectedOutput: `index.js`, + }, + singleQuote: { + input: `title='index.js'`, + expectedOutput: `index.js`, + }, + mismatchedQuotes: { + input: `title="index.js'`, + expectedOutput: ``, + }, + undefinedMetastring: { + input: undefined, + expectedOutput: ``, + }, + noTitle: { + input: `{1,2-3}`, + expectedOutput: '', + }, + otherMetadata: { + input: `title="index.js" label="JavaScript"`, + expectedOutput: `index.js`, + }, + titleWithDoubleQuotes: { + input: `title='console.log("Hello, World!")'`, + expectedOutput: `console.log("Hello, World!")`, + }, + titleWithSingleQuotes: { + input: `title="console.log('Hello, World!')"`, + expectedOutput: `console.log('Hello, World!')`, + }, +}; +describe('parseCodeBlockTitle', () => { + test('sholud parse double quote delimited title', () => { + const sample = metastringSamples.doubleQuote; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse single quote delimited title', () => { + const sample = metastringSamples.singleQuote; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should not parse mismatched quote delimiters', () => { + const sample = metastringSamples.mismatchedQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse undefined metastring', () => { + const sample = metastringSamples.undefinedMetastring; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse metastring with no title specified', () => { + const sample = metastringSamples.noTitle; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse only up to first matching delimiter', () => { + const sample = metastringSamples.otherMetadata; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse double quotes when delimited by single quotes', () => { + const sample = metastringSamples.titleWithDoubleQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse single quotes when delimited by double quotes', () => { + const sample = metastringSamples.titleWithSingleQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); +}); diff --git a/apps/website/src/theme/CodeBlock/__tests__/parseCodeBlockTitle.test.js b/apps/website/src/theme/CodeBlock/__tests__/parseCodeBlockTitle.test.js new file mode 100644 index 00000000..86902ab3 --- /dev/null +++ b/apps/website/src/theme/CodeBlock/__tests__/parseCodeBlockTitle.test.js @@ -0,0 +1,83 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import parseCodeBlockTitle from '../parseCodeBlockTitle'; +const metastringSamples = { + doubleQuote: { + input: `title="index.js"`, + expectedOutput: `index.js`, + }, + singleQuote: { + input: `title='index.js'`, + expectedOutput: `index.js`, + }, + mismatchedQuotes: { + input: `title="index.js'`, + expectedOutput: ``, + }, + undefinedMetastring: { + input: undefined, + expectedOutput: ``, + }, + noTitle: { + input: `{1,2-3}`, + expectedOutput: '', + }, + otherMetadata: { + input: `title="index.js" label="JavaScript"`, + expectedOutput: `index.js`, + }, + titleWithDoubleQuotes: { + input: `title='console.log("Hello, World!")'`, + expectedOutput: `console.log("Hello, World!")`, + }, + titleWithSingleQuotes: { + input: `title="console.log('Hello, World!')"`, + expectedOutput: `console.log('Hello, World!')`, + }, +}; +describe('parseCodeBlockTitle', () => { + test('sholud parse double quote delimited title', () => { + const sample = metastringSamples.doubleQuote; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse single quote delimited title', () => { + const sample = metastringSamples.singleQuote; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should not parse mismatched quote delimiters', () => { + const sample = metastringSamples.mismatchedQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse undefined metastring', () => { + const sample = metastringSamples.undefinedMetastring; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse metastring with no title specified', () => { + const sample = metastringSamples.noTitle; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse only up to first matching delimiter', () => { + const sample = metastringSamples.otherMetadata; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse double quotes when delimited by single quotes', () => { + const sample = metastringSamples.titleWithDoubleQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); + test('should parse single quotes when delimited by double quotes', () => { + const sample = metastringSamples.titleWithSingleQuotes; + const result = parseCodeBlockTitle(sample.input); + expect(result).toEqual(sample.expectedOutput); + }); +}); diff --git a/apps/website/src/theme/CodeBlock/index.js b/apps/website/src/theme/CodeBlock/index.js new file mode 100644 index 00000000..84302349 --- /dev/null +++ b/apps/website/src/theme/CodeBlock/index.js @@ -0,0 +1,264 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React, { useEffect, useState, useRef } from 'react'; +import clsx from 'clsx'; +import Highlight, { defaultProps } from 'prism-react-renderer'; +import copy from 'copy-text-to-clipboard'; +import rangeParser from 'parse-numeric-range'; +import usePrismTheme from '@theme/hooks/usePrismTheme'; +import Translate, { translate } from '@docusaurus/Translate'; +import styles from './styles.module.scss'; +import { useThemeConfig, parseCodeBlockTitle } from '@docusaurus/theme-common'; +const highlightLinesRangeRegex = /{([\d,-]+)}/; + +const getHighlightDirectiveRegex = ( + languages = ['js', 'jsBlock', 'jsx', 'python', 'html'] +) => { + // supported types of comments + const comments = { + js: { + start: '\\/\\/', + end: '' + }, + jsBlock: { + start: '\\/\\*', + end: '\\*\\/' + }, + jsx: { + start: '\\{\\s*\\/\\*', + end: '\\*\\/\\s*\\}' + }, + python: { + start: '#', + end: '' + }, + html: { + start: '<!--', + end: '-->' + } + }; // supported directives + + const directives = [ + 'highlight-next-line', + 'highlight-start', + 'highlight-end' + ].join('|'); // to be more reliable, the opening and closing comment must match + + const commentPattern = languages + .map( + (lang) => + `(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})` + ) + .join('|'); // white space is allowed, but otherwise it should be on it's own line + + return new RegExp(`^\\s*(?:${commentPattern})\\s*$`); +}; // select comment styles based on language + +const highlightDirectiveRegex = (lang) => { + switch (lang) { + case 'js': + case 'javascript': + case 'ts': + case 'typescript': + return getHighlightDirectiveRegex(['js', 'jsBlock']); + + case 'jsx': + case 'tsx': + return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']); + + case 'html': + return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']); + + case 'python': + case 'py': + return getHighlightDirectiveRegex(['python']); + + default: + // all comment types + return getHighlightDirectiveRegex(); + } +}; + +export default function CodeBlock({ + children, + className: languageClassName, + metastring, + title +}) { + const { prism } = useThemeConfig(); + const [showCopied, setShowCopied] = useState(false); + const [mounted, setMounted] = useState(false); // The Prism theme on SSR is always the default theme but the site theme + // can be in a different mode. React hydration doesn't update DOM styles + // that come from SSR. Hence force a re-render after mounting to apply the + // current relevant styles. There will be a flash seen of the original + // styles seen using this current approach but that's probably ok. Fixing + // the flash will require changing the theming approach and is not worth it + // at this point. + + useEffect(() => { + setMounted(true); + }, []); // TODO: the title is provided by MDX as props automatically + // so we probably don't need to parse the metastring + // (note: title="xyz" => title prop still has the quotes) + + const codeBlockTitle = parseCodeBlockTitle(metastring) || title; + const button = useRef(null); + let highlightLines = []; + const prismTheme = usePrismTheme(); // In case interleaved Markdown (e.g. when using CodeBlock as standalone component). + + const content = Array.isArray(children) ? children.join('') : children; + + if (metastring && highlightLinesRangeRegex.test(metastring)) { + // Tested above + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const highlightLinesRange = metastring.match(highlightLinesRangeRegex)[1]; + highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0); + } + + let language = + languageClassName && // Force Prism's language union type to `any` because it does not contain all available languages + // eslint-disable-next-line @typescript-eslint/no-explicit-any + languageClassName.replace(/language-/, ''); + + if (!language && prism.defaultLanguage) { + language = prism.defaultLanguage; + } // only declaration OR directive highlight can be used for a block + + let code = content.replace(/\n$/, ''); + + if (highlightLines.length === 0 && language !== undefined) { + let range = ''; + const directiveRegex = highlightDirectiveRegex(language); // go through line by line + + const lines = content.replace(/\n$/, '').split('\n'); + let blockStart; // loop through lines + + for (let index = 0; index < lines.length; ) { + const line = lines[index]; // adjust for 0-index + + const lineNumber = index + 1; + const match = line.match(directiveRegex); + + if (match !== null) { + const directive = match + .slice(1) + .reduce((final, item) => final || item, undefined); + + switch (directive) { + case 'highlight-next-line': + range += `${lineNumber},`; + break; + + case 'highlight-start': + blockStart = lineNumber; + break; + + case 'highlight-end': + range += `${blockStart}-${lineNumber - 1},`; + break; + + default: + break; + } + + lines.splice(index, 1); + } else { + // lines without directives are unchanged + index += 1; + } + } + + highlightLines = rangeParser(range); + code = lines.join('\n'); + } + + const handleCopyCode = () => { + copy(code); + setShowCopied(true); + setTimeout(() => setShowCopied(false), 2000); + }; + + return ( + <Highlight + {...defaultProps} + key={String(mounted)} + theme={prismTheme} + code={code} + language={language}> + {({ className, tokens, getLineProps, getTokenProps }) => ( + <div className={styles.codeBlockContainer}> + {codeBlockTitle && ( + <div className={styles.codeBlockTitle}>{codeBlockTitle}</div> + )} + <div className={clsx(styles.codeBlockContent, language)}> + <div + tabIndex={0} + className={clsx(className, styles.codeBlock, 'thin-scrollbar', { + [styles.codeBlockWithTitle]: codeBlockTitle + })}> + <div className={styles.codeBlockLines}> + {tokens.map((line, i) => { + if (line.length === 1 && line[0].content === '') { + line[0].content = '\n'; // eslint-disable-line no-param-reassign + } + + const lineProps = getLineProps({ + line, + key: i + }); + + if (highlightLines.includes(i + 1)) { + lineProps.className = `${lineProps.className} docusaurus-highlight-code-line`; + } + + return ( + <div key={i} {...lineProps}> + {line.map((token, key) => ( + <span + key={key} + {...getTokenProps({ + token, + key + })} + /> + ))} + </div> + ); + })} + </div> + </div> + + <button + ref={button} + type="button" + aria-label={translate({ + id: 'theme.CodeBlock.copyButtonAriaLabel', + message: 'Copy code to clipboard', + description: 'The ARIA label for copy code blocks button' + })} + className={clsx(styles.copyButton)} + onClick={handleCopyCode}> + {showCopied ? ( + <Translate + id="theme.CodeBlock.copied" + description="The copied button label on code blocks"> + Copied + </Translate> + ) : ( + <Translate + id="theme.CodeBlock.copy" + description="The copy button label on code blocks"> + Copy + </Translate> + )} + </button> + </div> + </div> + )} + </Highlight> + ); +} diff --git a/apps/website/src/theme/CodeBlock/parseCodeBlockTitle.js b/apps/website/src/theme/CodeBlock/parseCodeBlockTitle.js new file mode 100644 index 00000000..a8949616 --- /dev/null +++ b/apps/website/src/theme/CodeBlock/parseCodeBlockTitle.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const codeBlockTitleRegex = /title=(["'])(.*?)\1/; + +const parseCodeBlockTitle = (metastring) => { + return (metastring && metastring.match(codeBlockTitleRegex)?.[2]) || ''; +}; + +export default parseCodeBlockTitle; diff --git a/apps/website/src/theme/CodeBlock/styles.module.scss b/apps/website/src/theme/CodeBlock/styles.module.scss new file mode 100644 index 00000000..d1c4b9ef --- /dev/null +++ b/apps/website/src/theme/CodeBlock/styles.module.scss @@ -0,0 +1,70 @@ +@import '../../css/shared.scss'; + + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + .codeBlockContainer { + margin-bottom: var(--ifm-leading); + background-color: var(--ifm-code-background); +} + +.codeBlockContent { + position: relative; + /*rtl:ignore*/ + direction: ltr; +} + +.codeBlockTitle { + @extend .figure__title; + text-transform: none; + font-family: var(--ifm-font-family-monospace); +} + +.codeBlock { + overflow: auto; + border-radius: var(--ifm-global-radius); +} + +.codeBlockWithTitle { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.copyButton { + background: rgba(0, 0, 0, 0.3); + border: none; + border-radius: var(--ifm-global-radius); + color: var(--ifm-color-white); + cursor: pointer; + opacity: 0; + user-select: none; + padding: 0.4rem 0.5rem; + position: absolute; + right: calc(var(--ifm-pre-padding) / 2); + top: calc(var(--ifm-pre-padding) / 2); + transition: opacity 200ms ease-in-out; +} + +.codeBlockTitle:hover + .codeBlockContent .copyButton, +.codeBlockContent:hover > .copyButton, +.copyButton:focus { + opacity: 1; +} + +.codeBlockLines { + font: var(--ifm-code-font-size) / var(--ifm-pre-line-height) + var(--ifm-font-family-monospace); + white-space: pre; + float: left; + min-width: 100%; + padding: var(--ifm-pre-padding); +} + +@media print { + .codeBlockLines { + white-space: pre-wrap; + } +} diff --git a/apps/website/src/theme/DocSidebar/index.js b/apps/website/src/theme/DocSidebar/index.js new file mode 100644 index 00000000..47d76e50 --- /dev/null +++ b/apps/website/src/theme/DocSidebar/index.js @@ -0,0 +1,277 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React, { useState, useCallback, useEffect, useRef, memo } from 'react'; +import clsx from 'clsx'; +import { useThemeConfig, isSamePath } from '@docusaurus/theme-common'; +import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; +import useLockBodyScroll from '@theme/hooks/useLockBodyScroll'; +import useWindowSize, { windowSizes } from '@theme/hooks/useWindowSize'; +import useScrollPosition from '@theme/hooks/useScrollPosition'; +import Link from '@docusaurus/Link'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import Logo from '@theme/Logo'; +import IconArrow from '@theme/IconArrow'; +import IconMenu from '@theme/IconMenu'; +import { translate } from '@docusaurus/Translate'; +import styles from './styles.module.css'; +const MOBILE_TOGGLE_SIZE = 24; + +const isActiveSidebarItem = (item, activePath) => { + if (item.type === 'link') { + return isSamePath(item.href, activePath); + } + + if (item.type === 'category') { + return item.items.some((subItem) => + isActiveSidebarItem(subItem, activePath) + ); + } + + return false; +}; // Optimize sidebar at each "level" +// TODO this item should probably not receive the "activePath" props +// TODO this triggers whole sidebar re-renders on navigation + +const DocSidebarItems = memo(function DocSidebarItems({ items, ...props }) { + return items.map((item, index) => ( + <DocSidebarItem + key={index} // sidebar is static, the index does not change + item={item} + {...props} + /> + )); +}); + +function DocSidebarItem(props) { + switch (props.item.type) { + case 'category': + return <DocSidebarItemCategory {...props} />; + + case 'link': + default: + return <DocSidebarItemLink {...props} />; + } +} + +function DocSidebarItemCategory({ item, onItemClick, activePath, ...props }) { + const { items, label } = item; + const isActive = isActiveSidebarItem(item, activePath); + const menuListRef = useRef(null); + + if (items.length === 0) { + return null; + } + + return ( + <li className={clsx('menu__list-item')}> + <span + className={clsx('menu__link', { + 'menu__link--sublist': true, + 'menu__link--active': isActive, + [styles.menuLinkText]: false + })} + {...props}> + {label} + </span> + <ul className="menu__list" ref={menuListRef}> + <DocSidebarItems + items={items} + tabIndex="0" + onItemClick={onItemClick} + activePath={activePath} + /> + </ul> + </li> + ); +} + +function DocSidebarItemLink({ + item, + onItemClick, + activePath, + collapsible: _collapsible, + ...props +}) { + const { href, label } = item; + const isActive = isActiveSidebarItem(item, activePath); + return ( + <li className="menu__list-item" key={label}> + <Link + className={clsx('menu__link', { + 'menu__link--active': isActive, + [styles.menuLinkExternal]: !isInternalUrl(href) + })} + to={href} + {...(isInternalUrl(href) && { + isNavLink: true, + exact: true, + onClick: onItemClick + })} + {...props}> + {label} + </Link> + </li> + ); +} + +function useShowAnnouncementBar() { + const { isAnnouncementBarClosed } = useUserPreferencesContext(); + const [showAnnouncementBar, setShowAnnouncementBar] = useState( + !isAnnouncementBarClosed + ); + useScrollPosition(({ scrollY }) => { + if (!isAnnouncementBarClosed) { + setShowAnnouncementBar(scrollY === 0); + } + }); + return showAnnouncementBar; +} + +function useResponsiveSidebar() { + const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false); + useLockBodyScroll(showResponsiveSidebar); + const windowSize = useWindowSize(); + useEffect(() => { + if (windowSize === windowSizes.desktop) { + setShowResponsiveSidebar(false); + } + }, [windowSize]); + const closeResponsiveSidebar = useCallback( + (e) => { + e.target.blur(); + setShowResponsiveSidebar(false); + }, + [setShowResponsiveSidebar] + ); + const toggleResponsiveSidebar = useCallback(() => { + setShowResponsiveSidebar((value) => !value); + }, [setShowResponsiveSidebar]); + return { + showResponsiveSidebar, + closeResponsiveSidebar, + toggleResponsiveSidebar + }; +} + +function HideableSidebarButton({ onClick }) { + return ( + <button + type="button" + title={translate({ + id: 'theme.docs.sidebar.collapseButtonTitle', + message: 'Collapse sidebar', + description: 'The title attribute for collapse button of doc sidebar' + })} + aria-label={translate({ + id: 'theme.docs.sidebar.collapseButtonAriaLabel', + message: 'Collapse sidebar', + description: 'The title attribute for collapse button of doc sidebar' + })} + className={clsx( + 'button button--secondary button--outline', + styles.collapseSidebarButton + )} + onClick={onClick}> + <IconArrow className={styles.collapseSidebarButtonIcon} /> + </button> + ); +} + +function ResponsiveSidebarButton({ responsiveSidebarOpened, onClick }) { + return ( + <button + aria-label={ + responsiveSidebarOpened + ? translate({ + id: 'theme.docs.sidebar.responsiveCloseButtonLabel', + message: 'Close menu', + description: + 'The ARIA label for close button of mobile doc sidebar' + }) + : translate({ + id: 'theme.docs.sidebar.responsiveOpenButtonLabel', + message: 'Open menu', + description: + 'The ARIA label for open button of mobile doc sidebar' + }) + } + aria-haspopup="true" + className="button button--secondary button--sm menu__button" + type="button" + onClick={onClick}> + {responsiveSidebarOpened ? ( + <span + className={clsx(styles.sidebarMenuIcon, styles.sidebarMenuCloseIcon)}> + × + </span> + ) : ( + <IconMenu + className={styles.sidebarMenuIcon} + height={MOBILE_TOGGLE_SIZE} + width={MOBILE_TOGGLE_SIZE} + /> + )} + </button> + ); +} + +function DocSidebar({ + path, + sidebar, + sidebarCollapsible = true, + onCollapse, + isHidden +}) { + const showAnnouncementBar = useShowAnnouncementBar(); + const { + navbar: { hideOnScroll }, + hideableSidebar + } = useThemeConfig(); + const { isAnnouncementBarClosed } = useUserPreferencesContext(); + const { + showResponsiveSidebar, + closeResponsiveSidebar, + toggleResponsiveSidebar + } = useResponsiveSidebar(); + return ( + <div + className={clsx(styles.sidebar, { + [styles.sidebarWithHideableNavbar]: hideOnScroll, + [styles.sidebarHidden]: isHidden + })}> + {hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />} + <div + className={clsx( + 'menu', + 'menu--responsive', + 'thin-scrollbar', + styles.menu, + { + 'menu--show': showResponsiveSidebar, + [styles.menuWithAnnouncementBar]: + !isAnnouncementBarClosed && showAnnouncementBar + } + )}> + <ResponsiveSidebarButton + responsiveSidebarOpened={showResponsiveSidebar} + onClick={toggleResponsiveSidebar} + /> + <ul className="menu__list"> + <DocSidebarItems + items={sidebar} + onItemClick={closeResponsiveSidebar} + collapsible={sidebarCollapsible} + activePath={path} + /> + </ul> + </div> + {hideableSidebar && <HideableSidebarButton onClick={onCollapse} />} + </div> + ); +} + +export default DocSidebar; diff --git a/apps/website/src/theme/DocSidebar/styles.module.css b/apps/website/src/theme/DocSidebar/styles.module.css new file mode 100644 index 00000000..c9508e40 --- /dev/null +++ b/apps/website/src/theme/DocSidebar/styles.module.css @@ -0,0 +1,138 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +:root { + --collapse-button-bg-color-dark: #2e333a; +} + +@media (min-width: 997px) { + .sidebar { + display: flex; + flex-direction: column; + max-height: 100vh; + height: 100%; + position: sticky; + top: 0; + padding-top: var(--ifm-navbar-height); + width: var(--doc-sidebar-width); + transition: opacity 50ms ease; + } + + .sidebarWithHideableNavbar { + padding-top: 0; + } + + .sidebarHidden { + opacity: 0; + height: 0; + overflow: hidden; + visibility: hidden; + } + + .sidebarLogo { + display: flex !important; + align-items: center; + margin: 0 var(--ifm-navbar-padding-horizontal); + min-height: var(--ifm-navbar-height); + max-height: var(--ifm-navbar-height); + color: inherit !important; + text-decoration: none !important; + } + + .sidebarLogo img { + margin-right: 0.5rem; + height: 2rem; + } + + .menu { + flex-grow: 1; + padding: 0.5rem; + } + + .menuLinkText { + cursor: initial; + } + + .menuLinkText:hover { + background: none; + } + + .menuWithAnnouncementBar { + margin-bottom: var(--docusaurus-announcement-bar-height); + } + + .collapseSidebarButton { + display: block !important; + background-color: var(--ifm-button-background-color); + height: 40px; + position: sticky; + bottom: 0; + border-radius: 0; + border: 1px solid var(--ifm-toc-border-color); + } + + .collapseSidebarButtonIcon { + transform: rotate(180deg); + margin-top: 4px; + } + html[dir='rtl'] .collapseSidebarButtonIcon { + transform: rotate(0); + } + + html[data-theme='dark'] .collapseSidebarButton { + background-color: var(--collapse-button-bg-color-dark); + } + + html[data-theme='dark'] .collapseSidebarButton:hover, + html[data-theme='dark'] .collapseSidebarButton:focus { + background-color: var(--ifm-color-emphasis-200); + } +} + +.sidebarLogo, +.collapseSidebarButton { + display: none; +} + +.sidebarMenuIcon { + vertical-align: middle; +} + +.sidebarMenuCloseIcon { + display: inline-flex; + justify-content: center; + align-items: center; + height: 24px; + font-size: 1.5rem; + font-weight: var(--ifm-font-weight-bold); + line-height: 0.9; + width: 24px; +} + +:global(.menu__list) :global(.menu__list) { + overflow-y: hidden; + will-change: height; + transition: height var(--ifm-transition-fast) linear; +} + +:global(.menu__list-item--collapsed) :global(.menu__list) { + height: 0 !important; +} + +.menuLinkExternal { + align-items: center; +} +.menuLinkExternal:after { + content: ''; + height: 1.15rem; + width: 1.15rem; + min-width: 1.15rem; + margin: 0 0 0 3%; + background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z'/%3E%3C/svg%3E") + no-repeat; + filter: var(--ifm-menu-link-sublist-icon-filter); +} diff --git a/apps/website/src/theme/LayoutHead/index.js b/apps/website/src/theme/LayoutHead/index.js new file mode 100644 index 00000000..316d01a5 --- /dev/null +++ b/apps/website/src/theme/LayoutHead/index.js @@ -0,0 +1,133 @@ +// SWIZZLED to remove the favicon injection. +// see https://github.com/facebook/docusaurus/issues/4923 + +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import Head from '@docusaurus/Head'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import SearchMetadatas from '@theme/SearchMetadatas'; +import Seo from '@theme/Seo'; +import { + DEFAULT_SEARCH_TAG, + useTitleFormatter, + useAlternatePageUtils +} from '@docusaurus/theme-common'; +import { useLocation } from '@docusaurus/router'; // Useful for SEO +// See https://developers.google.com/search/docs/advanced/crawling/localized-versions +// See https://github.com/facebook/docusaurus/issues/3317 + +function AlternateLangHeaders() { + const { + i18n: { defaultLocale, locales } + } = useDocusaurusContext(); + const alternatePageUtils = useAlternatePageUtils(); // Note: it is fine to use both "x-default" and "en" to target the same url + // See https://www.searchviu.com/en/multiple-hreflang-tags-one-url/ + + return ( + <Head> + {locales.map((locale) => ( + <link + key={locale} + rel="alternate" + href={alternatePageUtils.createUrl({ + locale, + fullyQualified: true + })} + hrefLang={locale} + /> + ))} + <link + rel="alternate" + href={alternatePageUtils.createUrl({ + locale: defaultLocale, + fullyQualified: true + })} + hrefLang="x-default" + /> + </Head> + ); +} // Default canonical url inferred from current page location pathname + +function useDefaultCanonicalUrl() { + const { + siteConfig: { url: siteUrl } + } = useDocusaurusContext(); + const { pathname } = useLocation(); + return siteUrl + useBaseUrl(pathname); +} + +function CanonicalUrlHeaders({ permalink }) { + const { + siteConfig: { url: siteUrl } + } = useDocusaurusContext(); + const defaultCanonicalUrl = useDefaultCanonicalUrl(); + const canonicalUrl = permalink + ? `${siteUrl}${permalink}` + : defaultCanonicalUrl; + return ( + <Head> + <meta property="og:url" content={canonicalUrl} /> + <link rel="canonical" href={canonicalUrl} /> + </Head> + ); +} + +export default function LayoutHead(props) { + const { + siteConfig: { + themeConfig: { metadatas } + }, + i18n: { currentLocale, localeConfigs } + } = useDocusaurusContext(); + const { title, description, image, keywords, searchMetadatas } = props; + const pageTitle = useTitleFormatter(title); // See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855 + // const htmlLang = currentLocale.split('-')[0]; + + const htmlLang = currentLocale; // should we allow the user to override htmlLang with localeConfig? + + const htmlDir = localeConfigs[currentLocale].direction; + return ( + <> + <Head> + <html lang={htmlLang} dir={htmlDir} /> + <title>{pageTitle} + + + + + + + + + + + + element here, + // as it allows react-helmet to override values set in previous + // ie we can override default metadatas such as "twitter:card" + // In same Head, the same meta would appear twice instead of overriding + // See react-helmet doc + > + {metadatas.map((metadata, i) => ( + + ))} + + + ); +} diff --git a/apps/website/src/theme/Seo/index.js b/apps/website/src/theme/Seo/index.js new file mode 100644 index 00000000..637eb528 --- /dev/null +++ b/apps/website/src/theme/Seo/index.js @@ -0,0 +1,42 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import Head from '@docusaurus/Head'; +import { useThemeConfig, useTitleFormatter } from '@docusaurus/theme-common'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +export default function Seo({ title, description, keywords, image }) { + const { image: defaultImage } = useThemeConfig(); + const pageTitle = useTitleFormatter(title); + const pageImage = useBaseUrl(image || defaultImage, { + absolute: true + }); + return ( + + {title && {pageTitle}} + {title && } + {title && } + + {description && } + {description && } + {description && } + + {keywords && ( + + )} + + {pageImage && } + {pageImage && } + + + + + ); +} diff --git a/apps/website/src/typeui/Badges.tsx b/apps/website/src/typeui/Badges.tsx new file mode 100644 index 00000000..49828eee --- /dev/null +++ b/apps/website/src/typeui/Badges.tsx @@ -0,0 +1,27 @@ +import React, { PropsWithChildren } from 'react'; +import styles from './styles.module.scss'; +import clsx from 'clsx'; + +export default function Badges({ + definitions, + children +}: PropsWithChildren<{ + definitions: Array<{ label: string; title?: string } | null | false>; +}>) { + return ( +
+ {children} +
+ {definitions + .filter((d) => !!d) + .map(({ label, title }: { label: string; title?: string }) => ( +
+ {label} +
+ ))} +
+ ); +} diff --git a/apps/website/src/typeui/DeclarationBox.tsx b/apps/website/src/typeui/DeclarationBox.tsx new file mode 100644 index 00000000..b1996b6b --- /dev/null +++ b/apps/website/src/typeui/DeclarationBox.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import { ReflectionKind } from 'typedoc/dist/lib/models/reflections/abstract'; +import clsx from 'clsx'; +import styles from './styles.module.scss'; +import renderReflection from './renderReflection'; +import Params from './Params'; +import Badges from './Badges'; +import useReflectionIndex from './useReflectionIndex'; + +export default function DeclarationBox({ + reflection: rawReflection +}: { + reflection: string; +}) { + const index = useReflectionIndex(); + const reflection = JSON.parse( + decodeURIComponent(rawReflection) + ) as JSONOutput.DeclarationReflection; + const isPropertyLike = + reflection.kind === ReflectionKind.Property || + reflection.kind === ReflectionKind.Method || + reflection.kind === ReflectionKind.Parameter; + const isOptional = + reflection.flags.isOptional || + typeof reflection.defaultValue !== 'undefined'; + return ( + <> + +
+
+ {renderReflection(reflection, new Params((id) => index[id]))} +
+
+ + ); +} diff --git a/apps/website/src/typeui/HeaderTypeBox.tsx b/apps/website/src/typeui/HeaderTypeBox.tsx new file mode 100644 index 00000000..1827caf4 --- /dev/null +++ b/apps/website/src/typeui/HeaderTypeBox.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import clsx from 'clsx'; +import classes from './styles.module.scss'; +import renderReflection from './renderReflection'; +import Params from './Params'; +import useReflectionIndex from './useReflectionIndex'; +import Badges from './Badges'; + +const thirdPartiesMap: Record = { + '@native-html/transient-render-engine': + 'https://github.com/native-html/core/tree/master/packages/transient-render-engine', + '@native-html/css-processor': + 'https://github.com/native-html/core/tree/master/packages/css-processor', + domhandler: 'https://github.com/fb55/domhandler' +}; + +function extractLibName(fileName: string) { + const fragments = fileName.split('/'); + try { + // remove node_modules fragment + fragments.splice(0, 1); + if (fragments[0].startsWith('@')) { + return fragments[0] + '/' + fragments[1]; + } + return fragments[0]; + } catch (e) { + console.error(e); + } + return ''; +} + +function ExternalSource({ libraryName }: { libraryName: string }) { + if (!(libraryName in thirdPartiesMap)) { + throw new Error(`${libraryName} is not registered as third party`); + } + return ( + + {libraryName} + + ); +} + +export default function HeaderTypeBox({ + reflectionId, + version +}: { + reflectionId: number; + version: string; +}) { + const index = useReflectionIndex(); + const reflection = index[reflectionId]; + const isExternal = reflection.flags.isExternal; + const source = reflection.sources?.[0]; + const libraryName = extractLibName(source.fileName); + return ( + <> + +
+
+ {renderReflection(reflection, new Params((id) => index[id]))} +
+
+
+ Defined in{' '} + {!isExternal && source && ( + + {source.fileName} + {/* {`react-native-render-html/…/${source.fileName + .split('/') + .pop()}#L${source.line}`} */} + + )} + {isExternal && source && } +
+ + ); +} diff --git a/apps/website/src/typeui/Indent.tsx b/apps/website/src/typeui/Indent.tsx new file mode 100644 index 00000000..548fb82c --- /dev/null +++ b/apps/website/src/typeui/Indent.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +export default function Indent({ indent }: { indent: number }) { + const whitespaces = []; + for (let i = 0; i < indent; i++) { + whitespaces.push(<> ); + } + return {whitespaces}; +} diff --git a/apps/website/src/typeui/Params.ts b/apps/website/src/typeui/Params.ts new file mode 100644 index 00000000..77e2551e --- /dev/null +++ b/apps/website/src/typeui/Params.ts @@ -0,0 +1,56 @@ +import type { JSONOutput } from 'typedoc'; + +export default class Params { + indent: number; + resolveMembersLinks: boolean; + resolveTypeParamsLinks: boolean; + resolveReflection: (id: number) => JSONOutput.DeclarationReflection; + + constructor( + resolveReflection: (id: number) => JSONOutput.DeclarationReflection, + resolveInternalLinks = false, + resolveTypeParamsLinks = false, + indent = 0 + ) { + this.resolveReflection = resolveReflection; + this.resolveMembersLinks = resolveInternalLinks; + this.resolveTypeParamsLinks = resolveTypeParamsLinks; + this.indent = indent; + } + + withIndent() { + return new Params( + this.resolveReflection, + this.resolveMembersLinks, + this.resolveTypeParamsLinks, + this.indent + 2 + ); + } + + withMemberLinks() { + return new Params( + this.resolveReflection, + true, + this.resolveTypeParamsLinks, + this.indent + ); + } + + withoutMemberLinks() { + return new Params( + this.resolveReflection, + false, + this.resolveTypeParamsLinks, + this.indent + ); + } + + withTypeParamsLinks() { + return new Params( + this.resolveReflection, + this.resolveMembersLinks, + true, + this.indent + ); + } +} diff --git a/apps/website/src/typeui/reduceReflectionsWith.tsx b/apps/website/src/typeui/reduceReflectionsWith.tsx new file mode 100644 index 00000000..cf38e90e --- /dev/null +++ b/apps/website/src/typeui/reduceReflectionsWith.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import Params from './Params'; +import { TokenPunctuation } from './tokens'; +import Indent from './Indent'; + +export default function reduceReflectionsWith( + punct: string | null, + params: Params, + renderCurrent: (curr: JSONOutput.DeclarationReflection, p: Params) => any, + shouldBreak?: boolean +) { + return (prev: any, curr: JSONOutput.DeclarationReflection) => ( + <> + {prev} + {prev && punct && {punct}} + {shouldBreak && ( + <> +
+ + + )} + {renderCurrent(curr, params)} + + ); +} diff --git a/apps/website/src/typeui/renderArrowSignature.tsx b/apps/website/src/typeui/renderArrowSignature.tsx new file mode 100644 index 00000000..35176602 --- /dev/null +++ b/apps/website/src/typeui/renderArrowSignature.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import { TokenPunctuation, TokenPrimitive } from './tokens'; +import Indent from './Indent'; +import renderType from './renderType'; +import renderSignatureParams from './renderSignatureParams'; +import Params from './Params'; +import renderTypeParameters from './renderTypeParameters'; + +export default function renderArrowSignature( + signature: JSONOutput.SignatureReflection, + params: Params +) { + if (!signature.type) { + console.warn('Did not render signature', signature); + } + const shouldBreak = signature.parameters?.length > 2; + return ( + <> + {signature.typeParameter && + renderTypeParameters(signature.typeParameter, params)} + ( + {shouldBreak &&
} + {renderSignatureParams(signature, shouldBreak, params.withIndent())} + {shouldBreak &&
} + {shouldBreak && } + ){' '} + {'=>'}{' '} + {signature.type ? ( + renderType(signature.type, params) + ) : ( + void + )} + + ); +} diff --git a/apps/website/src/typeui/renderFunctionSignature.tsx b/apps/website/src/typeui/renderFunctionSignature.tsx new file mode 100644 index 00000000..7be253be --- /dev/null +++ b/apps/website/src/typeui/renderFunctionSignature.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import { TokenPunctuation, TokenPrimitive } from './tokens'; +import Indent from './Indent'; +import renderType from './renderType'; +import renderSignatureParams from './renderSignatureParams'; +import Params from './Params'; +import renderTypeParameters from './renderTypeParameters'; + +export default function renderFunctionSignature( + signature: JSONOutput.SignatureReflection, + params: Params +) { + if (!signature.type) { + console.warn('Did not render signature', signature); + } + const shouldBreak = signature.parameters?.length > 0; + return ( + <> + {signature.typeParameter && + renderTypeParameters(signature.typeParameter, params)} + ( + {shouldBreak &&
} + {renderSignatureParams(signature, shouldBreak, params.withIndent())} + {shouldBreak &&
} + {shouldBreak && } + ){' '} + {': '}{' '} + {signature.type ? ( + renderType(signature.type, params) + ) : ( + void + )} + + ); +} diff --git a/apps/website/src/typeui/renderReflection.tsx b/apps/website/src/typeui/renderReflection.tsx new file mode 100644 index 00000000..a4d42e62 --- /dev/null +++ b/apps/website/src/typeui/renderReflection.tsx @@ -0,0 +1,307 @@ +import React from 'react'; +import { ReflectionKind } from 'typedoc/dist/lib/models/reflections/abstract'; +import type { JSONOutput } from 'typedoc'; +import { + TokenPunctuation, + TokenAttrName, + TokenKeyword, + TokenPlain, + TokenLiteral +} from './tokens'; +import renderArrowSignature from './renderArrowSignature'; +import renderFunctionSignature from './renderFunctionSignature'; +import Indent from './Indent'; +import renderType from './renderType'; +import renderTypeParameters from './renderTypeParameters'; +import reduceReflectionsWith from './reduceReflectionsWith'; +import Params from './Params'; + +function renderArrowSignatures( + signatures: JSONOutput.SignatureReflection[], + params: Params +) { + if (!signatures) { + return 'unknown'; + } + return <>{signatures.map((s) => renderArrowSignature(s, params))}; +} + +function renderFunctionSignatures( + signatures: JSONOutput.SignatureReflection[], + params: Params +) { + return <>{signatures.map((s) => renderFunctionSignature(s, params))}; +} + +function renderConst(name: string) { + return ( + <> + const + + {name} + : + + + ); +} + +function renderAttribute( + name: string, + typeElm: any, + flags: JSONOutput.ReflectionFlags, + params: Params +) { + const nameToken = {name}; + return ( + <> + + {flags.isStatic && static } + {params.resolveMembersLinks ? ( + {nameToken} + ) : ( + nameToken + )} + {flags.isOptional && ?} + {': '} + {typeElm} + {';'} +
+ + ); +} + +function renderEnumMember(name: string, typeElm: any, params: Params) { + const nameToken = {name}; + return ( + <> + + {params.resolveMembersLinks ? ( + {nameToken} + ) : ( + nameToken + )} + {' = '} + {typeElm} + {';'} +
+ + ); +} + +function renderPropsAndMethods( + reflection: JSONOutput.DeclarationReflection, + params: Params +) { + const props = reflection.children?.filter( + (c) => c.kind === ReflectionKind.Property + ); + const methods = reflection.children?.filter( + (c) => c.kind === ReflectionKind.Method + ); + return ( + <> + {props?.reduce( + reduceReflectionsWith(null, params, renderReflection), + null + )} + {methods?.reduce( + reduceReflectionsWith(null, params, renderReflection), + null + )} + + ); +} + +function renderFunction( + reflection: JSONOutput.DeclarationReflection, + params: Params +) { + return ( + <> + function + + {reflection.name} + {renderFunctionSignatures(reflection.signatures, params)} + + ); +} + +export default function renderReflection( + reflection: JSONOutput.DeclarationReflection, + params: Params +) { + let nextParams: Params = params; + switch (reflection.kind) { + case ReflectionKind.Function: + return renderFunction( + reflection, + params.withMemberLinks().withTypeParamsLinks() + ); + case ReflectionKind.TypeAlias: + return ( + <> + type + + {reflection.name} + {renderTypeParameters( + reflection.typeParameter, + params.withTypeParamsLinks() + )} + {' = '} + {renderType(reflection.type, params)} + + ); + case ReflectionKind.Enum: + return ( + <> + enum + + {reflection.name} + + {'{'} +
+ {reflection.children.reduce( + reduceReflectionsWith(null, params.withIndent(), renderReflection), + null + )} + {'}'} + + ); + case ReflectionKind.Class: + return ( + <> + class + + {reflection.name} + {renderTypeParameters( + reflection.typeParameter, + params.withTypeParamsLinks() + )} + + {'{'} +
+ {renderPropsAndMethods( + reflection, + params.withMemberLinks().withIndent() + )} + {'}'} + + ); + case ReflectionKind.Interface: + nextParams = params.withIndent().withMemberLinks(); + return ( + <> + interface + + {reflection.name} + {renderTypeParameters( + reflection.typeParameter, + params.withTypeParamsLinks() + )} + + {'{'} +
+ {reflection.signatures && ( + <> + + {renderFunctionSignatures(reflection.signatures, nextParams)} + ; +
+ + )} + {renderPropsAndMethods(reflection, nextParams.withMemberLinks())} + {'}'} + + ); + case ReflectionKind.Parameter: + return renderAttribute( + reflection.name, + renderType(reflection.type, params), + reflection.flags, + params + ); + case ReflectionKind.Property: + nextParams = params.withoutMemberLinks(); + return renderAttribute( + reflection.name, + renderType(reflection.type, nextParams), + reflection.flags, + params + ); + case ReflectionKind.TypeLiteral: + if (!reflection.groups && !reflection.signatures) { + console.warn('Unhandled Type Literal with no group', reflection); + return any; + } + if (reflection.signatures) { + return renderArrowSignatures(reflection.signatures, params); + } + let ret: any = null; + for (const group of reflection.groups!) { + if (group.kind === ReflectionKind.Property) { + const props = reflection.children.filter((c) => + group.children.includes(c.id) + ); + ret = ( + <> + {'{'} +
+ {props.map((p) => renderReflection(p, params.withIndent()))} + + {'}'} + + ); + } else { + throw new Error(`Unhandled group of type ${group.title}`); + } + } + return ret; + case ReflectionKind.Method: + return reflection.signatures?.map((s) => { + return renderAttribute( + reflection.name, + renderArrowSignatures([s], params.withoutMemberLinks()), + reflection.flags, + params + ); + }); + case ReflectionKind.Function: + return renderArrowSignatures( + (reflection as JSONOutput.DeclarationReflection).signatures, + params + ); + case ReflectionKind.CallSignature: + return ( + <> + {renderConst(reflection.name)} + {renderArrowSignature(reflection, params)} + + ); + case ReflectionKind.Variable: + if (reflection.signatures) { + // For docs legibility, consider const with signature like functions + return renderFunction(reflection, params.withMemberLinks()); + } + return ( + <> + {renderConst(reflection.name)} + {renderType(reflection.type, params)} + + ); + case ReflectionKind.EnumMember: + return renderEnumMember( + reflection.name, + {reflection.defaultValue}, + params + ); + default: + console.warn( + 'Unhandled Declaration Reflection of kind', + reflection.kindString, + reflection + ); + throw new Error( + `Unhandled Declaration Reflection of kind ${reflection.kindString}` + ); + } +} diff --git a/apps/website/src/typeui/renderSignatureParams.tsx b/apps/website/src/typeui/renderSignatureParams.tsx new file mode 100644 index 00000000..11642a2d --- /dev/null +++ b/apps/website/src/typeui/renderSignatureParams.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import { TokenPunctuation, TokenAttrName, TokenLiteral } from './tokens'; +import Indent from './Indent'; +import renderType from './renderType'; +import Params from './Params'; + +export default function renderSignatureParams( + signature: JSONOutput.SignatureReflection, + shouldBreak: boolean, + params: Params +) { + return signature.parameters?.reduce((prev: any, curr) => { + const paramName = curr.name === '__namedParameters' ? 'props' : curr.name; + const namedToken = ( + + {curr.name === '__namedParameters' ? 'props' : curr.name} + + ); + const isOptional = curr.flags.isOptional; + return ( + <> + {prev} + {prev && ,} + {prev && shouldBreak ?
: null} + {shouldBreak && } + {prev && (shouldBreak ? null : )} + {params.resolveMembersLinks ? ( + {namedToken} + ) : ( + namedToken + )} + {isOptional && ?} + : + {renderType(curr.type, params)} + {typeof curr.defaultValue === 'string' && ( + <> + = + {curr.defaultValue} + + )} + + ); + }, null); +} diff --git a/apps/website/src/typeui/renderType.tsx b/apps/website/src/typeui/renderType.tsx new file mode 100644 index 00000000..13063dc0 --- /dev/null +++ b/apps/website/src/typeui/renderType.tsx @@ -0,0 +1,227 @@ +import React from 'react'; +import { JSONOutput } from 'typedoc'; +import Link from '@docusaurus/Link'; +import { + TokenPunctuation, + TokenPrimitive, + TokenKeyword, + TokenPlain, + TokenLiteral, + TokenType, + TokenAttrName +} from './tokens'; +import renderReflection from './renderReflection'; +import Params from './Params'; +import Indent from './Indent'; + +type DeclarationType = JSONOutput.DeclarationReflection['type']; + +function renderTypeArgument( + typeArguments: JSONOutput.SomeType[], + params: Params +) { + if (!typeArguments) { + return null; + } + return ( + <> + < + {typeArguments.reduce( + (prev, curr) => ( + <> + {prev} + {prev && , } + {renderType(curr, params)} + + ), + null + )} + > + + ); +} + +export default function renderType(pt: DeclarationType, params: Params) { + let shouldBreak = false; + let nextParams: Params = params; + switch (pt.type) { + case 'reference': + const ref = pt as JSONOutput.ReferenceType; + let name = ref.name; + // We must resolve reflections because of a bug in Typedoc with default exports + const isLocalRef = 'id' in ref && !!params.resolveReflection(ref.id); + if (isLocalRef) { + name = params.resolveReflection(ref.id).name; + } + const nameToken = {name}; + // TODO fix issue in multiple version docs + // See blocking issue on https://github.com/facebook/docusaurus/issues/3372 + return ( + <> + {isLocalRef ? ( + {nameToken} + ) : ( + nameToken + )} + {renderTypeArgument(ref.typeArguments, params)} + + ); + case 'intrinsic': + return ( + {(pt as JSONOutput.IntrinsicType).name} + ); + case 'union': + const union = pt as JSONOutput.UnionType; + shouldBreak = union.types.length > 2; + return union.types + .map((u) => renderType(u, params)) + .reduce((prev, curr) => ( + <> + {prev} + {shouldBreak &&
} + {shouldBreak && } + + {!shouldBreak && ' '} + {'| '} + + {curr} + + )); + case 'intersection': + const intersection = pt as JSONOutput.IntersectionType; + shouldBreak = intersection.types.length > 2; + nextParams = shouldBreak ? params.withIndent() : params; + return intersection.types + .map((u) => renderType(u, nextParams)) + .reduce((prev, curr) => ( + <> + {prev} + {shouldBreak && ( + <> +
+ + + )} + + {!shouldBreak && ' '} + {'& '} + + {curr} + + )); + case 'conditional': + // Simplify conditionals as unions. API readers might not be familiar with + // typescript, and unions are easier to understand. + const cond = pt as JSONOutput.ConditionalType; + if ( + cond.falseType.type === 'intrinsic' && + (cond.falseType as JSONOutput.IntrinsicType).name === 'never' + ) { + return renderType(cond.trueType, params); + } + return ( + <> + {renderType(cond.trueType, params)} + {' | '} + {renderType(cond.falseType, params)} + + ); + case 'mapped': + const mapped = pt as unknown as JSONOutput.MappedType; + nextParams = params.withIndent(); + return ( + <> + {'{'} +
+ + {'['} + {mapped.parameter} + {': '} + {renderType(mapped.parameterType, nextParams)} + {']'} + {': '} + {renderType(mapped.templateType, nextParams)} + +
+ + {'}'} + + ); + case 'literal': + const literal = pt as JSONOutput.LiteralType; + switch (typeof literal.value) { + case 'bigint': + case 'boolean': + case 'number': + return {String(literal.value)}; + case 'undefined': + return {String(literal.value)}; + case 'object': + if (literal.value === null) { + return {String(literal.value)}; + } + break; + case 'string': + return {JSON.stringify(literal.value)}; + } + console.warn('Unhandled literal type', literal); + throw new Error(`Unhandled literal ${literal.value}`); + case 'array': + const array = pt as JSONOutput.ArrayType; + return ( + <> + Array + < + {renderType(array.elementType, params)} + > + + ); + case 'reflection': + const reflection = pt as JSONOutput.ReflectionType; + return renderReflection( + reflection.declaration, + params.withoutMemberLinks() + ); + case 'typeOperator': + const to = pt as JSONOutput.TypeOperatorType; + return ( + <> + {to.operator} + + {renderType(to.target, params)} + + ); + case 'indexedAccess': + const acc = pt as unknown as JSONOutput.IndexedAccessType; + return ( + <> + {renderType(acc.objectType, params)} + [ + {renderType(acc.indexType, params)} + ] + + ); + case 'query': + const query = pt as JSONOutput.QueryType; + return ( + <> + typeof + + {renderType(query.queryType, params)} + + ); + case 'predicate': + const predicate = pt as JSONOutput.PredicateType; + return ( + <> + {predicate.asserts && asserts } + {predicate.name} + is + {predicate.targetType && renderType(predicate.targetType, params)} + + ); + default: + console.warn('Unhandled type', pt); + throw new Error(`Unhandled type ${pt.type}`); + } +} diff --git a/apps/website/src/typeui/renderTypeParameters.tsx b/apps/website/src/typeui/renderTypeParameters.tsx new file mode 100644 index 00000000..b13502a0 --- /dev/null +++ b/apps/website/src/typeui/renderTypeParameters.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import type { JSONOutput } from 'typedoc'; +import { TokenKeyword, TokenPunctuation, TokenType } from './tokens'; +import renderType from './renderType'; +import Indent from './Indent'; +import Params from './Params'; +import reduceReflectionsWith from './reduceReflectionsWith'; + +function renderTypeParam( + typeParam: JSONOutput.TypeParameterReflection, + params: Params +) { + const nameToken = {typeParam.name}; + return ( + <> + + {params.resolveTypeParamsLinks ? ( + {nameToken} + ) : ( + nameToken + )} + {typeParam.type && ( + <> + + extends + + {renderType(typeParam.type, params)} + + )} + + ); +} + +export default function renderTypeParameters( + typeParams: JSONOutput.TypeParameterReflection[], + params: Params +) { + if (!typeParams) { + return null; + } + return ( + <> + < + {typeParams.reduce( + reduceReflectionsWith(',', params, renderTypeParam, true), + null + )} +
+ + > + + ); +} diff --git a/apps/website/src/typeui/styles.module.scss b/apps/website/src/typeui/styles.module.scss new file mode 100644 index 00000000..76aa173d --- /dev/null +++ b/apps/website/src/typeui/styles.module.scss @@ -0,0 +1,159 @@ +@import '../css/shared.scss'; + +.container { + background-color: var(--ifm-code-background); + width: 100%; + display: flex; + align-items: flex-end; + color: white; + white-space: nowrap; + flex-wrap: nowrap; + border-bottom-left-radius: var(--ifm-global-radius); + border-bottom-right-radius: var(--ifm-global-radius); + line-height: 1.5; + white-space: nowrap; + code { + font-style: normal; + display: inline; + } + a { + @extend .reference; + } +} +.token { + --reference-bg: rgba(62, 71, 122, 0.25); + --reference-bg-hover: var(--ifm-color-gray-100); + --reference-color-hover: var(--ifm-color-gray-800); + color: var(--token-color); + --ifm-link-hover-color: var(--token-color); +} + +.token--punctuation { + --token-color: var(--syntax-color-punctuation); +} + +.token--attr-name { + --token-color: var(--syntax-color-attr-name); +} + +.token--plain { + --token-color: var(--syntax-color-plain); +} + +.token--keyword { + font-style: italic; + --token-color: var(--syntax-color-keyword); +} + +.token--literal { + --token-color: var(--syntax-color-literal); +} + +.token--type { + font-weight: bolder; + --token-color: var(--syntax-color-type); +} + +.token--primitive { + --token-color: var(--syntax-color-primitive); +} + +.typeContainer { + flex-grow: 1; + overflow-x: auto; +} + +.flagBox { + opacity: 0.75; + font-weight: bold; + text-transform: uppercase; + font-size: 65%; + padding: 0 0.5rem; + display: flex; + align-items: center; + align-self: flex-start; + height: var(--decorator-size); +} + +.flagBox--optional { + background-color: var(--ifm-color-info); + color: var(--ifm-color-black); +} + +.flagBox--required { + background-color: var(--theme-surface-bg); + color: var(--ifm-color-white); +} + +.flagBox--static { + background-color: var(--ifm-color-info); + color: var(--ifm-color-black); +} + +.flagBox--reexport { + background-color: var(--ifm-color-warning); + color: var(--ifm-color-black); +} + +.flagBox--export { + background-color: var(--ifm-color-success); + color: var(--ifm-color-black); +} + +.logo, +.logo > svg { + height: var(--decorator-size); + flex-shrink: 0; +} + +.logo { + --logo-color-fill: white; + --logo-color-bg: #3178c6; + &:hover { + --logo-color-fill: #3178c6; + --logo-color-bg: white; + outline: solid 3px #3178c6; + } +} + +.badges { + --decorator-size: 1rem; + display: flex; + justify-content: space-between; + align-items: center; + border-top-left-radius: var(--ifm-global-radius); + border-top-right-radius: var(--ifm-global-radius); + overflow: hidden; + margin-bottom: 0.25rem; +} + +.versionBox { + code { + font-style: normal; + background-color: var(--ifm-color-primary); + padding: 0.25rem; + font-size: small; + display: inline block; + } +} + +.sourceBoxContainer { + --source-box-font-size: 14px; + margin-top: 0.25rem; + font-style: italic; + padding: 0.25rem; + padding-left: 0.5rem; + line-height: 1.4; + font-size: var(--source-box-font-size); + background-color: var(--ifm-code-background); + color: var(--ifm-color-white); + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.sourceBox { + text-decoration: underline; + +} + diff --git a/apps/website/src/typeui/tokens.tsx b/apps/website/src/typeui/tokens.tsx new file mode 100644 index 00000000..aa029e31 --- /dev/null +++ b/apps/website/src/typeui/tokens.tsx @@ -0,0 +1,71 @@ +import React, { PropsWithChildren } from 'react'; +import styles from './styles.module.scss'; +import clsx from 'clsx'; + +interface TokenProps { + title?: string; +} + +export function TokenPunctuation({ + children, + title +}: PropsWithChildren) { + return ( + + {children} + + ); +} + +export function TokenPlain({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} + +// Used for non-primitive types +export function TokenType({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} + +// Used for primitive types +export function TokenPrimitive({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} + +// Used for non-string literal values such as true, 12... +export function TokenLiteral({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} + +export function TokenAttrName({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} + +export function TokenKeyword({ children }: PropsWithChildren<{}>) { + return ( + + {children} + + ); +} diff --git a/apps/website/src/typeui/useReflection.ts b/apps/website/src/typeui/useReflection.ts new file mode 100644 index 00000000..35b0fbfa --- /dev/null +++ b/apps/website/src/typeui/useReflection.ts @@ -0,0 +1,6 @@ +import useReflectionIndex from './useReflectionIndex'; + +export default function useReflection(reflectionId: number) { + const index = useReflectionIndex(); + return index[reflectionId]; +} diff --git a/apps/website/src/typeui/useReflectionIndex.tsx b/apps/website/src/typeui/useReflectionIndex.tsx new file mode 100644 index 00000000..cee1926b --- /dev/null +++ b/apps/website/src/typeui/useReflectionIndex.tsx @@ -0,0 +1,9 @@ +import type { JSONOutput } from 'typedoc'; +import { usePluginData } from '@docusaurus/useGlobalData'; + +export default function useReflectionIndex() { + return usePluginData('doc-docusaurus-typedoc-plugin') as Record< + number, + JSONOutput.DeclarationReflection + >; +} diff --git a/apps/website/static/.nojekyll b/apps/website/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/apps/website/static/favicons/android-chrome-192x192.png b/apps/website/static/favicons/android-chrome-192x192.png new file mode 100644 index 00000000..f6eb3ef8 Binary files /dev/null and b/apps/website/static/favicons/android-chrome-192x192.png differ diff --git a/apps/website/static/favicons/android-chrome-512x512.png b/apps/website/static/favicons/android-chrome-512x512.png new file mode 100644 index 00000000..ae80542e Binary files /dev/null and b/apps/website/static/favicons/android-chrome-512x512.png differ diff --git a/apps/website/static/favicons/apple-touch-icon.png b/apps/website/static/favicons/apple-touch-icon.png new file mode 100644 index 00000000..7e9e69b0 Binary files /dev/null and b/apps/website/static/favicons/apple-touch-icon.png differ diff --git a/apps/website/static/favicons/browserconfig.xml b/apps/website/static/favicons/browserconfig.xml new file mode 100644 index 00000000..7a114cc6 --- /dev/null +++ b/apps/website/static/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #000040 + + + diff --git a/apps/website/static/favicons/favicon-16x16.png b/apps/website/static/favicons/favicon-16x16.png new file mode 100644 index 00000000..610db874 Binary files /dev/null and b/apps/website/static/favicons/favicon-16x16.png differ diff --git a/apps/website/static/favicons/favicon-32x32.png b/apps/website/static/favicons/favicon-32x32.png new file mode 100644 index 00000000..d2dd65d8 Binary files /dev/null and b/apps/website/static/favicons/favicon-32x32.png differ diff --git a/apps/website/static/favicons/favicon.ico b/apps/website/static/favicons/favicon.ico new file mode 100644 index 00000000..e18ab482 Binary files /dev/null and b/apps/website/static/favicons/favicon.ico differ diff --git a/apps/website/static/favicons/mstile-144x144.png b/apps/website/static/favicons/mstile-144x144.png new file mode 100644 index 00000000..0d3229eb Binary files /dev/null and b/apps/website/static/favicons/mstile-144x144.png differ diff --git a/apps/website/static/favicons/mstile-150x150.png b/apps/website/static/favicons/mstile-150x150.png new file mode 100644 index 00000000..0216e7c5 Binary files /dev/null and b/apps/website/static/favicons/mstile-150x150.png differ diff --git a/apps/website/static/favicons/mstile-310x150.png b/apps/website/static/favicons/mstile-310x150.png new file mode 100644 index 00000000..5445cca8 Binary files /dev/null and b/apps/website/static/favicons/mstile-310x150.png differ diff --git a/apps/website/static/favicons/mstile-310x310.png b/apps/website/static/favicons/mstile-310x310.png new file mode 100644 index 00000000..56fafb1e Binary files /dev/null and b/apps/website/static/favicons/mstile-310x310.png differ diff --git a/apps/website/static/favicons/mstile-70x70.png b/apps/website/static/favicons/mstile-70x70.png new file mode 100644 index 00000000..8f10ea3a Binary files /dev/null and b/apps/website/static/favicons/mstile-70x70.png differ diff --git a/apps/website/static/favicons/safari-pinned-tab.svg b/apps/website/static/favicons/safari-pinned-tab.svg new file mode 100644 index 00000000..64e20cb0 --- /dev/null +++ b/apps/website/static/favicons/safari-pinned-tab.svg @@ -0,0 +1,127 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/apps/website/static/favicons/site.webmanifest b/apps/website/static/favicons/site.webmanifest new file mode 100644 index 00000000..3fb0c3a7 --- /dev/null +++ b/apps/website/static/favicons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Discover RNRH", + "short_name": "Discover RNRH", + "icons": [ + { + "src": "/react-native-render-html/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/react-native-render-html/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#8181ff", + "background_color": "#8181ff", + "display": "standalone" +} diff --git a/apps/website/static/img/appaling-react-native-text-bg.png b/apps/website/static/img/appaling-react-native-text-bg.png new file mode 100644 index 00000000..0c7ba379 Binary files /dev/null and b/apps/website/static/img/appaling-react-native-text-bg.png differ diff --git a/apps/website/static/img/article-6.2-release-notes.png b/apps/website/static/img/article-6.2-release-notes.png new file mode 100644 index 00000000..e161699e Binary files /dev/null and b/apps/website/static/img/article-6.2-release-notes.png differ diff --git a/apps/website/static/img/article-body-dark.png b/apps/website/static/img/article-body-dark.png new file mode 100755 index 00000000..656d2b23 Binary files /dev/null and b/apps/website/static/img/article-body-dark.png differ diff --git a/apps/website/static/img/article-body-light.png b/apps/website/static/img/article-body-light.png new file mode 100755 index 00000000..d85ccb32 Binary files /dev/null and b/apps/website/static/img/article-body-light.png differ diff --git a/apps/website/static/img/article-create-webviewfree-blog-app.png b/apps/website/static/img/article-create-webviewfree-blog-app.png new file mode 100644 index 00000000..708611b2 Binary files /dev/null and b/apps/website/static/img/article-create-webviewfree-blog-app.png differ diff --git a/apps/website/static/img/article-side-dark.png b/apps/website/static/img/article-side-dark.png new file mode 100755 index 00000000..46a36778 Binary files /dev/null and b/apps/website/static/img/article-side-dark.png differ diff --git a/apps/website/static/img/article-side-light.png b/apps/website/static/img/article-side-light.png new file mode 100755 index 00000000..e4609ff2 Binary files /dev/null and b/apps/website/static/img/article-side-light.png differ diff --git a/apps/website/static/img/banner.webp b/apps/website/static/img/banner.webp new file mode 100644 index 00000000..5276e6e4 Binary files /dev/null and b/apps/website/static/img/banner.webp differ diff --git a/apps/website/static/img/blog-article-body-code-fixed.png b/apps/website/static/img/blog-article-body-code-fixed.png new file mode 100755 index 00000000..e55d0526 Binary files /dev/null and b/apps/website/static/img/blog-article-body-code-fixed.png differ diff --git a/apps/website/static/img/blog-article-body-code-issue.png b/apps/website/static/img/blog-article-body-code-issue.png new file mode 100755 index 00000000..a2d68e46 Binary files /dev/null and b/apps/website/static/img/blog-article-body-code-issue.png differ diff --git a/apps/website/static/img/blog-article-body-refined.png b/apps/website/static/img/blog-article-body-refined.png new file mode 100755 index 00000000..28ac44af Binary files /dev/null and b/apps/website/static/img/blog-article-body-refined.png differ diff --git a/apps/website/static/img/blog-article-body-unstyled.png b/apps/website/static/img/blog-article-body-unstyled.png new file mode 100755 index 00000000..34dd4707 Binary files /dev/null and b/apps/website/static/img/blog-article-body-unstyled.png differ diff --git a/apps/website/static/img/blog-article-home.png b/apps/website/static/img/blog-article-home.png new file mode 100755 index 00000000..5880d41d Binary files /dev/null and b/apps/website/static/img/blog-article-home.png differ diff --git a/apps/website/static/img/blog-article-side.png b/apps/website/static/img/blog-article-side.png new file mode 100755 index 00000000..7ab000d1 Binary files /dev/null and b/apps/website/static/img/blog-article-side.png differ diff --git a/apps/website/static/img/blog-expo-qr.png b/apps/website/static/img/blog-expo-qr.png new file mode 100644 index 00000000..090a7e54 Binary files /dev/null and b/apps/website/static/img/blog-expo-qr.png differ diff --git a/apps/website/static/img/discover-screenshot.jpeg b/apps/website/static/img/discover-screenshot.jpeg new file mode 100644 index 00000000..4d3920e5 Binary files /dev/null and b/apps/website/static/img/discover-screenshot.jpeg differ diff --git a/apps/website/static/img/discover-screenshot.webp b/apps/website/static/img/discover-screenshot.webp new file mode 100644 index 00000000..7e1eccff Binary files /dev/null and b/apps/website/static/img/discover-screenshot.webp differ diff --git a/apps/website/static/img/discovery-expo-qr.png b/apps/website/static/img/discovery-expo-qr.png new file mode 100644 index 00000000..c3db0a70 Binary files /dev/null and b/apps/website/static/img/discovery-expo-qr.png differ diff --git a/apps/website/static/img/foundry-announcement.png b/apps/website/static/img/foundry-announcement.png new file mode 100644 index 00000000..ae01b3c4 Binary files /dev/null and b/apps/website/static/img/foundry-announcement.png differ diff --git a/apps/website/static/img/home-dark.png b/apps/website/static/img/home-dark.png new file mode 100755 index 00000000..ba6c407d Binary files /dev/null and b/apps/website/static/img/home-dark.png differ diff --git a/apps/website/static/img/home-light.png b/apps/website/static/img/home-light.png new file mode 100755 index 00000000..30b30956 Binary files /dev/null and b/apps/website/static/img/home-light.png differ diff --git a/apps/website/static/img/lists/circle.png b/apps/website/static/img/lists/circle.png new file mode 100644 index 00000000..839c8074 Binary files /dev/null and b/apps/website/static/img/lists/circle.png differ diff --git a/apps/website/static/img/lists/disc.png b/apps/website/static/img/lists/disc.png new file mode 100644 index 00000000..bdd4cb37 Binary files /dev/null and b/apps/website/static/img/lists/disc.png differ diff --git a/apps/website/static/img/lists/disclosure-closed.png b/apps/website/static/img/lists/disclosure-closed.png new file mode 100644 index 00000000..a7641749 Binary files /dev/null and b/apps/website/static/img/lists/disclosure-closed.png differ diff --git a/apps/website/static/img/lists/disclosure-open.png b/apps/website/static/img/lists/disclosure-open.png new file mode 100644 index 00000000..8e651d15 Binary files /dev/null and b/apps/website/static/img/lists/disclosure-open.png differ diff --git a/apps/website/static/img/lists/lower-alpha.png b/apps/website/static/img/lists/lower-alpha.png new file mode 100644 index 00000000..4ce57eae Binary files /dev/null and b/apps/website/static/img/lists/lower-alpha.png differ diff --git a/apps/website/static/img/lists/lower-greek.png b/apps/website/static/img/lists/lower-greek.png new file mode 100644 index 00000000..ae53cb74 Binary files /dev/null and b/apps/website/static/img/lists/lower-greek.png differ diff --git a/apps/website/static/img/lists/lower-roman.png b/apps/website/static/img/lists/lower-roman.png new file mode 100644 index 00000000..83dd7671 Binary files /dev/null and b/apps/website/static/img/lists/lower-roman.png differ diff --git a/apps/website/static/img/lists/numeric.png b/apps/website/static/img/lists/numeric.png new file mode 100644 index 00000000..1cf6b8d9 Binary files /dev/null and b/apps/website/static/img/lists/numeric.png differ diff --git a/apps/website/static/img/lists/rtl-arabic.png b/apps/website/static/img/lists/rtl-arabic.png new file mode 100644 index 00000000..0d98940c Binary files /dev/null and b/apps/website/static/img/lists/rtl-arabic.png differ diff --git a/apps/website/static/img/lists/rtl-bullet.png b/apps/website/static/img/lists/rtl-bullet.png new file mode 100644 index 00000000..5d89ac11 Binary files /dev/null and b/apps/website/static/img/lists/rtl-bullet.png differ diff --git a/apps/website/static/img/lists/russian.png b/apps/website/static/img/lists/russian.png new file mode 100644 index 00000000..690ed4da Binary files /dev/null and b/apps/website/static/img/lists/russian.png differ diff --git a/apps/website/static/img/lists/square.png b/apps/website/static/img/lists/square.png new file mode 100644 index 00000000..a9cfbc24 Binary files /dev/null and b/apps/website/static/img/lists/square.png differ diff --git a/apps/website/static/img/lists/thai.png b/apps/website/static/img/lists/thai.png new file mode 100644 index 00000000..43300e1b Binary files /dev/null and b/apps/website/static/img/lists/thai.png differ diff --git a/apps/website/static/img/logo.svg b/apps/website/static/img/logo.svg new file mode 100644 index 00000000..0cab506e --- /dev/null +++ b/apps/website/static/img/logo.svg @@ -0,0 +1,140 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/static/img/react-native-blog-anchors.png b/apps/website/static/img/react-native-blog-anchors.png new file mode 100644 index 00000000..8ea482c0 Binary files /dev/null and b/apps/website/static/img/react-native-blog-anchors.png differ diff --git a/apps/website/static/img/tutorial/docsVersionDropdown.png b/apps/website/static/img/tutorial/docsVersionDropdown.png new file mode 100644 index 00000000..ff1cbe68 Binary files /dev/null and b/apps/website/static/img/tutorial/docsVersionDropdown.png differ diff --git a/apps/website/static/img/tutorial/localeDropdown.png b/apps/website/static/img/tutorial/localeDropdown.png new file mode 100644 index 00000000..d7163f96 Binary files /dev/null and b/apps/website/static/img/tutorial/localeDropdown.png differ diff --git a/apps/website/static/img/undraw_back_home.svg b/apps/website/static/img/undraw_back_home.svg new file mode 100644 index 00000000..2705918a --- /dev/null +++ b/apps/website/static/img/undraw_back_home.svg @@ -0,0 +1,784 @@ + + + + + back_home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + back_home + + + + diff --git a/apps/website/static/img/undraw_certificate.svg b/apps/website/static/img/undraw_certificate.svg new file mode 100644 index 00000000..fdc17734 --- /dev/null +++ b/apps/website/static/img/undraw_certificate.svg @@ -0,0 +1,192 @@ + + + + + certificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + certificate + + + + diff --git a/apps/website/static/img/undraw_hacker_mind.svg b/apps/website/static/img/undraw_hacker_mind.svg new file mode 100644 index 00000000..df56be86 --- /dev/null +++ b/apps/website/static/img/undraw_hacker_mind.svg @@ -0,0 +1,2290 @@ + + + + + hacker_mind + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hacker_mind + + + + diff --git a/apps/website/static/img/undraw_online_discussion.svg b/apps/website/static/img/undraw_online_discussion.svg new file mode 100644 index 00000000..17ee1c58 --- /dev/null +++ b/apps/website/static/img/undraw_online_discussion.svg @@ -0,0 +1,74 @@ + + + + + online discussion + + + + online discussion + + + + + + + + + + diff --git a/apps/website/static/img/undraw_relaxation.svg b/apps/website/static/img/undraw_relaxation.svg new file mode 100644 index 00000000..ef44650f --- /dev/null +++ b/apps/website/static/img/undraw_relaxation.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + relaxation_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + relaxation_1 + + + + diff --git a/apps/website/static/img/undraw_security_on.svg b/apps/website/static/img/undraw_security_on.svg new file mode 100644 index 00000000..e81692bc --- /dev/null +++ b/apps/website/static/img/undraw_security_on.svg @@ -0,0 +1,116 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/static/img/undraw_static_assets.svg b/apps/website/static/img/undraw_static_assets.svg new file mode 100644 index 00000000..78f0f364 --- /dev/null +++ b/apps/website/static/img/undraw_static_assets.svg @@ -0,0 +1,657 @@ + + + + + + image/svg+xml + + static_assets + + + + + + + + + + + + + static_assets + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/static/video/discovery.webm b/apps/website/static/video/discovery.webm new file mode 100755 index 00000000..4ebc6c76 Binary files /dev/null and b/apps/website/static/video/discovery.webm differ diff --git a/apps/website/svgr.config.js b/apps/website/svgr.config.js new file mode 100644 index 00000000..60f1eb12 --- /dev/null +++ b/apps/website/svgr.config.js @@ -0,0 +1 @@ +module.exports = require('@doc/svgr-conf'); diff --git a/apps/website/tsconfig.json b/apps/website/tsconfig.json new file mode 100644 index 00000000..4360f0da --- /dev/null +++ b/apps/website/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@tsconfig/docusaurus/tsconfig.json", + "include": ["src/"] +} diff --git a/assets/banner.svg b/assets/banner.svg new file mode 100644 index 00000000..e1a763d4 --- /dev/null +++ b/assets/banner.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/demo.gif b/assets/demo.gif new file mode 100644 index 00000000..40f1f433 Binary files /dev/null and b/assets/demo.gif differ diff --git a/assets/discovery-expo-qr.png b/assets/discovery-expo-qr.png new file mode 100644 index 00000000..c70a8a98 Binary files /dev/null and b/assets/discovery-expo-qr.png differ diff --git a/assets/doc/svg/data-flow.svg b/assets/doc/svg/data-flow.svg new file mode 100644 index 00000000..9d13133b --- /dev/null +++ b/assets/doc/svg/data-flow.svg @@ -0,0 +1,562 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + + Document Object Model (DOM) + <Element tagName="p" style={{ color: "blue" }}> <TextNode data="Hello World!"/></Element> + + + + Transient Render Tree + <TBlock tagName="p"> <TPhrasing style={{ color: "blue" }}> <TText data="Hello World!" /> </TPhrasing></TBlock> + + + + React Native VDOM + <View> <Text style={{ color: "blue" }}> Hello World! </Text></View> + + + + HTML Markup + <p style="color:blue;"> Hello World!</p> + + + + with RenderTTree component fromreact-native-render-html + C. TTree isrendered intoVDOM. + + + + + + + with TRenderEngine.buildTTreemethod from @native-html/transient-render-engine + B. TransientRender Tree isassembled. + + + + + + + with TRenderEngine.parseDocumentmethod from @native-html/transient-render-engine + A. HTML markupis parsedinto DOM. + + + + + + parseDocument() + + + + + + + + buildTTree() + + + + + + <RenderTTree /> + + + + + + diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 00000000..6c1bd941 --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 00000000..0cab506e --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,140 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc-tools/doc-constants/index.d.ts b/doc-tools/doc-constants/index.d.ts new file mode 100644 index 00000000..57b1826a --- /dev/null +++ b/doc-tools/doc-constants/index.d.ts @@ -0,0 +1,4 @@ +const WEBSITE_ROOT: string; +const WEBSITE_BASE: string; +const WEBSITE_URL: string; +export { WEBSITE_ROOT, WEBSITE_BASE, WEBSITE_URL }; diff --git a/doc-tools/doc-constants/index.js b/doc-tools/doc-constants/index.js new file mode 100644 index 00000000..25eeec13 --- /dev/null +++ b/doc-tools/doc-constants/index.js @@ -0,0 +1,5 @@ +const WEBSITE_ROOT = 'https://meliorence.github.io'; +const WEBSITE_BASE = '/react-native-render-html/'; +const WEBSITE_URL = WEBSITE_ROOT + WEBSITE_BASE; + +module.exports = { WEBSITE_ROOT, WEBSITE_BASE, WEBSITE_URL }; diff --git a/doc-tools/doc-constants/package.json b/doc-tools/doc-constants/package.json new file mode 100644 index 00000000..d11aa974 --- /dev/null +++ b/doc-tools/doc-constants/package.json @@ -0,0 +1,6 @@ +{ + "name": "@doc/constants", + "type": "commonjs", + "main": "index.js", + "types": "index.d.ts" +} diff --git a/doc-tools/doc-docsusaurus-rfg-plugin/package.json b/doc-tools/doc-docsusaurus-rfg-plugin/package.json new file mode 100644 index 00000000..f569b78f --- /dev/null +++ b/doc-tools/doc-docsusaurus-rfg-plugin/package.json @@ -0,0 +1,18 @@ +{ + "name": "doc-docusaurus-rfg-plugin", + "type": "commonjs", + "main": "lib/index.js", + "scripts": { + "build": "tsc -p ." + }, + "dependencies": { + "htmlparser2": "^10.0.0", + "rfg-api": "^0.5.3" + }, + "devDependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/types": "3.9.2", + "typescript": "^5.4.5" + } +} diff --git a/doc-tools/doc-docsusaurus-rfg-plugin/src/index.ts b/doc-tools/doc-docsusaurus-rfg-plugin/src/index.ts new file mode 100644 index 00000000..967a1570 --- /dev/null +++ b/doc-tools/doc-docsusaurus-rfg-plugin/src/index.ts @@ -0,0 +1,205 @@ +import * as path from 'path'; +import { readFile, mkdir, writeFile, unlink } from 'fs/promises'; +import { existsSync } from 'fs'; +import { Joi } from '@docusaurus/utils-validation'; +import { HtmlTags, LoadContext, PluginModule } from '@docusaurus/types'; +import { init } from 'rfg-api'; +import { parseDOM } from 'htmlparser2'; +import { Element } from 'domhandler'; + +const rfg = init(); + +const optionsSchema = Joi.object({ + icon: Joi.string().required(), + apiKey: Joi.string().required(), + name: Joi.string().required(), + backgroundColor: Joi.string(), + themeColor: Joi.string(), + staticDir: Joi.string() +}); + +interface Options { + icon: string; + apiKey: string; + name: string; + id?: string; + staticDir?: string; + backgroundColor?: string; + themeColor?: string; +} + +const ICON_PATH = '/favicons'; +const NAME = 'doc-docusaurus-rfg-plugin'; + +function generateFaviconAsync(request: any, dest: string) { + return new Promise((res, rej) => { + rfg.generateFavicon(request, dest, (error, success) => { + if (error) { + rej(error); + } else { + res(success); + } + }); + }); +} + +// TODO also clear favicon folder when cleaning. + +//@ts-ignore +const plugin: PluginModule = function plugin( + { baseUrl, generatedFilesDir }: LoadContext, + { + apiKey, + icon, + name, + staticDir = 'static', + backgroundColor = '#ffffff', + themeColor = '#ffffff' + }: Options +) { + const faviconOutDir = path.join(staticDir, ICON_PATH); + const cacheOutDir = path.join(generatedFilesDir, NAME); + const headTagsCacheFile = path.join(cacheOutDir, 'headtags.json'); + const iconsPath = path.join(baseUrl, ICON_PATH); + let headTags: HtmlTags[] = []; + + async function task__fetchAndWriteFiles() { + const request = rfg.createRequest({ + apiKey, + iconsPath, + masterPicture: icon, + design: { + ios: { + pictureAspect: 'noChange', + assets: { + ios6AndPriorIcons: false, + ios7AndLaterIcons: false, + precomposedIcons: false, + declareOnlyDefaultIcon: true + } + }, + desktopBrowser: { + design: 'raw' + }, + windows: { + pictureAspect: 'noChange', + backgroundColor: backgroundColor, + onConflict: 'override', + assets: { + windows80Ie10Tile: false, + windows10Ie11EdgeTiles: { + small: false, + medium: true, + big: false, + rectangle: false + } + } + }, + androidChrome: { + pictureAspect: 'noChange', + themeColor, + backgroundColor, + manifest: { + display: 'standalone', + orientation: 'notSet', + onConflict: 'override', + declared: true, + name + }, + assets: { + legacyIcon: false, + lowResolutionIcons: false + } + }, + safariPinnedTab: { + pictureAspect: 'silhouette', + themeColor + } + }, + settings: { + scalingAlgorithm: 'Mitchell', + errorOnImageTooSmall: false, + readmeFile: false, + htmlCodeFile: false, + usePathAsIs: false + } + }); + console.info( + 'Generating favicons to', + faviconOutDir, + 'This operation might take a while...' + ); + const favIconData = await generateFaviconAsync(request, faviconOutDir); + return task__fillHeadTags(favIconData); + } + + function task__fillHeadTags(content: any) { + const html = (content as any).favicon.html_code; + const dom = parseDOM(html.replace(/\n/g, '')); + return dom.map((n) => { + const element = n as Element; + return { + tagName: element.tagName, + attributes: element.attribs + } as HtmlTags; + }); + } + + async function task__cleanHeadTags() { + if (existsSync(headTagsCacheFile)) { + await unlink(headTagsCacheFile); + } + } + + async function task__storeHeadTags(data: HtmlTags[]) { + if (!existsSync(cacheOutDir)) { + await mkdir(cacheOutDir); + } + await writeFile(headTagsCacheFile, JSON.stringify(data)); + } + + async function task__fetchCachedHeadTags() { + if (existsSync(headTagsCacheFile)) { + const data = await readFile(headTagsCacheFile); + return JSON.parse(data.toString()) as HtmlTags[]; + } + return null; + } + + return { + name: NAME, + async loadContent() { + let data = await task__fetchCachedHeadTags(); + if (!data) { + data = await task__fetchAndWriteFiles(); + await task__storeHeadTags(data); + } else { + console.info( + 'Favicons plugin has been loaded from the cache. If you want to invalidate this cache, regenerate favicons data with rfg:gen CLI command.' + ); + } + headTags = data; + return null; + }, + injectHtmlTags() { + return { headTags }; + }, + extendCli(cli) { + cli + .command('rfg:gen') + .description('Generate Favicon with Real Favicon Generator') + .action(async () => { + await task__cleanHeadTags(); + const data = await task__fetchAndWriteFiles(); + await task__storeHeadTags(data); + }); + } + }; +}; + +plugin.validateOptions = function validateOptions(context) { + const { options, validate } = context; + return validate(optionsSchema, options); +}; + +module.exports = plugin; diff --git a/doc-tools/doc-docsusaurus-rfg-plugin/tsconfig.json b/doc-tools/doc-docsusaurus-rfg-plugin/tsconfig.json new file mode 100644 index 00000000..eab77287 --- /dev/null +++ b/doc-tools/doc-docsusaurus-rfg-plugin/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "outDir": "./lib", + "module": "CommonJS", + "target": "ES2015", + "noEmit": false, + "noImplicitAny": false, + "lib": ["ES2019"], + "types": ["node"], + "moduleResolution": "Node", + "isolatedModules": false, + "esModuleInterop": true + }, + "include": ["src/"], + "exclude": ["node_modules", "**/__tests__", "lib", "types"] +} diff --git a/doc-tools/doc-docusaurus-typedoc-plugin/package.json b/doc-tools/doc-docusaurus-typedoc-plugin/package.json new file mode 100644 index 00000000..cd584d57 --- /dev/null +++ b/doc-tools/doc-docusaurus-typedoc-plugin/package.json @@ -0,0 +1,14 @@ +{ + "name": "doc-docusaurus-typedoc-plugin", + "type": "commonjs", + "main": "src/index.js", + "dependencies": { + "typedoc": "^0.20.36" + }, + "devDependencies": { + "@docusaurus/core": "^3.9.2", + "@docusaurus/plugin-content-docs": "^3.9.2", + "@docusaurus/types": "^3.9.2", + "typescript": "^5.4.5" + } +} diff --git a/doc-tools/doc-docusaurus-typedoc-plugin/src/gen-pages.js b/doc-tools/doc-docusaurus-typedoc-plugin/src/gen-pages.js new file mode 100644 index 00000000..f32103ad --- /dev/null +++ b/doc-tools/doc-docusaurus-typedoc-plugin/src/gen-pages.js @@ -0,0 +1,586 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +const { ReflectionKind } = require('typedoc'); +const { writeFile, readdir, unlink } = require('fs/promises'); +const { join } = require('path'); + +/** @type {Record} */ +let reflectionsRegistry = {}; + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractFrontmatter(reflection) { + const lowercase = reflection.name.toLowerCase(); + return `--- +id: ${lowercase} +title: ${reflection.name} +--- +import DeclarationBox from '@site/src/typeui/DeclarationBox'; +import HeaderTypeBox from '@site/src/typeui/HeaderTypeBox'; +import Reference from '@site/src/components/Reference'; +\n\n`; +} + +function renderReference(name, url, member) { + const serializedMember = member ? `member=${JSON.stringify(member)}` : ''; + return `​`; +} + +/** + * + * @param {string} linkValue + */ +function resolveLink(linkValue) { + const match = /\s*(.+)\s*\|\s*(.+)\s*/.exec(linkValue); + if (match) { + return `[${match[2]}](${match[1]})`; + } + const linkreg = /(\S+)\.(\S+)/.exec(linkValue); + if (linkreg) { + const [m, reference, member] = linkreg; + if (reference in reflectionsRegistry) { + const url = `/api/${reflectionsRegistry[ + reference + ].name.toLowerCase()}#${member.toLowerCase()}`; + return renderReference(linkValue, url, member); + } + } + if (linkValue in reflectionsRegistry) { + return renderReference( + linkValue, + `/api/${reflectionsRegistry[linkValue].name.toLowerCase()}` + ); + } + console.warn('Unresolved link to', linkValue); + return linkValue; +} + +/** + * + * @param {string} text + */ +function parseLinks(text) { + const matcher = /\{@link\s+(.*?)\s*\}/gi; + let retStr = text; + /** @type {RegExpExecArray} */ + let result; + while ((result = matcher.exec(text))) { + const [match, linkexpr] = result; + retStr = retStr.replace(match, resolveLink(linkexpr)); + } + return retStr; +} + +/** + * + * @param {import('typedoc').JSONOutput.CommentTag} remarks + */ +function extractRemarks(remarks) { + return ` +:::info Remarks + +${parseLinks(remarks.text)} + +::: +`; +} + +/** + * + * @param {import('typedoc').JSONOutput.CommentTag} remarks + */ +function extractDeprecated(deprecated) { + return ` +:::warning Deprecated + +This feature will be removed in the next major release. +${parseLinks(deprecated.text)} + +::: +`; +} + +/** + * + * @param {import('typedoc').JSONOutput.CommentTag} warnings + */ +function extractWarning(warnings) { + return ` +:::warning + +${parseLinks(warnings.text)} + +::: +`; +} + +/** + * + * @param {import('typedoc').JSONOutput.CommentTag} example + * @param {boolean} isHeader + */ +function extractExample(example, isHeader) { + const title = isHeader ? '## Example' : '#### Example'; + return `${title}\n\n${parseLinks(example.text)}\n\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.Comment} comment + */ +function extractComment(comment) { + if (!comment) { + return ''; + } + return `\n${parseLinks(comment.shortText ?? '')}\n\n${parseLinks( + comment.text ?? '' + )}\n\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.Comment} comment + * @param {boolean} isHeader + */ +function extractAdmonitions(comment, isHeader) { + if (!comment) { + return ''; + } + const remarks = comment.tags && comment.tags.find((t) => t.tag === 'remarks'); + const warning = comment.tags && comment.tags.find((t) => t.tag === 'warning'); + const example = comment.tags && comment.tags.find((t) => t.tag === 'example'); + const deprecated = + comment.tags && comment.tags.find((t) => t.tag === 'deprecated'); + return `\n${deprecated ? extractDeprecated(deprecated) : ''}${ + remarks ? extractRemarks(remarks) : '' + }${warning ? extractWarning(warning) : ''}${ + example ? extractExample(example, isHeader) : '' + }\n\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.SignatureReflection[]} signatures + */ +function extractSignatureComment(signatures) { + if (signatures) { + return extractDefinitionBody(signatures[0]); + } + return ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.SignatureReflection[]} signatures + */ +function extractSignatureParams(signatures) { + if (signatures) { + const sig = signatures[0]; + const params = sig.parameters; + if (!params) { + return ''; + } + const serializedParams = params + .map((p) => { + if (p.comment) { + return `
${p.name}
+ +${extractDefinitionBody(p)} + +
`; + } + return null; + }) + .filter((p) => p !== null); + return serializedParams.length + ? `#### Parameters + +
${serializedParams.join('\n')}
` + : ''; + } + return ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractDeclarationBox(reflection) { + return `\n\n\n\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractDefaultValue(reflection) { + const defaultValueTagText = reflection.comment?.tags + ?.find((t) => t.tag.match(/^defaultvalue$/i)) + ?.text.replace(/`/g, ''); + const defaultValue = reflection.defaultValue || defaultValueTagText; + return defaultValue ? `**Default**: \`${defaultValue}\`\n` : ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractReturnValue(reflection) { + const returnsTagText = reflection.comment?.tags?.find((t) => + t.tag.match(/^returns$/i) + ); + return returnsTagText + ? `**Returns**: ${parseLinks(returnsTagText.text)}` + : ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + * @param {boolean} isHeader + */ +function extractDefinitionBody(reflection, isHeader = false) { + return `${extractComment(reflection.comment)}${extractDefaultValue( + reflection + )}\n${extractReturnValue(reflection)}\n${extractAdmonitions( + reflection.comment, + isHeader + )}\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractMemberBox(reflection) { + if (reflection.name === '__namedParameters') { + reflection.name = 'props'; + } + return `### \`${reflection.name}\`\n${extractDeclarationBox( + reflection + )}\n${extractDefinitionBody(reflection)}${extractSignatureComment( + reflection.signatures + )}${extractSignatureParams(reflection.signatures)}\n`; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + * @param {import('typedoc').JSONOutput.ReflectionKind} kind + */ +function filterChildrenByKind(reflection, kind) { + return reflection.children?.filter((c) => c.kind === kind); +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractProperties(reflection) { + const properties = filterChildrenByKind(reflection, ReflectionKind.Property); + const hasProperties = !!properties?.length; + return hasProperties + ? '## Fields \n\n' + properties.map(extractMemberBox).join('\n') + : ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractMethods(reflection) { + const methods = filterChildrenByKind(reflection, ReflectionKind.Method); + const hasMethods = !!methods?.length; + return hasMethods + ? '## Methods \n\n' + methods.map(extractMemberBox).join('\n') + : ''; +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractEnumMembers(reflection) { + const enumMembers = filterChildrenByKind( + reflection, + ReflectionKind.EnumMember + ); + const hasMembers = !!enumMembers?.length; + return hasMembers + ? '## Members \n\n' + enumMembers.map(extractMemberBox).join('\n') + : ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.SignatureReflection[]} signatures + */ +function extractSignatureParameters(signatures) { + if (signatures) { + let ret = ''; + const sig = signatures[0]; + const parameters = sig.parameters; + if (parameters) { + ret += '## Parameters\n\n' + parameters.map(extractMemberBox).join('\n'); + } + if (sig.comment?.returns) { + ret += '## Returns\n\n' + parseLinks(sig.comment.returns) + '\n'; + } + return ret; + } + return ''; +} + +/** + * + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractReflectionBody(reflection) { + return `${extractProperties(reflection)}${extractMethods( + reflection + )}${extractEnumMembers(reflection)}${extractSignatureParameters( + reflection.signatures + )}`; +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractBody(reflection) { + switch (reflection.kind) { + case ReflectionKind.Interface: + case ReflectionKind.TypeAlias: + case ReflectionKind.Function: + case ReflectionKind.Variable: + case ReflectionKind.Class: + case ReflectionKind.Enum: + return extractReflectionBody(reflection); + case ReflectionKind.Reference: + /**@type {import('typedoc').JSONOutput.ReferenceReflection} */ + const ref = reflection; + // TODO handle + return ``; + default: + console.warn(reflection.kindString); + throw new Error('Unhandled reflection kind'); + } +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + */ +function extractTypeParameter(reflection) { + const parameters = [] + .concat(...(reflection.typeParameter || [])) + .concat( + ...(reflection.signatures?.map((s) => s.typeParameter || []).flat() || []) + ); + if (parameters.length === 0) { + return ''; + } + return `## Type Parameters\n\n${parameters + .map((t) => { + return `### \`${t.name}\`\n\n${extractDefinitionBody(t)}`; + }) + .join('\n\n')}`; +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + * @param {string} version + */ +function extractHeader(reflection, version) { + return `\n\n\n\n`; +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection} reflection + * @param {string} version + */ +function serialize(reflection, version) { + return `${extractFrontmatter(reflection)} + ${extractHeader(reflection, version)} + ${extractDefinitionBody(reflection, true)} + ${extractSignatureComment(reflection.signatures)} +${extractTypeParameter(reflection)}\n\n${extractBody(reflection)}`; +} + +/** + * @param {import('typedoc').JSONOutput.DeclarationReflection['type']} type + */ +function typeNameMatchElement(type) { + if (!type) { + return false; + } + return type?.name?.match(/element/i); +} + +/** + * + * @param {{ label: string; items: import('typedoc').JSONOutput.DeclarationReflection[] }} definitions + * @param {string} absolutePath + */ +function extractIndex(definitions, absolutePath) { + return `--- +id: index +slug: ./ +title: API Reference +--- +import Reference from '@site/src/components/Reference'; + +${definitions.reduce((prev, curr) => { + return `${prev}\n\n## ${curr.label} + +${curr.description} + +
    +${curr.items.reduce((p, c) => { + const url = join(`/${absolutePath}`, `/${c.name.toLowerCase()}`); + return `${p}\n
  • `; +}, '')} +
+`; +}, '')} + +`; +} + +/** + * @param {import('typedoc').JSONOutput.ProjectReflection} reflections + * @param {string} outDir + * @param {string} sidebarFile + * @param {string} absolutePath + * @param {string} version + */ +module.exports = async function genPages( + reflections, + outDir, + sidebarFile, + absolutePath, + version +) { + const files = await readdir(outDir); + reflectionsRegistry = {}; + for (const file of files) { + if (file.match(/\.mdx$/)) { + await unlink(join(outDir, file)); + } + } + const filteredChildren = reflections.children.filter( + (c) => c.kind !== ReflectionKind.Namespace + ); + const sidebarGroups = { + exportedValues: [], + exportedHooks: [], + exportedComponents: [], + exportedTypes: [], + externals: [] + }; + for (const child of filteredChildren) { + if (child.name === 'default') { + child.name = 'RenderHTML'; + } + reflectionsRegistry[child.name] = child; + } + for (const child of filteredChildren) { + await writeFile( + `${outDir}/${child.name.toLowerCase()}.mdx`, + serialize(child, version) + ); + if (child.flags.isExternal) { + sidebarGroups.externals.push(child); + } else { + switch (child.kind) { + case ReflectionKind.Class: + case ReflectionKind.Enum: + sidebarGroups.exportedValues.push(child); + break; + case ReflectionKind.Function: + case ReflectionKind.Variable: + if (child.name.startsWith('use')) { + sidebarGroups.exportedHooks.push(child); + } else if ( + (child.signatures && + typeNameMatchElement(child.signatures[0].type)) || + typeNameMatchElement( + child.type?.declaration?.signatures?.[0].type + ) || + child.signatures?.[0].type.types?.some(typeNameMatchElement) || + child.type?.name === 'NamedExoticComponent' + ) { + sidebarGroups.exportedComponents.push(child); + } else { + sidebarGroups.exportedValues.push(child); + } + break; + default: + sidebarGroups.exportedTypes.push(child); + } + } + } + console.info(`wrote documentation files to ${outDir}`); + const reflectionToSidebar = (c) => ({ + type: 'doc', + id: c.name.toLowerCase() + }); + const sortDefinitions = (r1, r2) => { + return r1.name.toLowerCase() > r2.name.toLowerCase() ? 1 : -1; + }; + const definitions = [ + { + type: 'category', + label: 'Components', + description: 'React Components exported by this library.', + items: sidebarGroups.exportedComponents.sort(sortDefinitions) + }, + { + type: 'category', + label: 'Hooks', + description: 'React Hooks exported by this library.', + items: sidebarGroups.exportedHooks.sort(sortDefinitions) + }, + { + type: 'category', + label: 'Other Exports', + description: + 'Other constants exported by this library, such as defaults and utilities.', + items: sidebarGroups.exportedValues.sort(sortDefinitions) + }, + { + type: 'category', + label: 'Types', + description: 'TypeScript definitions exported by this library.', + items: sidebarGroups.exportedTypes.sort(sortDefinitions) + }, + { + type: 'category', + label: 'Externals', + description: + 'Reexports from direct dependencies of `react-native-render-html`.', + items: sidebarGroups.externals.sort(sortDefinitions) + } + ]; + const sidebaritems = [{ type: 'doc', id: 'index' }].concat( + definitions.map(({ items, type, label }) => ({ + type, + label, + items: items.map(reflectionToSidebar) + })) + ); + await writeFile( + sidebarFile, + JSON.stringify({ apiSidebar: sidebaritems }, null, 2) + ); + console.info(`wrote sidebar to ${sidebarFile}`); + await writeFile( + join(outDir, 'index.mdx'), + extractIndex(definitions, absolutePath) + ); + console.info(`wrote documentation index to ${join(outDir, 'index.mdx')}`); +}; diff --git a/doc-tools/doc-docusaurus-typedoc-plugin/src/index.js b/doc-tools/doc-docusaurus-typedoc-plugin/src/index.js new file mode 100644 index 00000000..c774c486 --- /dev/null +++ b/doc-tools/doc-docusaurus-typedoc-plugin/src/index.js @@ -0,0 +1,138 @@ +//@ts-check +const path = require('path'); +const init = require('./typedoc-init.js'); +const genPages = require('./gen-pages.js'); +const { readFile, mkdir, writeFile, unlink } = require('fs/promises'); +const { existsSync } = require('fs'); +const { Joi } = require('@docusaurus/utils-validation'); + +const optionsSchema = Joi.object({ + outDir: Joi.string().required(), + version: Joi.string().required(), + sidebarFile: Joi.string().required(), + typedoc: { + entryPoints: Joi.array().items(Joi.string()).required(), + tsconfig: Joi.string(), + excludePrivate: Joi.boolean() + } +}); + +const name = 'doc-docusaurus-typedoc-plugin'; +const reflectionsFile = 'reflections.json'; + +/** + * @type {import('@docusaurus/types').PluginModule} + * @param {import('@docusaurus/types').LoadContext} context + * @param {{outDir: string; sidebarFile: string; id: string; version: string; typedoc: import('typedoc').TypeDocOptions}} options + * @returns {import('@docusaurus/types').Plugin} + */ +function plugin( + { generatedFilesDir }, + { outDir, sidebarFile, version, typedoc, id = 'default' } +) { + function getCachePath() { + return path.join(generatedFilesDir, name, id); + } + + function getReflectionPath() { + return path.join(getCachePath(), reflectionsFile); + } + + async function task__clearcache() { + const reflectionPath = getReflectionPath(); + try { + if (existsSync(reflectionPath)) { + await unlink(reflectionPath); + } + } catch (e) { + console.warn(e); + } + } + + /** + * @param {boolean} clearCache + */ + async function task__extractReflections(clearCache) { + const reflectionPath = getReflectionPath(); + const cachePath = getCachePath(); + if (existsSync(reflectionPath)) { + if (!clearCache) { + try { + const fileData = await readFile(reflectionPath); + return JSON.parse(fileData.toString()); + } catch (e) { + console.warn(e); + } + } else { + await task__clearcache(); + } + } + /**@type {import('typedoc').Application} */ + const app = init(typedoc); + const project = app.convert(); + if (!project) { + throw new Error( + 'Typedoc plugin encountered a type error while generating reflections' + ); + } + const data = app.serializer.toObject(project); + try { + if (!existsSync(cachePath)) { + await mkdir(cachePath, { recursive: true }); + } + await writeFile(reflectionPath, JSON.stringify(data)); + } catch (e) { + console.warn(e); + } + return data; + } + + /** + * @param {import('typedoc').JSONOutput.ProjectReflection} content + */ + async function task__genPages(content) { + try { + await genPages(content, outDir, sidebarFile, outDir, version); + } catch (e) { + console.error(e); + throw new Error( + 'Typedoc generator encountered an error while generating pages' + ); + } + } + return { + name, + async loadContent() { + return task__extractReflections(false); + }, + async contentLoaded({ content, actions }) { + //@ts-ignore + const reflectionsIndex = Object.fromEntries( + content.children.map((c) => [c.id, c]) + ); + // Add global data + // https://docusaurus.io/fr/docs/lifecycle-apis#actions + actions.setGlobalData(reflectionsIndex); + }, + extendCli(cli) { + cli + .command('api:gen') + .description('Generate API docs with typedoc') + .action(async () => { + const reflections = await task__extractReflections(true); + await task__genPages(reflections); + }); + } + }; +} + +/** + * + * @param {import('@docusaurus/types').OptionValidationContext} context + */ +plugin.validateOptions = function validateOptions(context) { + const { options, validate } = context; + return validate(optionsSchema, options); +}; + +module.exports = plugin; diff --git a/doc-tools/doc-docusaurus-typedoc-plugin/src/typedoc-init.js b/doc-tools/doc-docusaurus-typedoc-plugin/src/typedoc-init.js new file mode 100644 index 00000000..31ca6531 --- /dev/null +++ b/doc-tools/doc-docusaurus-typedoc-plugin/src/typedoc-init.js @@ -0,0 +1,28 @@ +//@ts-check + +// Forked from https://github.com/TypeStrong/typedoc/blob/master/bin/typedoc +const td = require('typedoc'); + +/** + * @param {import('typedoc').TypeDocOptions} options + * @returns {import('typedoc').Application} + */ +module.exports = function init(options) { + const app = new td.Application(); + + app.options.addReader(new td.TypeDocReader()); + app.options.addReader(new td.TSConfigReader()); + + app.bootstrap(options); + + if (app.logger.hasErrors()) { + throw new Error('Typedoc plugin is misconfigured.'); + } + + if (app.options.getValue('entryPoints').length === 0) { + app.logger.error('No entry points provided'); + throw new Error('Typedoc plugin is missing entryPoints.'); + } + + return app; +}; diff --git a/doc-tools/doc-mdx-gen-cli/.gitignore b/doc-tools/doc-mdx-gen-cli/.gitignore new file mode 100644 index 00000000..7447f89a --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/.gitignore @@ -0,0 +1 @@ +/bin \ No newline at end of file diff --git a/doc-tools/doc-mdx-gen-cli/build.js b/doc-tools/doc-mdx-gen-cli/build.js new file mode 100644 index 00000000..5a91d431 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/build.js @@ -0,0 +1,18 @@ +const esbuild = require('esbuild'); +const alias = require('esbuild-plugin-alias'); + +esbuild.build({ + entryPoints: ['src/index.tsx'], + outfile: 'bin/bundle.js', + bundle: true, + platform: 'node', + minify: false, + define: { + __DEV__: false + }, + plugins: [ + alias({ + 'react-native': require.resolve('react-native-web') + }) + ] +}); diff --git a/doc-tools/doc-mdx-gen-cli/package.json b/doc-tools/doc-mdx-gen-cli/package.json new file mode 100644 index 00000000..ad11dfd4 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/package.json @@ -0,0 +1,32 @@ +{ + "name": "@doc/mdx-gen-cli", + "private": true, + "type": "commonjs", + "bin": { + "doc-mdx-gen-cli": "bin/bundle.js" + }, + "scripts": { + "build": "node ./build.js", + "prepack": "yarn build" + }, + "dependencies": { + "@doc/pages": "workspace:*", + "commander": "^14.0.1", + "fbjs": "^3.0.5", + "html-entities": "^2.6.0", + "react-reconciler": "^0.33.0" + }, + "devDependencies": { + "@tsconfig/react-native": "^3.0.7", + "@types/fbjs": "^3.0.11", + "@types/react": "~19.1.0", + "@types/react-reconciler": "^0.32.2", + "esbuild": "^0.25.11", + "esbuild-plugin-alias": "^0.2.1", + "eslint": "^8.57.1", + "react": "19.1.0", + "react-native-web": "^0.21.2", + "react-test-renderer": "~19.1.0", + "typescript": "^5.4.5" + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/MdxToolkitProvider.tsx b/doc-tools/doc-mdx-gen-cli/src/MdxToolkitProvider.tsx new file mode 100644 index 00000000..a685df0b --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/MdxToolkitProvider.tsx @@ -0,0 +1,124 @@ +import React, { PropsWithChildren, Fragment } from 'react'; +import { HTMLSourceInline } from 'react-native-render-html'; +import { ToolkitProvider, UIToolkitConfig } from '@doc/pages'; +import { WEBSITE_BASE } from '@doc/constants'; + +const Chapter = ({ children, title }: PropsWithChildren<{ title: string }>) => ( + +

{title}

+ {children} +
+); + +const Header = ({ children }: PropsWithChildren<{}>) => ( + {children} +); + +function normalizeUrl(url: string, fragment?: string) { + const normalizedFragment = fragment ? `#${fragment}` : ''; + if (url.startsWith('/')) { + return WEBSITE_BASE + url.substr(1) + normalizedFragment; + } + return WEBSITE_BASE + url + normalizedFragment; +} + +export default function MdxToolkitProvider({ + children: toolkitChildren +}: PropsWithChildren<{}>) { + const config: UIToolkitConfig = { + Chapter, + Section: ({ children, title }) => ( + +

{title}

+ {children} +
+ ), + Header, + List: ({ children, type = 'decimal' }) => ( +
    {children}
+ ), + ListItem: ({ children }) =>
  • {children}
  • , + Paragraph: ({ children }) =>

    {children}

    , + Bold: ({ children }) => {children}, + RenderHtmlCard: ({ + caption, + snippet, + expoSource, + title, + props, + preferHtmlSrc, + extraneousDeps, + snapshot + }) => { + const html = (props.source as HTMLSourceInline).html; + return ( + + ); + }, + SourceDisplay: (props) => , + TNodeTransformDisplay: ({ snaphost, ...props }) => { + return ; + }, + Admonition: ({ children, type, title }) => ( + + {children} + + ), + RefBuilder: ({ name, url, type }) => { + return ; + }, + RefDoc: ({ target, children, fragment }) => { + const linkFragments = + target.group === 'root' + ? ['/docs', target.id] + : ['/docs', target.group, target.id]; + return ( + + ); + }, + Acronym: ({ fullName, name, definition }) => ( + + ), + SvgFigure: ({ asset, description, title }) => ( + + ), + InlineCode: ({ children }) => {children}, + Hyperlink: ({ children, url }) => {children}, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + RefAPI: ({ library, name, url, member, full, plural }) => { + const isRNProp = url.match(/^\/api\/renderhtmlprops/); + return ( + + ); + }, + DList: ({ children }) =>
    {children}
    , + DListTitle: ({ children }) =>
    {children}
    , + DListItem: ({ children }) =>
    {children}
    , + Conditional: ({ platform, children }) => + platform === 'web' ? {children} : null + }; + return {toolkitChildren}; +} diff --git a/doc-tools/doc-mdx-gen-cli/src/genPage.tsx b/doc-tools/doc-mdx-gen-cli/src/genPage.tsx new file mode 100644 index 00000000..46b7ef72 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/genPage.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import path from 'path'; +import { PageSpecs } from '@doc/pages'; +import MdxToolkitProvider from './MdxToolkitProvider'; +import { renderMdx } from './render'; + +export default async function genPage(pageSpecs: PageSpecs, genFolder: string) { + const genPath = + pageSpecs.group === 'root' + ? [genFolder, `${pageSpecs.id}.mdx`] + : [genFolder, pageSpecs.group, `${pageSpecs.id}.mdx`]; + return renderMdx( + + {React.createElement(pageSpecs.component)} + , + pageSpecs, + path.join(...genPath) + ); +} diff --git a/doc-tools/doc-mdx-gen-cli/src/index.tsx b/doc-tools/doc-mdx-gen-cli/src/index.tsx new file mode 100644 index 00000000..c7aa08d3 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/index.tsx @@ -0,0 +1,30 @@ +import genPage from './genPage'; +import { pagesSpecs } from '@doc/pages'; +import { program } from 'commander'; +import path from 'path'; +import fs from 'fs/promises'; + +async function docMdxGen(outDir: string) { + const dirPath = path.join(process.cwd(), outDir); + try { + const dir = await fs.opendir(dirPath); + await dir.close(); + } catch (e) { + console.warn(`${outDir} cannot be read or isn't a directory.`); + process.exit(1); + } + const specs = Object.values(pagesSpecs); + await Promise.all(specs.map((s) => genPage(s, dirPath))); +} + +program + .version('0.1.0') + .arguments('') + .description('@doc/mdx-gen-cli command', { + outDir: 'the directory in which mdx files should be generated' + }) + .action(docMdxGen); + +program.parseAsync().catch((e) => { + console.error(e); +}); diff --git a/doc-tools/doc-mdx-gen-cli/src/render/MDXRenderer.ts b/doc-tools/doc-mdx-gen-cli/src/render/MDXRenderer.ts new file mode 100644 index 00000000..c8b57e5d --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/MDXRenderer.ts @@ -0,0 +1,142 @@ +import Reconciler from 'react-reconciler'; +import emptyObject from 'fbjs/lib/emptyObject'; +import { createElement } from './createElement'; + +const MDXRenderer = Reconciler< + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any +>({ + appendInitialChild(parentInstance, child) { + if (parentInstance.appendChild) { + parentInstance.appendChild(child); + } else { + parentInstance.document = child; + } + }, + + createInstance(type, props, root) { + return createElement(type, props, root!); + }, + + createTextInstance(text) { + return text; + }, + + finalizeInitialChildren() { + return false; + }, + + getPublicInstance(inst) { + return inst; + }, + + prepareForCommit() { + // noop + return null; + }, + + prepareUpdate() { + return true; + }, + + resetAfterCommit() { + // noop + }, + + resetTextContent() { + // noop + }, + + getRootHostContext() { + // https://github.com/nitin42/redocx/blob/384305bfe6d792837ed93efc675a2b4f3aca8a55/src/renderer/renderer.js#L59 + // You can use this 'rootInstance' to pass data from the roots. + }, + + getChildHostContext() { + return emptyObject; + }, + + shouldSetTextContent() { + return false; + }, + + preparePortalMount() {}, + + supportsHydration: true, + + supportsPersistence: false, + + isPrimaryRenderer: true, + + cancelTimeout: clearTimeout, + + scheduleTimeout: setTimeout, + + noTimeout: -1, + + // eslint-disable-next-line no-undef + queueMicrotask: queueMicrotask, + + //@ts-ignore + now: () => {}, + + // Setting to false leads to crash... + supportsMutation: true, + + clearContainer() { + // noop + }, + + appendChild(parentInstance, child) { + if (parentInstance.appendChild) { + parentInstance.appendChild(child); + } else { + parentInstance.document = child; + } + }, + + appendChildToContainer(parentInstance, child) { + if (parentInstance.appendChild) { + parentInstance.appendChild(child); + } else { + parentInstance.document = child; + } + }, + + removeChild(parentInstance, child) { + parentInstance.removeChild(child); + }, + + removeChildFromContainer(parentInstance, child) { + parentInstance.removeChild(child); + }, + + insertBefore() { + // noop + }, + + commitUpdate() { + // noop + }, + + commitMount() { + // noop + }, + + commitTextUpdate(textInstance, oldText, newText) { + textInstance.children = newText; + } +}); + +export default MDXRenderer; diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/AdmonitionElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/AdmonitionElement.ts new file mode 100644 index 00000000..8bf0eeab --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/AdmonitionElement.ts @@ -0,0 +1,24 @@ +import type { PropsWithChildren } from 'react'; +import NodeWithChildren from './NodeWithChildren'; + +export type AdmonitionProps = PropsWithChildren<{ + type: string; + title?: string; +}>; + +export default class AdmonitionElement extends NodeWithChildren { + props: AdmonitionProps; + constructor(props: AdmonitionProps) { + super(); + this.props = props; + } + + toMdx(): string { + const { type, title } = this.props; + return `\n\n:::${type} ${title || ''} + +${this.childrenToMdx()} + +:::\n\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/AnchorElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/AnchorElement.ts new file mode 100644 index 00000000..8c3ceb83 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/AnchorElement.ts @@ -0,0 +1,22 @@ +import NodeWithChildren from './NodeWithChildren'; +import assert from 'assert'; + +export type AnchorElementProps = React.AnchorHTMLAttributes; + +export default class AnchorElement extends NodeWithChildren { + props: AnchorElementProps; + constructor(props: AnchorElementProps) { + super(); + this.props = props; + } + + toMdx(): string { + const { href, children } = this.props; + assert.strictEqual( + typeof children, + 'string', + 'Anchor child must be a string' + ); + return `[${this.childrenToMdx()}](${href})`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/CodeBlockElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/CodeBlockElement.ts new file mode 100644 index 00000000..8f14983a --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/CodeBlockElement.ts @@ -0,0 +1,25 @@ +import NodeWithChildren from './NodeWithChildren'; + +export type CodeBlockElementProps = { + lang: string; + content: string; + title?: string; + showLineNumbers: boolean; +}; + +export default class CodeBlockElement extends NodeWithChildren { + props: CodeBlockElementProps; + constructor(props: CodeBlockElementProps) { + super(); + this.props = props; + } + + toMdx(): string { + const { lang, title, content, showLineNumbers } = this.props; + return `
    \n\n\`\`\`${lang} ${title ? `title="${title}"` : ''} +${content} +\`\`\`\n\n
    `; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/CodeElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/CodeElement.ts new file mode 100644 index 00000000..082ffed2 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/CodeElement.ts @@ -0,0 +1,22 @@ +import NodeWithChildren from './NodeWithChildren'; +import assert from 'assert'; + +export type CodeElementProps = React.AnchorHTMLAttributes; + +export default class CodeElement extends NodeWithChildren { + props: CodeElementProps; + constructor(props: CodeElementProps) { + super(); + this.props = props; + } + + toMdx(): string { + const { children } = this.props; + assert.strictEqual( + typeof children, + 'string', + 'Code child must be a string' + ); + return `\`${this.childrenToMdx(false)}\``; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/H2Element.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/H2Element.ts new file mode 100644 index 00000000..493124b7 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/H2Element.ts @@ -0,0 +1,11 @@ +import NodeWithChildren from './NodeWithChildren'; + +export default class H2Element extends NodeWithChildren { + constructor() { + super(); + } + + toMdx(): string { + return `\n\n## ${this.childrenToMdx()}\n\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/H3Element.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/H3Element.ts new file mode 100644 index 00000000..8829b298 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/H3Element.ts @@ -0,0 +1,11 @@ +import NodeWithChildren from './NodeWithChildren'; + +export default class H3Element extends NodeWithChildren { + constructor() { + super(); + } + + toMdx(): string { + return `\n\n### ${this.childrenToMdx()}\n\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/HTMLElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/HTMLElement.ts new file mode 100644 index 00000000..42fc69e4 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/HTMLElement.ts @@ -0,0 +1,30 @@ +import NodeWithChildren from './NodeWithChildren'; + +class HTMLElement extends NodeWithChildren { + props: any; + tagName: string; + inlineTags = ['abbr']; + constructor(tagName: string, props: any) { + super(); + this.props = props || {}; + this.tagName = tagName; + } + + toMdx(): string { + const identifiers = [this.tagName, ...this.getInlineProps(this.props)]; + const tagOpen = `<${identifiers.join(' ')}>`; + const tagClose = ``; + if (this.inlineTags.includes(this.tagName)) { + // Circumvent MDX bug, see https://git.io/J3GEt + return `​${tagOpen}${this.childrenToMdx()}${tagClose}`; + } + // Surround children with a line gap for proper Markdown parsing. + return `${tagOpen} + +${this.childrenToMdx()} + +${tagClose}`; + } +} + +export default HTMLElement; diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/MDXDocument.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/MDXDocument.ts new file mode 100644 index 00000000..f795b982 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/MDXDocument.ts @@ -0,0 +1,50 @@ +import NodeWithChildren from './NodeWithChildren'; + +export interface MDXDocMetadata { + title: string; + description: string; + position: number; + id: string; +} + +export default class MDXDocument extends NodeWithChildren { + expoImport = false; + svgImport = false; + imports: Set; + props: MDXDocMetadata; + + constructor(props: MDXDocMetadata) { + super(); + this.props = props; + this.imports = new Set(); + } + + registerImport(name: string) { + this.imports.add(name); + } + + renderFrontMatter() { + const { id, title, description, position } = this.props; + return `--- +id: ${id} +title: ${title} +sidebar_position: ${position} +description: ${description} +--- +`; + } + + renderImports() { + let importsString = ''; + for (const imp of this.imports) { + importsString += `import ${imp} from "@site/src/components/${imp}";\n`; + } + return importsString + '\n'; + } + + toMdx(): string { + return ( + this.renderFrontMatter() + this.renderImports() + this.childrenToMdx() + ); + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/NodeWithChildren.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/NodeWithChildren.ts new file mode 100644 index 00000000..ceee4c17 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/NodeWithChildren.ts @@ -0,0 +1,45 @@ +import { encode } from 'html-entities'; +import encodeAttributeVal from '../encodeAttributeVal'; + +abstract class NodeWithChildren { + children: Array; + constructor() { + this.children = []; + } + + appendChild(child: NodeWithChildren | string) { + this.children.push(child); + } + + childrenToMdx(encodeEntities: boolean = true) { + return this.children + .map((c) => { + if (typeof c === 'string') { + if (encodeEntities) { + return encode(c, { level: 'all' }); + } + return c; + } + return c.toMdx(); + }) + .join(''); + } + + renderPropVal(val: unknown) { + if (typeof val === 'string') { + return `"${encodeAttributeVal(val)}"`; + } else { + return `{${JSON.stringify(val)}}`; + } + } + + getInlineProps(props: any) { + return Object.entries(props) + .filter(([name]) => name !== 'children' && name !== 'key') + .map(([name, value]) => `${name}=${this.renderPropVal(value)}`); + } + + abstract toMdx(): string; +} + +export default NodeWithChildren; diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/ParagraphElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/ParagraphElement.ts new file mode 100644 index 00000000..6351f02b --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/ParagraphElement.ts @@ -0,0 +1,15 @@ +import NodeWithChildren from './NodeWithChildren'; + +export type ParagraphElementProps = React.AnchorHTMLAttributes; + +export default class ParagraphElement extends NodeWithChildren { + props: ParagraphElementProps; + constructor(props: ParagraphElementProps) { + super(); + this.props = props; + } + + toMdx(): string { + return `\n\n${this.childrenToMdx()}\n\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/ReferenceElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/ReferenceElement.ts new file mode 100644 index 00000000..35bc8431 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/ReferenceElement.ts @@ -0,0 +1,27 @@ +import MDXDocument from './MDXDocument'; +import NodeWithChildren from './NodeWithChildren'; + +export interface ReferenceElementProps { + name: string; + full: boolean; + url: string; + member?: string; + type: string; + library?: string; + plural?: boolean; +} + +export default class ReferenceElement extends NodeWithChildren { + props: ReferenceElementProps; + constructor(props: ReferenceElementProps, root: MDXDocument) { + super(); + this.props = props; + root.registerImport('Reference'); + } + + toMdx(): string { + const tagName = 'Reference'; + const identifiers = [tagName, ...this.getInlineProps(this.props)]; + return `​<${identifiers.join(' ')} />`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/RenderHTMLCardElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/RenderHTMLCardElement.ts new file mode 100644 index 00000000..a511a9b0 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/RenderHTMLCardElement.ts @@ -0,0 +1,47 @@ +import MDXDocument from './MDXDocument'; +import NodeWithChildren from './NodeWithChildren'; + +const version = require('react-native-render-html/package.json').version; + +export type RenderHTMLCardElementProps = { + snippet: string; + expoSource: string; + title: string; + html: string; + snapshot: string; + caption?: string; + preferHtmlSrc: boolean; + extraneousDeps: string[]; +}; + +export default class RenderHTMLCardElement extends NodeWithChildren { + props: RenderHTMLCardElementProps; + constructor(props: RenderHTMLCardElementProps, root: MDXDocument) { + super(); + this.props = props; + root.registerImport('RenderHTMLCard'); + } + + toMdx(): string { + const tagName = 'RenderHTMLCard'; + const { + snippet, + html, + preferHtmlSrc, + snapshot, + expoSource, + extraneousDeps, + ...inlineProps + } = this.props; + const identifiers = [tagName, ...this.getInlineProps(inlineProps)]; + return `\n<${identifiers.join( + ' ' + )} version="${version}" html="${encodeURIComponent( + html + )}" snippet="${encodeURIComponent(snippet)}" snapshot="${encodeURIComponent( + snapshot + )}" expoSource="${encodeURIComponent( + expoSource + )}" extraneousDeps={${JSON.stringify(extraneousDeps)}} />\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/StrongElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/StrongElement.ts new file mode 100644 index 00000000..bc205b60 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/StrongElement.ts @@ -0,0 +1,22 @@ +import NodeWithChildren from './NodeWithChildren'; +import assert from 'assert'; + +export type StrongElementProps = React.AnchorHTMLAttributes; + +export default class StrongElement extends NodeWithChildren { + props: StrongElementProps; + constructor(props: StrongElementProps) { + super(); + this.props = props; + } + + toMdx(): string { + const { children } = this.props; + assert.strictEqual( + typeof children, + 'string', + 'Bold children must be a string' + ); + return `**${this.childrenToMdx()}**`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/SvgFigureElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/SvgFigureElement.ts new file mode 100644 index 00000000..294334f8 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/SvgFigureElement.ts @@ -0,0 +1,24 @@ +import { SvgAssetType } from '@doc/pages'; +import MDXDocument from './MDXDocument'; +import NodeWithChildren from './NodeWithChildren'; + +export type SvgFigureElementProps = { + asset: SvgAssetType; + description: string; + title: string; +}; + +export default class SvgFigureElement extends NodeWithChildren { + props: SvgFigureElementProps; + constructor(props: SvgFigureElementProps, root: MDXDocument) { + super(); + this.props = props; + root.registerImport('SvgFigure'); + } + + toMdx(): string { + const tagName = 'SvgFigure'; + const identifiers = [tagName, ...this.getInlineProps(this.props)]; + return `\n<${identifiers.join(' ')} />\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/components/TNodeTransformDisplayElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/components/TNodeTransformDisplayElement.ts new file mode 100644 index 00000000..a231cc17 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/components/TNodeTransformDisplayElement.ts @@ -0,0 +1,27 @@ +import MDXDocument from './MDXDocument'; +import NodeWithChildren from './NodeWithChildren'; + +export interface TNodeTransformDisplayElementProps { + title?: string; + caption?: string; + html: string; + snapshot: string; +} + +export default class TNodeTransformDisplayElement extends NodeWithChildren { + props: TNodeTransformDisplayElementProps; + constructor(props: TNodeTransformDisplayElementProps, root: MDXDocument) { + super(); + this.props = props; + root.registerImport('TNodeTransformDisplay'); + } + + toMdx(): string { + const tagName = 'TNodeTransformDisplay'; + const { snapshot, html, ...inlineProps } = this.props; + const identifiers = [tagName, ...this.getInlineProps(inlineProps)]; + return `\n<${identifiers.join(' ')} html="${encodeURIComponent( + html + )}" snapshot="${encodeURIComponent(snapshot)}" />\n`; + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/createElement.ts b/doc-tools/doc-mdx-gen-cli/src/render/createElement.ts new file mode 100644 index 00000000..56c9e054 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/createElement.ts @@ -0,0 +1,54 @@ +import AdmonitionElement from './components/AdmonitionElement'; +import CodeBlockElement from './components/CodeBlockElement'; +import RenderHTMLCardElement from './components/RenderHTMLCardElement'; +import SvgFigureElement from './components/SvgFigureElement'; +import H2Element from './components/H2Element'; +import HTMLElement from './components/HTMLElement'; +import MDXDocument from './components/MDXDocument'; +import CodeElement from './components/CodeElement'; +import BoldElement from './components/AnchorElement'; +import ParagraphElement from './components/ParagraphElement'; +import StrongElement from './components/StrongElement'; +import H3Element from './components/H3Element'; +import TNodeTransformDisplayElement from './components/TNodeTransformDisplayElement'; +import ReferenceElement from './components/ReferenceElement'; + +export type NodeType = 'ROOT' | keyof JSX.IntrinsicElements; + +/** + * Creates an element for a document + */ +function createElement(type: NodeType, props: any, root: MDXDocument) { + switch (type) { + case 'ROOT': + return new MDXDocument(props); + case 'admonition': + return new AdmonitionElement(props); + case 'codeblockds': + return new CodeBlockElement(props); + case 'renderhtmlcard': + return new RenderHTMLCardElement(props, root!); + case 'svgfigure': + return new SvgFigureElement(props, root!); + case 'tnodetransformdisplay': + return new TNodeTransformDisplayElement(props, root!); + case 'reference': + return new ReferenceElement(props, root!); + case 'h2': + return new H2Element(); + case 'h3': + return new H3Element(); + case 'a': + return new BoldElement(props); + case 'code': + return new CodeElement(props); + case 'p': + return new ParagraphElement(props); + case 'strong': + return new StrongElement(props); + default: + return new HTMLElement(type, props); + } +} + +export { createElement }; diff --git a/doc-tools/doc-mdx-gen-cli/src/render/encodeAttributeVal.ts b/doc-tools/doc-mdx-gen-cli/src/render/encodeAttributeVal.ts new file mode 100644 index 00000000..e30d45be --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/encodeAttributeVal.ts @@ -0,0 +1,5 @@ +import { encode } from 'html-entities'; + +export default function encodeAttributeVal(attrVal: string) { + return encode(attrVal); +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/index.ts b/doc-tools/doc-mdx-gen-cli/src/render/index.ts new file mode 100644 index 00000000..4615b096 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/index.ts @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { AdmonitionProps } from './components/AdmonitionElement'; +import { CodeBlockElementProps } from './components/CodeBlockElement'; +import { ReferenceElementProps } from './components/ReferenceElement'; +import { RenderHTMLCardElementProps } from './components/RenderHTMLCardElement'; +import { SvgFigureElementProps } from './components/SvgFigureElement'; +import { TNodeTransformDisplayElementProps } from './components/TNodeTransformDisplayElement'; +export { default as renderMdx } from './renderMdx'; + +declare global { + namespace JSX { + interface IntrinsicElements { + admonition: AdmonitionProps; + codeblockds: CodeBlockElementProps; + renderhtmlcard: RenderHTMLCardElementProps; + svgfigure: SvgFigureElementProps; + tnodetransformdisplay: TNodeTransformDisplayElementProps; + reference: ReferenceElementProps; + } + } +} diff --git a/doc-tools/doc-mdx-gen-cli/src/render/renderMdx.ts b/doc-tools/doc-mdx-gen-cli/src/render/renderMdx.ts new file mode 100644 index 00000000..03eb3395 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/src/render/renderMdx.ts @@ -0,0 +1,39 @@ +import fs from 'fs/promises'; +import type { ReactElement } from 'react'; +import path from 'path'; +import MDXDocument, { MDXDocMetadata } from './components/MDXDocument'; +import { createElement } from './createElement'; +import MDXRenderer from './MDXRenderer'; + +// renders the component +async function renderMdx( + element: ReactElement, + metadata: MDXDocMetadata, + filePath: string +) { + const container = createElement( + 'ROOT', + metadata, + undefined as any + ) as MDXDocument; + + //@ts-ignore + const node = MDXRenderer.createContainer(container, undefined, false); + + //@ts-ignore + MDXRenderer.updateContainer(element, node, null); + + try { + await fs.writeFile(filePath, container.toMdx()); + } catch (e) { + console.error( + `An error occurred while generating the document at ${path.resolve( + filePath + )}.` + ); + throw e; + } + console.log(`✨ MDX document generated at ${path.resolve(filePath)}.`); +} + +export default renderMdx; diff --git a/doc-tools/doc-mdx-gen-cli/tsconfig.json b/doc-tools/doc-mdx-gen-cli/tsconfig.json new file mode 100644 index 00000000..ea606215 --- /dev/null +++ b/doc-tools/doc-mdx-gen-cli/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig-base.json", + "compilerOptions": { + "outDir": "./lib", + "module": "CommonJS", + "noEmit": false, + "noImplicitAny": false, + "lib": ["ES2019"], + "jsx": "react" + }, + "exclude": ["node_modules", "**/__tests__", "lib", "types"] +} diff --git a/doc-tools/doc-pages/.eslintignore b/doc-tools/doc-pages/.eslintignore new file mode 100644 index 00000000..9bfcbf29 --- /dev/null +++ b/doc-tools/doc-pages/.eslintignore @@ -0,0 +1,3 @@ +node_modules +/lib +/types diff --git a/doc-tools/doc-pages/.eslintrc.js b/doc-tools/doc-pages/.eslintrc.js new file mode 100644 index 00000000..76aa00c3 --- /dev/null +++ b/doc-tools/doc-pages/.eslintrc.js @@ -0,0 +1,10 @@ +const defaultConf = require('../../.eslintrc.js'); +module.exports = { + ...defaultConf, + rules: { + ...defaultConf.rules, + '@typescript-eslint/no-shadow': 'off', + 'react-native/no-inline-styles': 'off', + 'react/no-unstable-nested-components': 'off', + } +}; diff --git a/doc-tools/doc-pages/.gitignore b/doc-tools/doc-pages/.gitignore new file mode 100644 index 00000000..cb04038f --- /dev/null +++ b/doc-tools/doc-pages/.gitignore @@ -0,0 +1,15 @@ +# CocoaPods +/ios/Pods/ + +# Jest code coverage +/coverage + +# This library +/lib/ + +# api-extractor +/temp + +# Types must be bundled with api-extractor, not included in the repo +/types + diff --git a/doc-tools/doc-pages/README.md b/doc-tools/doc-pages/README.md new file mode 100644 index 00000000..4a87f0cd --- /dev/null +++ b/doc-tools/doc-pages/README.md @@ -0,0 +1 @@ +Documentation primitives for both mobile app and website. \ No newline at end of file diff --git a/doc-tools/doc-pages/package.json b/doc-tools/doc-pages/package.json new file mode 100644 index 00000000..3b30b772 --- /dev/null +++ b/doc-tools/doc-pages/package.json @@ -0,0 +1,48 @@ +{ + "name": "@doc/pages", + "version": "0.0.0", + "private": true, + "main": "lib/index.js", + "react-native": "src/index.ts", + "types": "lib/index.d.ts", + "files": [ + "lib", + "src" + ], + "scripts": { + "test": "yarn test:ts && yarn test:lint && yarn test:jest", + "test:jest": "jest src/", + "test:ts": "tsc --noEmit", + "test:lint": "eslint --ext ts,tsx src/", + "build": "tsc -p tsconfig.json", + "prepack": "yarn build" + }, + "dependencies": { + "react-native-render-html": "workspace:^" + }, + "devDependencies": { + "@babel/cli": "^7.28.3", + "@babel/core": "^7.28.4", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/preset-typescript": "^7.27.1", + "@babel/runtime": "^7.28.4", + "@testing-library/react-native": "^13.3.3", + "@tsconfig/react-native": "^3.0.7", + "@types/jest": "^29.5.14", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "~19.1.0", + "babel-jest": "^29.7.0", + "eslint": "^8.57.1", + "jest": "^29.7.0", + "metro-react-native-babel-preset": "^0.77.0", + "metro-react-native-babel-transformer": "^0.77.0", + "react": "19.1.0", + "react-test-renderer": "~19.1.0", + "typescript": "^5.4.5" + }, + "peerDependencies": { + "react": "*" + }, + "author": "Jules Sam. Randolph (https://github.com/jsamr)", + "license": "MIT" +} diff --git a/doc-tools/doc-pages/src/Page.tsx b/doc-tools/doc-pages/src/Page.tsx new file mode 100644 index 00000000..a45f7b4f --- /dev/null +++ b/doc-tools/doc-pages/src/Page.tsx @@ -0,0 +1,7 @@ +import React, { Fragment, PropsWithChildren } from 'react'; +import useToolkit from './toolkit/useToolkit'; + +export default function Page({ children }: PropsWithChildren<{}>) { + const { Container = Fragment } = useToolkit(); + return {children}; +} diff --git a/doc-tools/doc-pages/src/__tests__/dummy.test.ts b/doc-tools/doc-pages/src/__tests__/dummy.test.ts new file mode 100644 index 00000000..922e1391 --- /dev/null +++ b/doc-tools/doc-pages/src/__tests__/dummy.test.ts @@ -0,0 +1,3 @@ +test('hello', () => { + expect(true).toBe(true); +}); diff --git a/doc-tools/doc-pages/src/acronymsIndex.ts b/doc-tools/doc-pages/src/acronymsIndex.ts new file mode 100644 index 00000000..424533d6 --- /dev/null +++ b/doc-tools/doc-pages/src/acronymsIndex.ts @@ -0,0 +1,22 @@ +import { Acronym, AcronymDefinition } from './pages-types'; + +const acronymsIndex: Record = { + TRE: { + definition: + 'A module capable of transforming a DOM tree into a Transient Render Tree', + fullName: 'Transient Render Engine', + name: 'TRE' + }, + TRT: { + definition: 'Structured data matching closely the React tree to render.', + fullName: 'Transient Render Tree', + name: 'TRT' + }, + TNode: { + definition: 'A node of the Transient Render Tree.', + fullName: 'Transient Node', + name: 'TNode' + } +}; + +export default acronymsIndex; diff --git a/doc-tools/doc-pages/src/components/InternalRendererAdmonition.tsx b/doc-tools/doc-pages/src/components/InternalRendererAdmonition.tsx new file mode 100644 index 00000000..c29e54de --- /dev/null +++ b/doc-tools/doc-pages/src/components/InternalRendererAdmonition.tsx @@ -0,0 +1,25 @@ +import React, { PropsWithChildren } from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +export default function InternalRendererAdmonition({ + name, + contentModel, + children +}: PropsWithChildren<{ + name: string; + contentModel: 'block' | 'mixed'; +}>) { + const { Admonition, RefDoc, RefTRE, Bold } = useToolkit(); + return ( + + {name} are rendered with an internal renderer. See{' '} + page. The content model of{' '} + {name.toLowerCase()} is{' '} + , see{' '} + + Element Models + + . {children} + + ); +} diff --git a/doc-tools/doc-pages/src/components/ListItemCode.tsx b/doc-tools/doc-pages/src/components/ListItemCode.tsx new file mode 100644 index 00000000..74360211 --- /dev/null +++ b/doc-tools/doc-pages/src/components/ListItemCode.tsx @@ -0,0 +1,16 @@ +import React, { PropsWithChildren } from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +export default function ListItemCode({ + name, + children +}: PropsWithChildren<{ name: string }>) { + const { ListItem, InlineCode } = useToolkit(); + return ( + + {name} + {': '} + {children} + + ); +} diff --git a/doc-tools/doc-pages/src/components/RefCssProcessor.tsx b/doc-tools/doc-pages/src/components/RefCssProcessor.tsx new file mode 100644 index 00000000..8fcd7650 --- /dev/null +++ b/doc-tools/doc-pages/src/components/RefCssProcessor.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +const RefCssProcessor = ({}) => { + const { RefLibrary } = useToolkit(); + return ( + + ); +}; + +export default RefCssProcessor; diff --git a/doc-tools/doc-pages/src/components/RefHtmlparser2.tsx b/doc-tools/doc-pages/src/components/RefHtmlparser2.tsx new file mode 100644 index 00000000..2105cf39 --- /dev/null +++ b/doc-tools/doc-pages/src/components/RefHtmlparser2.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +const RefHtmlparser2 = ({}) => { + const { RefLibrary } = useToolkit(); + return ( + + ); +}; + +export default RefHtmlparser2; diff --git a/doc-tools/doc-pages/src/components/RefRNRH.tsx b/doc-tools/doc-pages/src/components/RefRNRH.tsx new file mode 100644 index 00000000..dd486ec1 --- /dev/null +++ b/doc-tools/doc-pages/src/components/RefRNRH.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +const RefRNRH = ({}) => { + const { RefLibrary } = useToolkit(); + return ( + + ); +}; + +export default RefRNRH; diff --git a/doc-tools/doc-pages/src/components/RefTRE.tsx b/doc-tools/doc-pages/src/components/RefTRE.tsx new file mode 100644 index 00000000..85e742ac --- /dev/null +++ b/doc-tools/doc-pages/src/components/RefTRE.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import useToolkit from '../toolkit/useToolkit'; + +const RefTRE = ({}) => { + const { RefLibrary } = useToolkit(); + return ( + + ); +}; + +export default RefTRE; diff --git a/doc-tools/doc-pages/src/figuresIndex.ts b/doc-tools/doc-pages/src/figuresIndex.ts new file mode 100644 index 00000000..d3497578 --- /dev/null +++ b/doc-tools/doc-pages/src/figuresIndex.ts @@ -0,0 +1,14 @@ +import { SvgAssetType } from './toolkit/toolkit-types'; + +const figuresIndex: Record< + SvgAssetType, + { description: string; title: string } +> = { + 'data-flow': { + title: 'Data Flow Diagram', + description: + 'Depiction of data transformations involved in the rendering of an HTML snippet.' + } +}; + +export default figuresIndex; diff --git a/doc-tools/doc-pages/src/index.ts b/doc-tools/doc-pages/src/index.ts new file mode 100644 index 00000000..5f672179 --- /dev/null +++ b/doc-tools/doc-pages/src/index.ts @@ -0,0 +1,16 @@ +export * from './pages-types'; +export { default as ToolkitProvider } from './toolkit/ToolkitProvider'; +export * from './toolkit/toolkit-types'; +export { default as useToolkit } from './toolkit/useToolkit'; +export { default as pagesSpecs } from './pagesSpecs'; + +import React from 'react'; +import { SvgProps } from 'react-native-svg'; + +export type SvgComponent = React.ComponentType< + SvgProps & { + content: string; + secondaryContent: string; + codeBlockBg: string; + } +>; diff --git a/doc-tools/doc-pages/src/pages-types.ts b/doc-tools/doc-pages/src/pages-types.ts new file mode 100644 index 00000000..e5b6fa35 --- /dev/null +++ b/doc-tools/doc-pages/src/pages-types.ts @@ -0,0 +1,52 @@ +import { ComponentType } from 'react'; + +export type PageGroup = 'root' | 'flow' | 'content' | 'guides'; + +export type PageId = + | 'intro' + | 'reinvent-the-wheel' + | 'architecture' + | 'faq' + // flow + | 'css-processing' + | 'transient-render-engine' + | 'rendering' + // guides + | 'styling' + | 'dom-tampering' + | 'custom-renderers' + // content + | 'images' + | 'anchors' + | 'textual' + | 'lists'; + +export interface PageSpecs { + title: string; + /** + * (Web) Used for search engines + */ + description: string; + /** + * The position of this resource in the group. + */ + position: number; + group: PageGroup; + /** + * A unique identifier. Must be unique within group. + */ + id: PageId; + /** + * (Native) The icon associated with this resource. + */ + iconName: string; + component: ComponentType<{}>; +} + +export type Acronym = 'TRE' | 'TRT' | 'TNode'; + +export interface AcronymDefinition { + name: Acronym; + fullName: string; + definition: string; +} diff --git a/doc-tools/doc-pages/src/pages/PageArchitecture.tsx b/doc-tools/doc-pages/src/pages/PageArchitecture.tsx new file mode 100644 index 00000000..6c6f1f29 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageArchitecture.tsx @@ -0,0 +1,93 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import RefRNRH from '../components/RefRNRH'; +import RefHtmlparser2 from '../components/RefHtmlparser2'; +import RefTRE from '../components/RefTRE'; + +export default function PageArchitecture() { + const { + Acronym, + Admonition, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefDoc, + RenderHtmlCard, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + Consumers of this library can benefit greatly from understanding the + basic data flow model to leverage its capabilities. Features such as + props will touch on different areas of this data flow. + +
    + + Let's start with a simple example: + + Hello World! +

    ` + } + }} + /> + + This looks pretty simple. But what exactly is happening under the + hood? As laid out in the page, + we need some logic to translate the DOM into a structure easily + translatable into native elements and support all the features + mentioned in the referred page. This data structure is called the + Transient Render Tree ( + ), see figure below. + +
    + + + + We can roughly split the transformations from an HTML string to a + React tree in 3 steps: + + + + HTML parsing. In this step, the HTML code is parsed to form a DOM + tree. This step is performed by the library. + + + Construction. In this step, the DOM tree is + transformed in a TRT. Each node of this tree is referred to as a + Transient Node (TNode) which has React-Native compatible styles. + This step is performed by module. + + + Transient Render Tree Rendering. In this step, the{' '} + is transformed in a React render tree (VDOM). + TNodes are passed to internal and custom renderers. + + + + For more information on construction, see{' '} + and{' '} + pages. + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageConceptCSS.tsx b/doc-tools/doc-pages/src/pages/PageConceptCSS.tsx new file mode 100644 index 00000000..3d468372 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageConceptCSS.tsx @@ -0,0 +1,180 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import cssInheritanceConfig from './cards/cssInheritanceConfig'; +import RefCssProcessor from '../components/RefCssProcessor'; +import RefTRE from '../components/RefTRE'; +import { RenderHTMLProps } from 'react-native-render-html'; + +const mixedStyleExample = `const mixedStyles = { + whiteSpace: 'normal', + color: 'gray' +}`; + +const mixedStyleRenderCard: RenderHTMLProps = { + source: { + html: ` +

    + Hello world! + A link! +

    +` + }, + tagsStyles: { + body: { + whiteSpace: 'normal', + color: 'gray' + }, + a: { + color: 'green' + } + } +}; + +export default function PageConceptCSS() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + RefCSSProcessor, + RefRenderHTMLExport, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + There are significant differences between the CSS standard and how + styles are handled in React Native. Most notably,{' '} + styles don't inherit from{' '} + styles. The reconciliation is handled by + the . + +
    + + + As stated before, a React Native cannot + receive textAlign style. It could even crash + the native app. The and libraries + handle{' '} + + inheritable CSS properties + {' '} + by merging inheritable properties in the . + + + + + + Every CSS property has a validator registered in the CSS processor, in + charge of validating values for those rules. Validators are + multipurposed: + + + + Handle special units such as absolute (pt),{' '} + relative (rem) and keywords such as{' '} + small (font-size) and{' '} + thin (for borders) and translate those + values in DIP (device independent pixels). + + + Group properties by inheritability, native target ( + block for and{' '} + text for + ), and compatibility (native for properties + translatable as native styles and web for other + properties). + + Discard properties which values are invalid. + + + Note that special inherit,{' '} + initial and unset{' '} + values are not supported. + + + + + Mixed styles declarations ( + ) are a blend between + React Native styles (ViewStyle,{' '} + TextStyles) and{' '} + + CSS properties + {' '} + such as those handled by the CSS processor. This format enables + features that cannot be handled directly by React Native style engine. + For example collapsing,{' '} + , font selection (see{' '} + page) or{' '} + support in images (see{' '} + page). + + + + + + Despite its lack of complex selectors,{' '} + + CSS specificity + {' '} + will be honoured by this library. Most notably, a CSS property will be + resolved by applying the following precedence in ascending order + (latest will override formers): + + + Inherited styles + + User Agent styles (see ,{' '} + element model) + + + Tags styles ( prop) + + + Classes styles ( prop) + + + IDs styles ( prop) + + + Inline styles ( DOM node attribute) + + + + So inline styles will take precedence over IDs styles, which will take + precedence over classes styles, ...etc. + + + important! directives, complex selectors such + as div > *, pseudo-classes and + pseudo-elements are not supported. + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageConceptRendering.tsx b/doc-tools/doc-pages/src/pages/PageConceptRendering.tsx new file mode 100644 index 00000000..20ab7a31 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageConceptRendering.tsx @@ -0,0 +1,184 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; + +const compositeSrc = ` + + + +`; + +const compositeImportStmt = `import { + TRenderEngineProvider, + RenderHTMLConfigProvider, + RenderHTMLSource +} from 'react-native-render-html';`; + +export default function PageConceptRendering() { + const { + Acronym, + Admonition, + Bold, + DList, + DListItem, + DListTitle, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefTRE, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + + + + When you consume the {' '} + component, you are actually using three distinct components. So this ( + implicit composite): + + + + is equivalent to this (explicit composite): + + + + You can actually use the explicit composite architecture + by importing those components: + + + + The great benefit of using explicitly this composite + rendering architecture is that the engine and configuration can be put + near the top of your App to factor the cost of instantiating the + engine. This is especially useful for apps which will + render hundreds to thousands of small snippets such as chat apps. + + + Note that props of the {' '} + component are split between the three layers of the rendering + architecture: + + + + + + + Will take all props + pertaining to the layer + such as ,{' '} + (all styling props) and + DOM related such as ,{' '} + + ... See for a + complete reference. + + + + + + Will take all props + pertaining to the layer such as{' '} + ,{' '} + ,{' '} + , ... See{' '} + for a complete + reference. + + + + + + Will take all props + pertaining to the document such as{' '} + + , ,{' '} + . See{' '} + for a complete + reference. + + + + + + Each node of the is translated to a React + component in the TNodeRenderer component. + Internally, TNodeRenderer will map each type + of TNode to its dedicated component.{' '} + TDocumentRenderer for{' '} + TDocument nodes,{' '} + TBlockRenderer for {' '} + nodes, TPhrasingRenderer for{' '} + nodes and{' '} + TTextRenderer for {' '} + nodes. + + + Under the hood, TPhrasingRenderer and{' '} + TTextRenderer use React Native{' '} + wrapper component, while{' '} + TBlockRenderer and{' '} + TDocumentRenderer use React Native{' '} + wrapper component. + + + Each renderer will pass styles provided by its underlying{' '} + TNode to its React Native wrapper. Children + are rendered thanks to the TChildrenRenderer{' '} + component. + + + + + Custom renderers are components defined for specific tags. They can be + specified with the prop, which + is a mapping of tags with the corresponding components. See the{' '} + page. Also note that props + targeting those renderers can be passed to a custom renderer via the{' '} + prop, which is a mapping + of tag names with its corresponding props. Those props can be consumed + from the custom renderer via useRendererProps{' '} + hook. + + + + + Some tags such as ,{' '} + , and{' '} + are handled by special renderers, namely{' '} + internal renderers. Those renderers can be thought of as + "internal custom renderers". See the ,{' '} + and {' '} + corresponding pages. + + + + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageConceptTRE.tsx b/doc-tools/doc-pages/src/pages/PageConceptTRE.tsx new file mode 100644 index 00000000..f0e850a1 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageConceptTRE.tsx @@ -0,0 +1,484 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import ListItemCode from '../components/ListItemCode'; +import useToolkit from '../toolkit/useToolkit'; +import { TRenderEngine } from '@native-html/transient-render-engine'; + +const translateEngine = new TRenderEngine({ + dangerouslyDisableHoisting: true, + dangerouslyDisableWhitespaceCollapsing: true +}); + +const hoistingEngine = new TRenderEngine({ + dangerouslyDisableHoisting: false, + dangerouslyDisableWhitespaceCollapsing: true +}); + +const collapsingEngine = new TRenderEngine({ + dangerouslyDisableHoisting: false, + dangerouslyDisableWhitespaceCollapsing: false +}); + +const source = ` +This is +phrasing content + + and this is too. +`; + +export default function PageConceptTRE() { + const { + Acronym, + Admonition, + Bold, + DList, + DListItem, + DListTitle, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefHtmlAttr, + RefDoc, + RefTRE, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + TNodeTransformDisplay, + SvgFigure + } = useToolkit(); + return ( + +
    + + This article is an introduction to the {' '} + architecture. + +
    + + + Element models form the building block of the engine. + These models specify how a DOM element of a peculiar tag should be + translated. You can tamper with those models and add you own models, + making this library extremely customizable. + +
    + + To each standard tag is attached an element model, + instance of the class. Such model + has multiple fields describing different behaviors related to + translation of those DOM elements. There are two ways to instantiate + an element model: + + + + When changing an existing tag model with the{' '} + method. + You can access default models via{' '} + ; + + + When registering a new tag with the{' '} + {' '} + static method. + + + + You will have to register custom and extended models with the{' '} + prop, please + refer to{' '} + {' '} + for examples. Below is a list of fields that can be set when + defining or extending HTML element models: + + + + + + + How should this tag be translated? See next chapter. + + + + + + Will be true for{' '} + + void elements + {' '} + , e.g. DOM elements which can't have children. + + + + + + Will be true for those elements which + children should not be translated. Useful for{' '} + and other custom markups. + + + + + + Mixed User-Agent styles, e.g. default styles for this element. + This is how default styles are set for tags. + + + + + + A function which returns mixed UA styles given a minimal{' '} + and a DOM + . + + + + + + An object with three fields, text,{' '} + view and native. + Each field value is a props object that will be passed to the + underlying native component at render time. Respecively, for + , and all + (catch-all). + + + + + + Serves the same purpose as{' '} + reactNativeProps, but it's a function + taking a as first argument, pre-generated + props as second argument (such as{' '} + accessibilityLabel derived from{' '} + ) and the DOM{' '} + as a third argument. + + +
    +
    + + There are 4 content models that can be attached to a tag: + + + + + + + For elements which can be translated to or{' '} + . Examples:{' '} + , {' '} + ... + + + + + + For elements which can only be translated to{' '} + . Examples: ,{' '} + , ... + + + + + + (rare) for elements which can be translated to{' '} + , or{' '} + . The sole mixed elements are{' '} + , and{' '} + . + + + + + + For element which shall not be rendered and will be translated to{' '} + . Examples:{' '} + , {' '} + ... + + + + A powerful feature of the Foundry engine is that the + models attached to a tag name can be customized! See the{' '} + page. + +
    +
    + + + The construction is broadly comprised of three + steps. + +
    + + Each DOM element is translated to a . The + translation will obide by the following rules: + + + + The root of the document will be translated to a{' '} + node. This node has a special{' '} + context field which holds metadata + harvested in the DOM element (see{' '} + + ). + + + Text nodes will be translated to , and will + be merged with a parent DOM element if the parent's{' '} + content model is textual or{' '} + mixed when they are its only child. For example, a + Text node with no siblings which parent is a{' '} + will be merged into a{' '} + with tagName set + to "span". + + + DOM elements which content model is textual with + multiple children will be translated to{' '} + nodes. + + + DOM elements with children which content model is{' '} + mixed will be translated to{' '} + if they only have{' '} + or children,{' '} + otherwise. + + + DOM elements which content model is{' '} + block will be translated to {' '} + nodes. + + + Finally, DOM elements which content model is{' '} + none will be translated to . + + + , comments and{' '} + DOM nodes will be ignored. + + + + A DOM element might be untranslatable for a variety of reasons. For + example, its name is not a standard HTML5 element and there is no + custom HTML element model registered for it. An other reason is that + it is an interactive element such as a form, input or button. + + + In addition, inline styles, User Agent styles and mixed styles are + processed by the CSS Processor, see{' '} + for more details. + + + Below is an example of a translation transformation + from HTML to : + + + + You will notice that a has been + added, and the root is an instance of . + This process is called normalization, and is also + performed by Web browsers. + +
    +
    + + The hoisting phase consists in enforcing a basic + constraint: + + + A node should only have{' '} + , and{' '} + nodes as children. + + + Therefore, any child of a{' '} + node will be recursively{' '} + hoisted to the parent, until it meets that constraint. + This constraint must be enforced to insure that a React Native{' '} + elements have no{' '} + children, since it will break the + default box model and might lead to bugs and inconsistencies. This + constraint is depicted below: + + + React Native elements should not have{' '} + elements as children. + + + On one hand will be translated to{' '} + elements and on the other hand{' '} + and nodes will + be translated to elements. Therefore, + enforcing The Hoisting Constraint in the{' '} + results in enforcing{' '} + The View Constraint at render time. You can disable{' '} + hoisting via{' '} + prop, but be + advised this is yet experimental. + + + Below is an example of translation + hoisting{' '} + transformation from HTML to : + + +
    +
    + + The whitespace collapsing phase consists in + implementing the algorithm associated with the{' '} + CSS property, depicted in the{' '} + + CSS Text Module Level 3 + {' '} + standard, by which unsignificant white-spaces are removed from the{' '} + . You can disable hoisting via{' '} + {' '} + prop, but be advised this is yet experimental. + + + Below is an example of{' '} + translating + hoisting + collapsing transformation from + HTML to : + + +
    +
    + + + A has the following relevant fields (see{' '} + for a reference): + + + + + + + The list of attributes attached to the underlying DOM Node. + + + + + The id attached to the underlying DOM Node. + + + + + An array of classes associated with the underlying DOM Node. + + + + + The underlying DOM Node, if present. + + + + + The tag name attached to the underlying DOM Node. + + + + + + The parent , if present, determined{' '} + before hoisting. + + + + + + The position of this element relative to its parent,{' '} + after hoisting and collapsing. + + + + + + An array of descendents to this node. + + + + + + The type of this . Either{' '} + text, phrasing, block,{' '} + document or empty. + + + + + + A registry of markers for this . See + explaination in below section. + + + + + + A utility function to check if this node has the provided CSS class. + + + + + + A utility function to create a JSX-like string representation of + this node and its children. Very handy for debugging. + + + + The styles field which is not listed here{' '} + is not consumable as a React Native component{' '} + style prop. + + + + + form an abstraction in which one{' '} + provides semantic information to itself and + all its descendants. For example, {' '} + elements, which stand for "insertion" of content in the context of an + edit will provide the edits marker with value{' '} + "ins" to all its descendants. Similarly,{' '} + , and{' '} + elements will set their own markers. List + markers such as olNestLevel are integers + which are incremented each time a list is nested. + + + Markers can also be derived from attributes. This is the case with{' '} + and attributes. + Finally, you can customize the markers extraction logic with{' '} + prop and the eponym + HTML model field. + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageContentAnchors.tsx b/doc-tools/doc-pages/src/pages/PageContentAnchors.tsx new file mode 100644 index 00000000..9d2ce8da --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageContentAnchors.tsx @@ -0,0 +1,90 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import anchorsMinimalConfig from './cards/anchorsMinimalConfig'; +import anchorsBlockConfig from './cards/anchorsBlockConfig'; +import anchorsCustomConfig from './cards/anchorsCustomConfig'; +import anchorsRelativeConfig from './cards/anchorsRelativeConfig'; +import InternalRendererAdmonition from '../components/InternalRendererAdmonition'; + +export default function PageContentAnchors() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefTRE, + RefRenderHTMLExport, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + +
    + + + + By default, pressing an anchor will open the link in the system + browser. This is done with React Native {' '} + API. + + + + + In the below example, the anchor will be translated to a{' '} + node, because some of its children ( + ) have a block content + model. This is a feature of the mixed content model. + + + + + + The HTML standard allows relative URLs, for example when anchors have + a href attribute with no origin, such as{' '} + <a href="contact.html">. The new + foundry release adheres closely to this standard, by extracting + information about the baseUrl of the current + page. Either by the mean of the {' '} + element, or by information contained in the{' '} + prop. Example: + + + + You can use the same URL normalization mechanism in your custom + renderers thanks to {' '} + hook. + + + + + We can take advantage of the{' '} + to customize anchors + behavior (see{' '} + + ). Anchors support onPress prop to handle + press events. + + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageContentImages.tsx b/doc-tools/doc-pages/src/pages/PageContentImages.tsx new file mode 100644 index 00000000..9c04681c --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageContentImages.tsx @@ -0,0 +1,280 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import customImageRendererConfig from './cards/customImageRendererConfig'; +import internalImageRendererConfig from './cards/internalImageRendererConfig'; +import imagesWithHeadersConfig from './cards/imagesWithHeadersConfig'; +import InternalRendererAdmonition from '../components/InternalRendererAdmonition'; + +const inlineExample = ``; + +const objectFitExample = ``; + +const autoSizeExample = ``; + +const unreachableExample = `The Void`; + +// TODO document attributes +const imgAttributes = { + alt: true, + src: true, + width: true, + height: true, + crossorigin: false, + anonymous: false, + 'use-credentials': false, + decoding: false, + ismap: false, + loading: false, + referrerpolicy: false, + sizes: false, + srcset: false, + usemap: false +}; + +export default function PageContentImages() { + const { + Acronym, + Admonition, + Bold, + DList, + DListItem, + DListTitle, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefESSymbol, + RefRenderHtmlProp, + RefHtmlAttr, + RefDoc, + RefRenderHTMLExport, + RefTRE, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + Also note that this renderer covers the {' '} + tag. tag is not yet supported. + +
    + +
    + + The renderer will automatically scale images down to the available + width, even when the provided inline style width is greater than the + container width. You need to activate{' '} + enableExperimentalPercentWidth for + percent-width support in images. See{' '} + for + reference. + + + You are strongly advised to provide a{' '} + property from{' '} + official hook to help + this component handle the scaling. + + +
    +
    + + This library supports CSS + property. In the below example, which is very similar to the + previous one, we set explicitly{' '} + object-fit: contain; to letterbox the + image in the container of width 50% and + height 100px. + + + + is a mixed style and thus you + can use it in mixed styles declarations such as{' '} + . + +
    +
    + + The next image will be sized automatically thanks to the{' '} + and{' '} + props. The + latter allows you to set the maximum width from{' '} + , or disabling scaling by + returning . + + +
    +
    + + + Similarly to browsers, this library will place a print box before + fetching image dimensions when both and{' '} + attributes are provided, or the two + dimensions are set in the attribute. This + is great to avoid layout shifts when images size jumps from 0 to the + view box height, and is a hint to good web design. + + + + + + + + You are kindly advised to read the{' '} + page before continuing. + +
    + + has a great + advantage over using{' '} + {' '} + prop: you have access to the internal component props. In this + scenario, we are going to display an interactive thumbnail which + will show the full resolution image when pressed. To do so, we are + going to read the URI from the internal source prop (although we + could also do this from the {' '} + src{' '} + + ), and mangle it to get our "thumbnail" URI. + + +
    +
    + + You can reuse to your advantage some building blocks of the internal + renderer thanks to the following exports: + + + + + + + To render the container of the {' '} + element. + + + + + To render the fallback view on error state. + + + + To render the fallback view on loading state. + + + + To render the image on success state.. + + + + + To get the state of the image resource fetching. + + + + In the below example, our custom renderer will display an activity + indicator when the state is either "loading" or "success". This is + for demonstration purposes, and of course you should handle the + "success" state by rendering the{' '} + component, + or a custom component displaying an image. + + +
    +
    + +
    + + You can take advantage of the{' '} + + prop to pass headers to the image fetching conditionnaly. For + example: + + + + In this example, we are using a Bearer token to access a restricted + resource. We could also use headers to take advantage of the new{' '} + + Responsive Image Client Hints + {' '} + standard. + +
    +
    + + We can take advantage of the{' '} + to customize images + behavior (see{' '} + + ). + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageContentLists.tsx b/doc-tools/doc-pages/src/pages/PageContentLists.tsx new file mode 100644 index 00000000..d16e2776 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageContentLists.tsx @@ -0,0 +1,169 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import ListItemCode from '../components/ListItemCode'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import olUpperRomanConfig from './cards/olUpperRomanConfig'; +import ulSquareConfig from './cards/ulSquareConfig'; +import customListKatanaConfig from './cards/customListThaiConfig'; +import customListRussianConfig from './cards/customListRussianConfig'; +import rtlListArabicConfig from './cards/rtlListArabicConfig'; +import rtlListDiscConfig from './cards/rtlListDiscConfig'; +import InternalRendererAdmonition from '../components/InternalRendererAdmonition'; + +function RefCounterStyle() { + const { RefLibrary } = useToolkit(); + return ( + + ); +} + +export default function PageContentLists() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefESSymbol, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefTRE, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + + Lists marker rendering logic has been extracted to{' '} + {' '} + and libraries for convinience! Fell free to use + these outside of a {' '} + component. + +
    + + + List elements support CSS + property, which defines how the marker pseudo-element of a list item + should be rendered. In CSS terminology, a marker is a pseudo-element + situated before elements with a {' '} + property set to list-item. See{' '} + + CSS Lists and Counters Module Level 3 + {' '} + for a standard reference and{' '} + for a + list of types supported by this library. + + + + + Ordered lists elements support by default + 6 list style types: + + + 1, 2, 3 ... (the default) + a, b, c ... + A, B, C ... + α, β, γ ... + i, ii, iii ... + I, II, III ... + + + + You can actually very easily plug-in one of the dozens presets from{' '} + , including Persian, Arabic, Hebrew, Thai, + Katana... see the below chapter. + + + + + Unordered lists elements support by + default 5 list style types: + + + "•" (the default) + "■" + "○" + "▼" + "▶" + + + Those markers are not rendered with UTF-8 characters, which might have + a significant variety of shapes and sizes depending on fonts. Instead, + geometric shapes are rendered. + + + + +
    + + The prop allows + you to create as many list type styles as you wish. Combined with + the power of , you can plug-in one of the dozens + of presets with a one-liner! See below example with the{' '} + Thai preset: + + +
    +
    + + allows you to create any counter style, + translating strictly the {' '} + at-rule API defined in{' '} + + CSS Counter Styles Level 3 + {' '} + in a JavaScript API. In the below example, we are going to create an + alphabetic counter style for the Russian alphabet: + + +
    + {/* TODO: add a section about custom "unitary" counter styles. */} +
    + + + Thanks to prop, you can + enable experimental RTL support for lists (see{' '} + and{' '} + + ). + + + For RTL mode to take effect, you need to have a{' '} + attribute set for the list tag or one of + its parents, or the style set for + the list tag or one of its parents. + +
    + +
    +
    + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageContentTextual.tsx b/doc-tools/doc-pages/src/pages/PageContentTextual.tsx new file mode 100644 index 00000000..580bd8dd --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageContentTextual.tsx @@ -0,0 +1,193 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import paragraphsConfig from './cards/paragraphsConfig'; +import whiteSpaceNormalConfig from './cards/whiteSpaceNormalConfig'; +import whiteSpacePreConfig from './cards/whiteSpacePreConfig'; +import preformattedConfig from './cards/preformattedConfig'; +import fontSelectionArial from './cards/fontSelectionArial'; +import fontSelectionCourierNewConfig from './cards/fontSelectionCourierNewConfig'; +import fontSelectionSpaceMonoConfig from './cards/fontSelectionSpaceMonoConfig'; +import lineBreakBugConfig from './cards/lineBreakBugConfig'; +import lineBreakFixConfig from './cards/lineBreakFixConfig'; +import ghostLineOddityConfig from './cards/ghostLineOddityConfig'; +import ghostLineFixConfig from './cards/ghostLineFixConfig'; + +export default function PageContentTextual() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefTRE, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + + {/*
    + +
    */} + + + Paragraphs have a default top and bottom margin. If you use{' '} + prop, + margins of adjacents blocks will collapse{' '} + + as per the CSS standard + + . + + + + is + considered experimental because the doesn't + support CSS property yet. However, + margin collapsing should not apply to flex layouts while this prop + will apply margin collapsing indiscriminately. + + + + + White space collasping occurs in the eponym phase of the{' '} + {' '} + processing step. Insignificant whitespaces are removed from the tree, + as per the algorithm depicted in{' '} + + CSS Text Module Level 3 + + . + + + The strictly complies with this standard, + although only white-space: normal; and{' '} + white-space: pre; are supported at the + moment. + +
    + + This is the default behavior, with the exception of a handful of + tags such as . + + +
    +
    + + You can set the CSS property + with inline styles or with classes, id and tags styles. + + +
    +
    + + + + The default font for the tag is + monospace and property is "pre". + These default styles are set via the{' '} + associated + with this tag element model. See{' '} + + Element Models + + . + + + + + CSS and{' '} + properties allow a comma-separated list + of fonts, but React Native styles fontFamily{' '} + allows only one font name. With the , you can + instruct which fonts are available in the system (or fonts you have + added), and it will pick the first match! The prop to achieve that is{' '} + . + + + By default, a handful of fonts supported by the current platform are + pre-registered (Android, iOS, MacOS and Windows). If you are using + expo, just set this prop to{' '} + + Constants.systemFonts + + . You can also define how{' '} + + generic font names + {' '} + are resolved with the prop. + +
    + +
    +
    + +
    +
    + +
    + + Fonts registered in should + not be surrounded with quotes; however you can surround + the font name with quotes in inline and mixed styles, as per CSS + standard. + +
    + +
    + + Line breaks work seemlessly with the {' '} + element. There is a known bug though in the Foundry release, where + line breaks closing an inline formatting context will be printed + while they should be ignored. Below is an example for illustration + purposes: + + + + Hopefully, the bug has been identified and since version 6.1.1 there + is a workaround. You just need to pass{' '} + prop: + + +
    +
    + + React Native has a weird behavior whereby empty{' '} + elements span vertically on iOS and + Android.{' '} + + I called this "ghost lines" + + . For example: + + + + Since version 6.1.1, a new prop,{' '} + , + prevent this behavior from happening. It will also handle multiple + ghost elements: + + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageFAQ.tsx b/doc-tools/doc-pages/src/pages/PageFAQ.tsx new file mode 100644 index 00000000..6e22bc52 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageFAQ.tsx @@ -0,0 +1,267 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import selectableTextConfig from './cards/selectableTextConfig'; + +export default function PageFAQ() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefTRE, + RefHtmlAttr, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + + +
    + + Use renderersProps.a.onPress, see{' '} + + Stack Overflow | How to open the browser when a link is pressed? + {' '} + and . + +
    +
    + + You can define custom renderers for that purpose. See{' '} + . + +
    +
    + + Use utility. See{' '} + + Stack Overflow | Extract raw HTML in react-native-render-html + custom renderers + + . + +
    +
    + + That's really a piece of cake. See{' '} + + @native-html/iframe-plugin + + . + +
    +
    + + You should use prop. + +
    +
    + + See this example from the docs:{' '} + + Example: Displaying Inline Images + + . + +
    +
    + + Sure! The default renderer is very limited. Check-out{' '} + + @native-html/table-plugin + {' '} + and{' '} + + @native-html/heuristic-table-plugin + + . + +
    +
    + + You can take advantage of{' '} + prop to set{' '} + selectable to all{' '} + instances. + + + + However, the end-user won't be able to select across multiple + blocks: this is a limitation of React Native. + +
    +
    + +
    + + There is a detailed explaination for this warning here:{' '} + + Stack Overflow | react-native-render-html, "You seem to update + ..." + + . + +
    +
    + + You must register fonts available in your app with{' '} + prop. This feature is + called font selection and prevents native crashes + caused by missing fonts! See{' '} + + Font Selection + + . + + + Also note that fontWeight and{' '} + fontStyle typefaces modifiers, which might + be set by default for some tags such as + , will cause the font to be missed on Android if you haven't + registered your font with typefaces, e.g. via{' '} + + XML fonts + + . See{' '} + + this StackOverflow answer for a step-by-step guide + + . + +
    +
    + + This is a known bug, but hopefully we have the{' '} + prop to + fix it. See{' '} + + Textual | Caveats | Line Breaks + + . + +
    +
    + + This is another known bug, but hopefully we have the{' '} + {' '} + prop to fix it. See{' '} + + Textual | Caveats | Empty Tags + + . + +
    +
    + + That would often happen in the HTML markup when your custom tags is + self-closing such as in {''}. + The HTML5 standard strictly prohibits non-void elements to be + self-closing, and the required behavior for a parser is to ignore + the {'/'} character in that case. Abding by + this standard, the HTML parser will end up considering{' '} + {''} as equivlent to{' '} + {''}. Therefore, any content + below it will be considered as children of{' '} + {''}. Because it is forgiving, + the parser will close this tag when it reaches the end of the + stream. To overcome this issue, you have two options: + + + + Replace {''} with{' '} + {''} in your HTML + markup. + + + Set recognizeSelfClosing option to{' '} + true in{' '} + prop. + + +
    +
    + + This is caused by a known limitation in React Native.{' '} + + The issue is being tracked on Github. + + +
    +
    + + Likely a bug between react-native-webview{' '} + and react-native-screens. See{' '} + + Stack Overflow | When rendering iframes, Android crashes while + navigating back to stack screen + + . + +
    +
    + + Probably an issue with your package manager. See{' '} + + Stack Overflow | Unable to resolve XXX from module YYY + + . + +
    +
    + + This is a limitation of FaceBook's fresco library and React Native{' '} + component. You need to downsize the + image. + +
    +
    + + Because of a{' '} + + React Native bug + + , nested `Text` elements are not accessible, which means that the + screen reader will not be able to identify{' '} + tags as links when grouped with other + textual elements. Below is an example: + + + Unfortunately, + this hyperlink is not accessible +

    `} + /> + + Luke Walczak from Callstack{' '} + + explains how to circumvent this issue in a great post + + . Unfortunately, this workaround cannot be genericized and we will + have to wait for a fix in React Native codebase. + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageGuideCustomRenderers.tsx b/doc-tools/doc-pages/src/pages/PageGuideCustomRenderers.tsx new file mode 100644 index 00000000..b678fcc1 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageGuideCustomRenderers.tsx @@ -0,0 +1,335 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import ListItemCode from '../components/ListItemCode'; +import simpleCustomRenderersConfig from './cards/simpleCustomRenderersConfig'; +import adsRenderersConfig from './cards/adsRenderersConfig'; +import inlineImagesConfig from './cards/inlineImagesConfig'; +import bluecircleConfig from './cards/bluecircleConfig'; + +export default function PageGuideCustomRenderers() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + DList, + DListItem, + DListTitle, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefTRE, + RefHtmlAttr, + RefDoc, + RefDOM, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + The renderer API shipped since Foundry (v6) is at the + same time more strict and more flexible. To get ready for this new + API, you must understand some basics of the transient render tree + produced by the : + + + + During the transient render tree generation, every DOM node is + translated to a . + + + nodes correspond to DOM{' '} + nodes (anonymous{' '} + nodes) or DOM elements which children are + DOM nodes (named{' '} + nodes). So a node + cannot have children, and its content is a string accessible with + the field. + + + Thanks to hoisting, nodes + can only have and{' '} + nodes as children. + + + nodes can have any children. + + + + You are kindly advised to read{' '} + page before continuing! + +
    + + + You can customize rendering at two steps of the flow: + + + + During generation. via HTML model definition. + + At (React) render time via custom renderers. + + + These customizations are not exclusive, so you can use both approaches + at the same time. + + + +
    + + Let's say we have defined an advanced, powerful{' '} + <blue-circle> Web Component for our + website and we need to register a custom renderer for this tag. If + we don't, the <blue-circle> elements + will be translated to and + won't be rendered. + + + We must register an element model for this + tag because it is non-standard. + + + Custom tags in HTML markup must never be self-closing. + The HTML parser will not recognize non-void self-closing tags by + default which will lead to unexpected outcomes. + + + We may register a custom component renderer, but this + is not mandatory (see next chapter). + + + For a more detailed explanation of the allowed parameters for the + + static method, see{' '} + + . + + +
    +
    + + In the below example, we are changing the element model of the + tag to support inline rendering. For + this purpose, we take advantage of the{' '} + prop! + + + + We used method to + change the content model for the{' '} + tag. This method is immutable: it + creates a new instance. It is + thus safe to use this method to create models for new tags derived + from models of existing tags. + + + You cannot set the contentModel{' '} + dynamically. This is currently a limitation of the{' '} + . + +
    +
    + +
    + + You can register custom renderers components with the{' '} + prop. + + + Stop talking, let's try it out. We're going to define a renderer for + the element which supports press + interactions: + + + + The wrapper component injected when handling{' '} + onPress for nodes + is defined by the {' '} + prop. You can also customize the highlight color with{' '} + . Also note + that onPress works with textual nodes, in + which case the eponym prop of React Native{' '} + element will be used instead. + + + can receive{' '} + textProps prop which will be used when + rendering a React Native element, and{' '} + viewProps for {' '} + elements. + +
    +
    + + Let's continue with a common requirement: injecting ads in the body + of an article. More precisely, after the 2d and 4th children. To + achieve our goal, we are going to use the{' '} + component: + + + + The foundry API is powerful in terms of rendering customization. It + is very easy to insert child elements, while preserving the internal + rendering logic. + + + can receive a{' '} + {' '} + prop to customize the rendering logic for each child. + +
    +
    + A custom renderer will receive the below props: + + + + + + The to render. + + + + + + The default fallback renderer for this . + + + + + + The internal renderer for this tagName. + An internal renderer is like a custom renderer, but registered + internally. If there is no internal renderer registered for this + tag,{' '} + {' '} + will be equal to{' '} + + . + + + + + + The flatten style object which should be passed to the root + element returned by this component. + + + + + + To use when you render a + -based element (e.g. the{' '} + {' '} + prop is "text"). + + + + + + To use when you render a + -based element (e.g. the{' '} + {' '} + prop is "block"). + + + + + + To check whether a ( + "text") or ( + "block") is expected as the root element + returned by this component. + + + + + + Props passed directly from the parent custom renderer via{' '} + . See{' '} + {' '} + prop. + + + + + + The position relative to the parent React element, starting at 0. + + + + + + The total number of children of this React element parent. e.g. + number of React element siblings + 1. + + + + See for a + complete reference. + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageGuideDomTampering.tsx b/doc-tools/doc-pages/src/pages/PageGuideDomTampering.tsx new file mode 100644 index 00000000..71193b7c --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageGuideDomTampering.tsx @@ -0,0 +1,249 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import ListItemCode from '../components/ListItemCode'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import RefHtmlparser2 from '../components/RefHtmlparser2'; + +import removeOlChildrenConfig from './cards/removeOlChildrenConfig'; +import replaceDataConfig from './cards/replaceDataConfig'; +import insertingElementConfig from './cards/insertingElementConfig'; +import ignoreDomNodeConfig from './cards/ignoreDomNodeConfig'; +import selectDomRootConfig from './cards/selectDomRootConfig'; + +const prerenderingSrc = `import React, { useState, useEffect, useMemo } from 'react'; +import { + TRenderEngineProvider, + RenderHTMLConfigProvider, + RenderHTMLSource, + useAmbientTRenderEngine +} from 'react-native-render-html'; +import { findAll } from 'domutils'; + +function isImgElement(node) { + return node.name === 'img'; +} + +function RenderSource({ html }) { + const [isDomReady, setIsDomReady] = useState(false); + // Let's use the TRE provided from the root of our app + // via TRenderEngineProvider to build the DOM + const engine = useAmbientTRenderEngine(); + const dom = useMemo(() => engine.parseDocument(html), [html, engine]); + // Use effect to inspect the DOM + useEffect(function inspectDom(){ + // Do any pre-rendering logic here + const images = findAll(isImgElement, dom, true); + // Do stuff with images such as preloading + // ... + // When preloading is done, set isDomReady to true! + setIsDomReady(true); + },[dom]); + return isDomReady ? + + : null; +} + +const html = \` +hello world! + +\` + +export default function App() { + return ( + + + + + + ); +}`; + +export default function PageGuideDomTampering() { + const { + Acronym, + Admonition, + Bold, + DList, + DListItem, + DListTitle, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefRenderHtmlProp, + RefHtmlAttr, + RefTRE, + RefDOM, + RefRenderHTMLExport, + RefDoc, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + This library offers rich integration with the {' '} + ecosystem. Thanks to the new , you can process + DOM nodes at parse time. It implies that the operation + doesn't require a tree traversal contrary to legacy versions, and thus + adds up very little overhead. + + + One important downside is that{' '} + a DOM node next sibling won't have been parsed yet. + However, the children and parent of this node are guaranteed to be + attached to this node. + +
    + + + The API offers one prop, , + which is a record of 3 optional fields: + + + + + + + Triggered when the root DOM has been + parsed, at the very end of the parsing phase. + + + + + + Triggered when a DOM has been parsed along + with its children. + + + + + + Triggered when a DOM node has been parsed + along with its content. + + + + Those callback should not return anything. Instead, you should change + the node or its children in place, or just read its content for + inspection purposes. + + + You are invited to use{' '} + {' '} + library to handle DOM querying and manipulation (see example below). + This library is already a direct dependency of . + +
    + +
    +
    + +
    +
    + +
    +
    + + + Two props can be used to ignore nodes.{' '} + is an array of lowercase + tags to exclude, and is a + function taking every parsed DOM node and offering you to reject it by + returning true. Both props are processed at + parse time. + +
    + + + When is invoked, the + passed node has not been attached to his parent yet. But the parent + is given as a second argument. + +
    +
    + + + This library provides prop + to select a subtree to render. See example below: + + + + When returns a falsy value, + the initial root will be selected. + + + + + In some scenarios, you might want to inspect the DOM{' '} + before rendering, and even perform asynchronous + operations based on your findings. Use cases might involve, for + example: + + + Fetching data from a Web API; + Pre-caching media assets. + + + + To do so, we will take advantage of the{' '} + + composite rendering architecture + {' '} + and the dom source feature: + + + Let's note a few important details in this example: + + + accepts all{' '} + component props pertaining + to the layer such as{' '} + ,{' '} + (all styling props) and DOM + related such as ,{' '} + + ... + + + accepts all{' '} + component props pertaining + to the layer such as{' '} + ,{' '} + ,{' '} + , ... + + + accepts all{' '} + RenderHTML component props pertaining to the + document such as ,{' '} + ,{' '} + + ... + + + The general recommendation for this three-layers rendering + architecture is that the engine and configuration should be put near + the top of your App to factor the cost of instantiating the engine. + This is especially usefuld for apps which will render hundreds to + thousands of small snippets such as chat apps. + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageGuideStylingComponents.tsx b/doc-tools/doc-pages/src/pages/PageGuideStylingComponents.tsx new file mode 100644 index 00000000..12b3ce83 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageGuideStylingComponents.tsx @@ -0,0 +1,216 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import { RenderHTMLProps } from 'react-native-render-html'; +import RefCssProcessor from '../components/RefCssProcessor'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; +import inlineStylesConfig from './cards/inlineStylesConfig'; + +const mixedStyleExample = `const tagsStyles = { + body: { + whiteSpace: 'normal', + color: 'gray' + }, + a: { + color: 'green' + } +}`; + +const mixedStyleRenderCard: RenderHTMLProps = { + source: { + html: ` +

    + Hello world! + A link! +

    +` + }, + tagsStyles: { + body: { + whiteSpace: 'normal', + color: 'gray' + }, + a: { + color: 'green' + } + } +}; + +export default function PageGuideStylingComponents() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + DList, + DListItem, + DListTitle, + Section, + SourceDisplay, + RefLibrary, + RefDoc, + RefRNSymbol, + RefHtmlElement, + RefHtmlAttr, + RefCssProperty, + RefRenderHtmlProp, + RefRenderHTMLExport, + RefTRE, + RefCSSProcessor, + RenderHtmlCard, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + You are kindly advised to read {' '} + before continuing. + +
    + + + Inline styles set via the HTML attribute + are processed by the library. You don't need to + wonder if a CSS property will break your app: the CSS processor acts + as a compatibility layer between React Native styles and CSS + properties. This library gives you leverage on inline CSS processing + via multiple props: + + + + + + Disable inline styles processing altogether. + + + + + Whitelist the camel-cased CSS properties that you wish to be + included. + + + + + + Blacklist the camel-cased CSS properties that you wish to be + excluded. + + + Let's try it out: + + + + + The component has four props + to customize elements styles: + + + + + + + The styles for the root component. Inheritable styles will be + inherited by all children. + + + + + + Target elements with the HTML attribute. + + + + + + Target elements with the HTML {' '} + attribute; + + + + + Target elements by tag name. + + + Each of these props is a record mapping identifiers with a{' '} + . + + + There is not (yet) ways to provide{' '} + + CSS selectors + {' '} + to target elements. Because it would require a full-featured CSS + parser to build an AST, this feature might be supported in the future + with an extension. + + + +
    + + A mixed style declaration is an object similar to{' '} + + 's create method argument values. However, + it supports a blend of React Native{' '} + ViewStyle,{' '} + TextStyle and camel-cased{' '} + + CSS properties + + . See for a complete reference. + + + + In the above snippet, mixed-style declarations are the objects + defined as values of the tagsStyles record. + A few important comments: + + + + Line 2. The will + always be present and can be confidently targeted, event when + missing in the HTML snippet. + + + Line 3. This is the default property, with the + exception of and a few other tags. + + + Line 4. Thanks to CSS inheritence, all textual + children of will default to this + property. + + + Line 7. The implements CSS + specificity. A rule targetting the {' '} + element will override rules defined for its ancestors (in this + case, + ). + + + + You should never provide styles from React Native{' '} + . These will not work. + +
    +
    + +
    +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageIntroduction.tsx b/doc-tools/doc-pages/src/pages/PageIntroduction.tsx new file mode 100644 index 00000000..b5e870a7 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageIntroduction.tsx @@ -0,0 +1,150 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import useToolkit from '../toolkit/useToolkit'; + +export default function PageIntroduction() { + const { + Acronym, + Bold, + Admonition, + Conditional, + Header, + Paragraph, + Chapter, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefDoc, + RefRenderHtmlProp, + RenderHtmlCard, + Section, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + + +
    + + + HTML markup is translated into React Native views. See the{' '} + page for more details. + + + Its design balances compliance to HTML and CSS standards with + lightweightness, despite some limitations and caveats. + + + It aims at being extremely customizable. For example, you can{' '} + define custom renderers{' '} + targetting specific tags with a mean to define children rendering, + provide{' '} + styles for tags, classes and ids + , and tamper with the DOM. + + +
    +
    + + + If your use-case is pretty straightforward, you might implement{' '} + + your own, lightweight HTML renderer. + + + + This is not a Web engine! If you need to load JavaScript along, or + you need all features of the Web standards, you should use{' '} + {' '} + instead. Beware that it will certainly have a bigger impact on + your App's performances, since it will use the system's Web View. + + +
    +
    + + + The best use case for library is when the content to render is + predictable (e.g. you know in advance the tags and classes to + support), such as rendering content from a CMS, or via API + endpoints. + + + You might also benefit from this library if you need to render + sections of a web page such as articles which content is + reasonably predictable, (see{' '} + + Root Selection + {' '} + to select an element of the DOM to render). + + + You should probably not use this library if you need to render + arbitrary, unpredictable content. + + +
    +
    + + + Install react-native-render-html Foundry + release (v6) on your project: + + + + + Let's start with a simple example: + + Hello World! +

    ` + } + }} + /> + + + Press the Run on Your Device with Expo button to try it + out on your device, and change the HTML from the Expo editor. + + + Inspect the pre-render tree representation with the{' '} + TRT Snapshot tab. + + + + The prop specifies the HTML + content to load. This prop also supports an{' '} + uri field for remote loading and a{' '} + dom field for asynchronous DOM pre-processing + (see{' '} + + Prerendering + + ). + + + The prop allows proper image + scaling. See page for more details. + +
    +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/PageReinventTheWheel.tsx b/doc-tools/doc-pages/src/pages/PageReinventTheWheel.tsx new file mode 100644 index 00000000..229c6800 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/PageReinventTheWheel.tsx @@ -0,0 +1,204 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React from 'react'; +import Page from '../Page'; +import RefHtmlparser2 from '../components/RefHtmlparser2'; +import useToolkit from '../toolkit/useToolkit'; + +const minimalHtmlRenderer = `import {Text, View} from 'react-native'; +import {parseDocument, ElementType} from 'htmlparser2'; +import React, {PureComponent} from 'react'; + +export default class RenderHtml extends PureComponent { + ignoredTags = ['head']; + textTags = ['span', 'strong', 'em']; + + renderTextNode(textNode, index) { + return {textNode.data}; + } + + renderElement(element, index) { + if (this.ignoredTags.indexOf(element.name) > -1) { + return null; + } + const Wrapper = this.textTags.indexOf(element.name) > -1 ? Text : View; + return ( + + {element.children.map((c, i) => this.renderNode(c, i))} + + ); + } + + renderNode(node, index) { + switch (node.type) { + case ElementType.Text: + return this.renderTextNode(node, index); + case ElementType.Tag: + return this.renderElement(node, index); + } + return null; + } + + render() { + const document = parseDocument(this.props.html); + return document.children.map((c, i) => this.renderNode(c, i)); + } +}`; + +export default function PageReinventTheWheel() { + const { + Acronym, + Admonition, + Bold, + Header, + Paragraph, + Chapter, + Section, + SourceDisplay, + RefLibrary, + RefRNSymbol, + RefHtmlElement, + RefCssProperty, + RefDoc, + RefRenderHtmlProp, + RenderHtmlCard, + InlineCode, + Hyperlink, + List, + ListItem, + SvgFigure + } = useToolkit(); + return ( + +
    + + To understand how this library works, we propose a teeny, tiny + implementation of an HTML renderer in just about{' '} + 40 lines of code. Of course, it has many limitations that + are overcomed by react-native-render-html, + but it will give you a good glimpse at how things work internally. + +
    + + + To do so, we will need an HTML parsing library which will give us some + sort of proxy DOM representation of the HTML source. In this very + example, we will use library: + + + + Below is an overview of the component's{' '} + render method invocation: + + + + Line 36 invokes parseDocument{' '} + from which returns the root DOM node of the + document. + + + Line 37 returns the mapping of the root's children with + the result of renderNode method. + + + Line 25, the renderNode method + returns: the result of renderTextNode when + provided with a DOM Text node, the result + of renderElement when the provided node is + an Element, and{' '} + null otherwise, such as when the provided + node is a comment, script, or stylesheet. + + + + Although the renderTextNode implementation is + pretty straightforward,{' '} + renderElement has some conditional logic to + render the element either in a React Native{' '} + or . This is to + bypass rendering glitches when embedding {' '} + inside , such as discussed in more details + in the below section (hoisting). + + + We allude to the DOM an DOM nodes while only + provides a subset of the DOM API for lightweightness! + + + + + Perhaps your requirements are so simple that this might actually be + sufficient for your use-case. You could try to extend this naive + implementation with the below, easy to implement features: + + + + Add custom renderers for specific tags such as{' '} + , + ... + + Add styles for specific tags and classes. + + + However, you will get involved in a much substantial and complex task + if you have requirements such as:{' '} + + + + Support{' '} + + inline styles + + . You would need to transform those styles into React Native + compatible styles. Beware that unsupported styles on the native side + could easily crash your app. + + + Support{' '} + + whitespace collapsing + {' '} + such as in CSS property. + + + Support{' '} + + URL resolutions + + , such as relative URLs, elements... + etc. + + + Support{' '} + + hoisting + + . Because React Native elements are not + well handled inside elements, these + should be hoisted up in the tree to be rendered inside{' '} + Views. + + + Support complete{' '} + + CSS inheritance + + . For example, a element could have a + style with text properties such as , + but a React Native element which is the + default mapping for will not support + such style property. See page. + + + + react-native-render-html overcomes all of + those caveats and more out of the box! + + +
    + ); +} diff --git a/doc-tools/doc-pages/src/pages/cards/adsRenderersConfig.tsx b/doc-tools/doc-pages/src/pages/cards/adsRenderersConfig.tsx new file mode 100644 index 00000000..599ae9e7 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/adsRenderersConfig.tsx @@ -0,0 +1,103 @@ +import React from 'react'; +import { + CustomBlockRenderer, + RenderHTMLProps, + TChildrenRenderer +} from 'react-native-render-html'; +import { View, Text } from 'react-native'; +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +function AdComponent() { + return ( + + 😈🤑😈🤑😈🤑 + + ); +} + +const adComponentSrc = `function AdComponent() { + return ( + + 😈🤑😈🤑😈🤑 + + ); +}`; + +const Renderer: CustomBlockRenderer = function ArticleWithAds({ + TDefaultRenderer, + tnode, + ...defaultRendererProps +}) { + const firstChildrenChunk = tnode.children.slice(0, 2); + const secondChildrenChunk = tnode.children.slice(2, 4); + const thirdChildrenChunk = tnode.children.slice(4); + return ( + + + {firstChildrenChunk.length === 2 ? : null} + + {secondChildrenChunk.length === 2 ? : null} + + + ); +}; + +const articleWithAdsSource = `function ArticleWithAds({ + TDefaultRenderer, + tnode, + ...defaultRendererProps +}) { + const firstChildrenChunk = tnode.children.slice(0, 2); + const secondChildrenChunk = tnode.children.slice(2, 4); + const thirdChildrenChunk = tnode.children.slice(4); + return ( + + + {firstChildrenChunk.length === 2 ? : null} + + {secondChildrenChunk.length === 2 ? : null} + + + ); +}`; + +const props: RenderHTMLProps = { + source: { + html: `
    +

    Paragraph 1

    +

    Paragraph 2

    +

    Paragraph 3

    +

    Paragraph 4

    +

    Paragraph 5

    +
    ` + }, + tagsStyles: { + article: { + marginHorizontal: 10 + } + }, + renderers: { + article: Renderer + } +}; + +const adsRenderersConfig: UIRenderHtmlCardProps = { + title: 'Inserting Elements at Render Time', + caption: + 'A custom renderer taking advantage of "TChildrenRenderer" component. When "TDefaultRenderer" is given children, those will replace the default children rendering logic, allowing great customizability.', + props, + config: { + importStatements: [ + { package: 'react-native', named: ['View', 'Text'] }, + { package: 'react-native-render-html', named: ['TChildrenRenderer'] } + ], + fnSrcMap: { + AdComponent: adComponentSrc, + ArticleWithAds: articleWithAdsSource + } + } +}; + +export default adsRenderersConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/anchorsBlockConfig.tsx b/doc-tools/doc-pages/src/pages/cards/anchorsBlockConfig.tsx new file mode 100644 index 00000000..ebceedcd --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/anchorsBlockConfig.tsx @@ -0,0 +1,20 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ` + This text can be clicked. + + An the image too! +`; + +const anchorsBlockConfig: UIRenderHtmlCardProps = { + title: 'Block Anchor Example', + caption: '', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default anchorsBlockConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/anchorsCustomConfig.tsx b/doc-tools/doc-pages/src/pages/cards/anchorsCustomConfig.tsx new file mode 100644 index 00000000..ec6c1024 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/anchorsCustomConfig.tsx @@ -0,0 +1,40 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import { Alert } from 'react-native'; + +const html = ` + A link to MDN! +`; + +function onPress(event: any, href: string) { + Alert.alert(`You just pressed ${href}`); +} + +const onPressSrc = `function onPress(event, href) { + Alert.alert(\`You just pressed \${href}\`); +}`; + +const anchorsCustomConfig: UIRenderHtmlCardProps = { + title: 'Customizing Anchor Behavior', + caption: '', + props: { + source: { + html + }, + renderersProps: { + a: { + onPress + } + } + }, + preferHtmlSrc: false, + config: { + importStatements: [{ package: 'react-native', named: ['Alert'] }], + fnSrcMap: { + onPress: onPressSrc + } + } +}; + +export default anchorsCustomConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/anchorsMinimalConfig.tsx b/doc-tools/doc-pages/src/pages/cards/anchorsMinimalConfig.tsx new file mode 100644 index 00000000..ba9c95e6 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/anchorsMinimalConfig.tsx @@ -0,0 +1,19 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ` + A link to MDN! +`; + +const anchorsMinimalConfig: UIRenderHtmlCardProps = { + title: 'Minimal Anchor Example', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default anchorsMinimalConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/anchorsRelativeConfig.tsx b/doc-tools/doc-pages/src/pages/cards/anchorsRelativeConfig.tsx new file mode 100644 index 00000000..ec55aa86 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/anchorsRelativeConfig.tsx @@ -0,0 +1,34 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ` + + + + +
    + +
    + +`; + +const anchorsRelativeConfig: UIRenderHtmlCardProps = { + title: 'Relative URLs Resolution Example', + caption: + 'Press any of the anchors and notice that the URL is being normalized from the base URL.', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default anchorsRelativeConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/bluecircleConfig.tsx b/doc-tools/doc-pages/src/pages/cards/bluecircleConfig.tsx new file mode 100644 index 00000000..fd3158b2 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/bluecircleConfig.tsx @@ -0,0 +1,51 @@ +import { HTMLContentModel, HTMLElementModel } from 'react-native-render-html'; +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ''; + +const bluecircleConfig: UIRenderHtmlCardProps = { + title: 'A Custom Tag Example', + caption: + 'A Custom Tag rendered by defining an element model for this tag via HTMLElementModel.fromCustomModel.', + props: { + source: { html }, + customHTMLElementModels: { + 'blue-circle': HTMLElementModel.fromCustomModel({ + tagName: 'blue-circle', + mixedUAStyles: { + width: 50, + height: 50, + borderRadius: 25, + alignSelf: 'center', + backgroundColor: 'blue' + }, + contentModel: HTMLContentModel.block + }) + } + }, + config: { + importStatements: [ + { + package: 'react-native-render-html', + named: ['HTMLElementModel', 'HTMLContentModel'] + } + ], + exprSrcMap: { + customHTMLElementModels: `{ + 'blue-circle': HTMLElementModel.fromCustomModel({ + tagName: 'blue-circle', + mixedUAStyles: { + width: 50, + height: 50, + borderRadius: 25, + alignSelf: 'center', + backgroundColor: 'blue' + }, + contentModel: HTMLContentModel.block + }) + }` + } + } +}; + +export default bluecircleConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/cssInheritanceConfig.tsx b/doc-tools/doc-pages/src/pages/cards/cssInheritanceConfig.tsx new file mode 100644 index 00000000..3a91e0b6 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/cssInheritanceConfig.tsx @@ -0,0 +1,18 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `
    + This text is centered! +
    `; + +const cssInheritanceConfig: UIRenderHtmlCardProps = { + title: 'CSS Inheritance Example', + caption: '', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default cssInheritanceConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/customImageRendererConfig.tsx b/doc-tools/doc-pages/src/pages/cards/customImageRendererConfig.tsx new file mode 100644 index 00000000..d08939e1 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/customImageRendererConfig.tsx @@ -0,0 +1,108 @@ +import React, { ReactNode } from 'react'; +import { View, ActivityIndicator } from 'react-native'; +import { + IMGElementContainer, + IMGElementContentError, + useIMGElementProps, + useIMGElementState, + CustomBlockRenderer, + IMGElementStateLoading, + IMGElementStateSuccess +} from 'react-native-render-html'; +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ''; + +function IMGElementContentLoading({ + dimensions, + altColor +}: IMGElementStateLoading | IMGElementStateSuccess) { + return ( + + + + ); +} + +const Renderer: CustomBlockRenderer = function CustomImageRenderer(props) { + const imgElementProps = useIMGElementProps(props); + const state = useIMGElementState(imgElementProps); + let content: ReactNode = false; + if (state.type === 'error') { + content = React.createElement(IMGElementContentError, state); + // } else if (state.type === 'success') { + // content = React.createElement(IMGElementContentSuccess, state); + } else { + content = React.createElement(IMGElementContentLoading, state as any); + } + return ( + + {content} + + ); +}; + +const imgElementContentLoadingSrc = `function IMGElementContentLoading({ dimensions, altColor }) { + const loadingStyles = { justifyContent: 'center', alignItems: 'center' }; + return ( + + + + ); +}`; + +const customImageRendererSrc = `function CustomImageRenderer( + props +) { + const imgElementProps = useIMGElementProps(props); + const state = useIMGElementState(imgElementProps); + let content: ReactNode = false; + if (state.type === 'error') { + content = React.createElement(IMGElementContentError, state); + } else { + content = React.createElement(IMGElementContentLoading, state); + } + return ( + + {content} + + ); +}`; + +const customImageRendererConfig: UIRenderHtmlCardProps = { + title: 'A Custom Tag Example', + caption: + 'A Custom image renderer which renders a spinner on "loading" and "success" states.', + props: { + source: { html }, + renderers: { + img: Renderer + } + }, + config: { + importStatements: [ + { package: 'react-native', named: ['View', 'ActivityIndicator'] }, + { + package: 'react-native-render-html', + named: [ + 'IMGElementContainer', + 'IMGElementContentError', + 'IMGElementContentSuccess', + 'useIMGElementProps', + 'useIMGElementState' + ] + } + ], + fnSrcMap: { + IMGElementContentLoading: imgElementContentLoadingSrc, + CustomImageRenderer: customImageRendererSrc + } + } +}; + +export default customImageRendererConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/customListRussianConfig.tsx b/doc-tools/doc-pages/src/pages/cards/customListRussianConfig.tsx new file mode 100644 index 00000000..220269b1 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/customListRussianConfig.tsx @@ -0,0 +1,46 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import CounterStyle from '@jsamr/counter-style'; + +const lowerRussian = CounterStyle.alphabeticFromUnicodeRange( + 0x430, // а + 28 +).withSuffix(') '); + +const html = `
      +
    • One
    • +
    • Two
    • +
    • Three
    • +
    • Four
    • +
    • Five
    • +
    • Six
    • +
    • Seven
    • +
    • Eight
    • +
    `; + +const customListRussianConfig: UIRenderHtmlCardProps = { + title: 'Creating a List Style Type', + props: { + source: { + html + }, + customListStyleSpecs: { + 'lower-russian': { + type: 'textual', + counterStyleRenderer: lowerRussian + } + } + }, + config: { + importStatements: [ + { package: '@jsamr/counter-style', default: 'CounterStyle' } + ], + exprSrcMap: { + counterStyleRenderer: `CounterStyle.alphabeticFromUnicodeRange( + 0x430, // а + 28 // number of chars in alphabet + ).withSuffix(') ')` + } + } +}; + +export default customListRussianConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/customListThaiConfig.tsx b/doc-tools/doc-pages/src/pages/cards/customListThaiConfig.tsx new file mode 100644 index 00000000..0c682741 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/customListThaiConfig.tsx @@ -0,0 +1,41 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import thaiCounterStyle from '@jsamr/counter-style/presets/thai'; + +const html = `
      +
    • One
    • +
    • Two
    • +
    • Three
    • +
    • Four
    • +
    • Five
    • +
    • Six
    • +
    • Seven
    • +
    • Eight
    • +
    `; + +const customListThaiConfig: UIRenderHtmlCardProps = { + title: 'Thai List Style Type', + props: { + source: { + html + }, + customListStyleSpecs: { + thai: { + type: 'textual', + counterStyleRenderer: thaiCounterStyle + } + } + }, + config: { + importStatements: [ + { + package: '@jsamr/counter-style/presets/thai', + default: 'thaiCounterStyle' + } + ], + exprSrcMap: { + counterStyleRenderer: 'thaiCounterStyle' + } + } +}; + +export default customListThaiConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/fontSelectionArial.tsx b/doc-tools/doc-pages/src/pages/cards/fontSelectionArial.tsx new file mode 100644 index 00000000..67b59b71 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/fontSelectionArial.tsx @@ -0,0 +1,24 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. +

    `; + +const fontSelectionArial: UIRenderHtmlCardProps = { + title: 'Arial Font Selection', + caption: + 'This paragraph font family is set to "Arial" (will match on iOS, MacOS and Windows) and should fallback to sans-serif otherwise.', + props: { + source: { + html + }, + enableExperimentalMarginCollapsing: true + }, + preferHtmlSrc: true +}; + +export default fontSelectionArial; diff --git a/doc-tools/doc-pages/src/pages/cards/fontSelectionCourierNewConfig.tsx b/doc-tools/doc-pages/src/pages/cards/fontSelectionCourierNewConfig.tsx new file mode 100644 index 00000000..fb0254cc --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/fontSelectionCourierNewConfig.tsx @@ -0,0 +1,24 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. +

    `; + +const fontSelectionCourierNewConfig: UIRenderHtmlCardProps = { + title: 'Courier New Font Selection', + caption: + 'This paragraph font family is set to "Courier New" (will match on iOS, MacOS and Windows) and should fallback to monospace otherwise.', + props: { + source: { + html + }, + enableExperimentalMarginCollapsing: true + }, + preferHtmlSrc: true +}; + +export default fontSelectionCourierNewConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/fontSelectionSpaceMonoConfig.tsx b/doc-tools/doc-pages/src/pages/cards/fontSelectionSpaceMonoConfig.tsx new file mode 100644 index 00000000..c67a16f5 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/fontSelectionSpaceMonoConfig.tsx @@ -0,0 +1,56 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import { defaultSystemFonts } from 'react-native-render-html'; + +const html = `

    + Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. +

    `; + +const fontLoaderSrc = `function FontLoader({ children }){ + const [fontsLoaded] = useFonts({ + 'space-mono': SpaceMono_400Regular, + }); + if (!fontsLoaded) { + return null; + } + return <>{children}; +}`; + +const fontSelectionSpaceMonoConfig: UIRenderHtmlCardProps = { + title: 'Space Mono Font Selection', + caption: + 'This paragraph font family is set to "Space Mono", which is loaded with Expo font loading helpers and registered via systemFonts prop.', + props: { + source: { + html + }, + enableExperimentalMarginCollapsing: true, + systemFonts: ['space-mono', ...defaultSystemFonts] + }, + config: { + importStatements: [ + { + package: 'react-native-render-html', + named: ['defaultSystemFonts'] + }, + { + package: '@expo-google-fonts/space-mono', + named: ['useFonts', 'SpaceMono_400Regular'] + } + ], + fnSrcMap: { + FontLoader: fontLoaderSrc, + onTTreeChange: '' + }, + exprSrcMap: { + systemFonts: '["space-mono", ...defaultSystemFonts]' + }, + wrapperComponent: 'FontLoader' + }, + preferHtmlSrc: false +}; + +export default fontSelectionSpaceMonoConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/ghostLineFixConfig.tsx b/doc-tools/doc-pages/src/pages/cards/ghostLineFixConfig.tsx new file mode 100644 index 00000000..1026f49c --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/ghostLineFixConfig.tsx @@ -0,0 +1,22 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + + +

    +`; + +const ghostLineFixConfig: UIRenderHtmlCardProps = { + title: 'Ghost lines fix', + caption: + 'enableExperimentalGhostLinePrevention prop will attempt to prevent this odd behavior, including with multiple empty tags and whitespaces.', + props: { + source: { + html + }, + enableExperimentalGhostLinesPrevention: true + }, + preferHtmlSrc: true +}; + +export default ghostLineFixConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/ghostLineOddityConfig.tsx b/doc-tools/doc-pages/src/pages/cards/ghostLineOddityConfig.tsx new file mode 100644 index 00000000..9314b36d --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/ghostLineOddityConfig.tsx @@ -0,0 +1,20 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + +

    +`; + +const ghostLineOddityConfig: UIRenderHtmlCardProps = { + title: 'Ghost lines in React Native', + caption: + 'The span element is rendered as an empty Text, but it takes vertical space, approximately 20dpi, independent of font size and line height.', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default ghostLineOddityConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/ignoreDomNodeConfig.tsx b/doc-tools/doc-pages/src/pages/cards/ignoreDomNodeConfig.tsx new file mode 100644 index 00000000..27b94592 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/ignoreDomNodeConfig.tsx @@ -0,0 +1,47 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import { isTag } from 'domutils'; +import type { Node, NodeWithChildren } from 'react-native-render-html'; + +const html = ` +

    + you're a noisy one, aren't you? + Can you see the anchor? It has been ignored! +

    +`; + +const ignoreDomNodeSrc = `function ignoreDomNode(node, parent) { + // remove anchors children of

    elements + return ( + isTag(node) && node.name === 'a' && parent.name === 'p' + ); +}`; + +function ignoreDomNode(node: Node, parent: NodeWithChildren) { + // remove anchors children of

    elements + return ( + isTag(node) && node.name === 'a' && isTag(parent) && parent.name === 'p' + ); +} + +const ignoreDomNodeConfig: UIRenderHtmlCardProps = { + title: 'Removing DOM nodes conditionally', + caption: + "Usage of ignoreDomNode to remove anchors children of

    elements. Notice that the second argument to ignoreDomNode function is used to perform assertions on the parent. Don't use node.parent since the node hasn't been attached yet.", + props: { + source: { html }, + ignoreDomNode + }, + config: { + importStatements: [ + { + package: 'domutils', + named: ['isTag'] + } + ], + fnSrcMap: { + ignoreDomNode: ignoreDomNodeSrc + } + } +}; + +export default ignoreDomNodeConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/imagesWithHeadersConfig.tsx b/doc-tools/doc-pages/src/pages/cards/imagesWithHeadersConfig.tsx new file mode 100644 index 00000000..7ca9cdc9 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/imagesWithHeadersConfig.tsx @@ -0,0 +1,40 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ``; + +function provideEmbeddedHeaders(uri: string, tagName: string) { + if (tagName === 'img') { + return { + Authorization: 'Bearer XYZ' + }; + } +} + +const imagesWithHeadersConfig: UIRenderHtmlCardProps = { + title: 'Providing headers to images', + caption: + 'provideEmbeddedHeaders lets you pick headers for specific domains and works with multiple tags. For example, it can be used with the iframe plugin.', + props: { + source: { + html + }, + provideEmbeddedHeaders + }, + preferHtmlSrc: false, + config: { + importStatements: [ + { package: 'react-native', named: ['Platform', 'PixelRatio'] } + ], + fnSrcMap: { + provideEmbeddedHeaders: `function provideEmbeddedHeaders(uri, tagName) { + if (tagName === 'img') { + return { + Authorization: "Bearer XYZ", + }; + } +}` + } + } +}; + +export default imagesWithHeadersConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/inlineImagesConfig.tsx b/doc-tools/doc-pages/src/pages/cards/inlineImagesConfig.tsx new file mode 100644 index 00000000..b4750e92 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/inlineImagesConfig.tsx @@ -0,0 +1,44 @@ +import { + HTMLContentModel, + defaultHTMLElementModels +} from 'react-native-render-html'; +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + Those are inline images!

    + before +   +   + after +

    `; + +const inlineImagesConfig: UIRenderHtmlCardProps = { + title: 'Customizing Content Model', + caption: + 'A usage of customHTMLElementModels prop to change the content model of tags thanks to "extend" method of HTMLElementModel.', + props: { + source: { html }, + customHTMLElementModels: { + img: defaultHTMLElementModels.img.extend({ + contentModel: HTMLContentModel.mixed + }) + } + }, + config: { + importStatements: [ + { + package: 'react-native-render-html', + named: ['HTMLContentModel', 'defaultHTMLElementModels'] + } + ], + exprSrcMap: { + customHTMLElementModels: `{ + img: defaultHTMLElementModels.img.extend({ + contentModel: HTMLContentModel.mixed + }) + }` + } + } +}; + +export default inlineImagesConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/inlineStylesConfig.tsx b/doc-tools/doc-pages/src/pages/cards/inlineStylesConfig.tsx new file mode 100644 index 00000000..21f69019 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/inlineStylesConfig.tsx @@ -0,0 +1,19 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = `

    + + Hello world! + +

    `; + +const inlineStylesConfig: UIRenderHtmlCardProps = { + title: 'Minimal Inline Styles Example', + props: { + source: { + html + } + }, + preferHtmlSrc: true +}; + +export default inlineStylesConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/insertingElementConfig.tsx b/doc-tools/doc-pages/src/pages/cards/insertingElementConfig.tsx new file mode 100644 index 00000000..20f62c06 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/insertingElementConfig.tsx @@ -0,0 +1,76 @@ +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; +import { prependChild } from 'domutils'; +import { Element } from 'domhandler'; + +const html = ` +
    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore + eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat non proident, sunt in culpa qui officia + deserunt mollit anim id est laborum. +

    +
    +`; + +function onElement(element: Element) { + // Add an image extracted from data-cover-src + // attr as first child of every article. + if (element.tagName === 'article') { + const cover = element.attribs['data-cover-src']; + if (cover) { + const img = new Element('img', { + src: cover + }); + prependChild(element, img); + } + } +} + +const onElementSrc = `function onElement(element) { + // Add an image extracted from data-cover-src + // attr as first child of every article. + if (element.tagName === 'article') { + const cover = element.attribs['data-cover-src']; + if (cover) { + const img = new Element('img', { + src: cover + }); + prependChild(element, img); + } + } +}`; + +const insertingElementConfig: UIRenderHtmlCardProps = { + title: 'DOM Visitor to Insert Content', + caption: + 'Usage of domVisitors.onElement to insert an element at the top of every article thanks to "prependChild" function from domutils. The source is extracted from the "data-cover-src" attribute of the article element.', + props: { + source: { html }, + domVisitors: { + onElement + } + }, + config: { + importStatements: [ + { + package: 'domutils', + named: ['prependChild'] + }, + { + package: 'domhandler', + named: ['Element'] + } + ], + fnSrcMap: { + onElement: onElementSrc + } + } +}; + +export default insertingElementConfig; diff --git a/doc-tools/doc-pages/src/pages/cards/internalImageRendererConfig.tsx b/doc-tools/doc-pages/src/pages/cards/internalImageRendererConfig.tsx new file mode 100644 index 00000000..b6c31601 --- /dev/null +++ b/doc-tools/doc-pages/src/pages/cards/internalImageRendererConfig.tsx @@ -0,0 +1,96 @@ +import React, { useState } from 'react'; +import { Modal, Button, Text, View } from 'react-native'; +import { + CustomBlockRenderer, + useInternalRenderer +} from 'react-native-render-html'; +import { UIRenderHtmlCardProps } from '../../toolkit/toolkit-types'; + +const html = ''; + +const CustomRenderer: CustomBlockRenderer = function CustomImageRenderer( + props +) { + const { Renderer, rendererProps } = useInternalRenderer('img', props); + const [isModalOpen, setIsModalOpen] = useState(false); + const onPress = () => setIsModalOpen(true); + const onModalClose = () => setIsModalOpen(false); + const uri = rendererProps.source.uri!; + const thumbnailSource = { + ...rendererProps.source, + // You could change the uri here, for example to provide a thumbnail. + uri: uri.replace('1200', '300').replace('800', '200') + }; + return ( + + + + + A full resolution image! +