diff --git a/.env.jungle b/.env.jungle index d0218c9d..98d366dc 100644 --- a/.env.jungle +++ b/.env.jungle @@ -26,7 +26,7 @@ HAPI_EOS_BASE_ACCOUNT=baseaccount HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -45,27 +45,37 @@ HAPI_COINGECKO_API_TOKEN_ID=eos HAPI_REWARDS_TOKEN=EOS HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name REACT_APP_TITLE=EOS Jungle Testnet Network Dashboard -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/QmfQSA2Qnd6hF1dmnBcTaynp1723PAzY3CdMxeWz8yEdt3 +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/jungle.jpg REACT_APP_FOOTER_LINKS=[{"text":"Website","src":"https://jungletestnet.io/"},{"text":"Block Explorer","src":"https://jungle3.bloks.io"},{"text":"Developer Guidelines","src":"https://guide.eoscostarica.io"},{"text":"GitHub","src":"https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK=https://jungle.eosrate.io:8080 REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true -REACT_APP_USE_CPU_BENCHMARK=true +REACT_APP_USE_CPU_BENCHMARK=false REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=jungle REACT_APP_EOS_API_NETWORK_LABEL=Jungle -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/QmfQSA2Qnd6hF1dmnBcTaynp1723PAzY3CdMxeWz8yEdt3 +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/jungle.jpg REACT_APP_EOS_API_HOST=jungle.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https -REACT_APP_EOS_CHAIN_ID=2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840 +REACT_APP_EOS_CHAIN_ID=73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d REACT_APP_EOS_USE_BP_JSON_ON_CHAIN=false REACT_APP_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson @@ -76,4 +86,5 @@ REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution"] REACT_APP_BLOCK_EXPLORER_URL=https://jungle3.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 -REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key \ No newline at end of file +REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.lacchain b/.env.lacchain index 47aa4313..f572328d 100644 --- a/.env.lacchain +++ b/.env.lacchain @@ -20,7 +20,7 @@ HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # hapi HAPI_EOS_API_NETWORK_NAME=lacchain -HAPI_EOS_API_ENDPOINT=https://lacchain.eosio.cr +HAPI_EOS_API_ENDPOINT=https://lacchain.edenia.cloud HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT=ws://observer.eosio.cr:8888 HAPI_EOS_API_CHAIN_ID=5821525c6588037e2b066b992fcac34909a5b7f1ea8d5a393f6720fca3750d61 HAPI_EOS_BASE_ACCOUNT=baseaccount @@ -28,7 +28,7 @@ HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechanics HAPI_EOS_MECHANICS_PASSWORD=PW... HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION={"account":"writer","name":"run","authorization":[{"actor":"costarica","permission":"writer"}],"data":{}} -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -43,25 +43,37 @@ HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= +HAPI_SYNC_EXCHANGE_RATE= +HAPI_EOS_EXCHANGE_RATE_API= +HAPI_COINGECKO_API_TOKEN_ID= +HAPI_REWARDS_TOKEN= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name REACT_APP_TITLE=LACChain Network Dashboard -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/QmS5XzgSEAubehxZVwiHnaLpo3Pv2E5yeEPBhhv6JWSKHE +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/lacchain.jpg REACT_APP_FOOTER_LINKS=[{"text":"LACChain Website","src":"https://www.lacchain.net"},{"text":"Block Explorer","src":"https://explorer.latamlink.io"},{"text":"Developer Guidelines","src":"https://guide.eoscostarica.io"},{"text":"Documentation","src":"https://latamlink.io/docs/eosio"},{"text":"GitHub","src":"https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=false REACT_APP_USE_VOTES=false REACT_APP_USE_CPU_BENCHMARK=true REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=false -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=lacchain REACT_APP_EOS_API_NETWORK_LABEL=LACChain -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/QmdfvY1gJk688Sxd7iTg6Dbd5VQTv9Mr1M21Fo7nvJapRv +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/lacchain.jpg REACT_APP_EOS_INCLUDE_TRANSACTION={"account":"writer","name":"run","authorization":[{"actor":"costarica","permission":"writer"}],"data":{}} -REACT_APP_EOS_API_HOST=lacchain.eosio.cr +REACT_APP_EOS_API_HOST=lacchain.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https REACT_APP_EOS_CHAIN_ID=5821525c6588037e2b066b992fcac34909a5b7f1ea8d5a393f6720fca3750d61 diff --git a/.env.libre b/.env.libre new file mode 100644 index 00000000..f31e9188 --- /dev/null +++ b/.env.libre @@ -0,0 +1,89 @@ +# global +STAGE=dev +APP_NAME=eosio-dashboard + +# wallet +WALLET_DATA=./wallet_data + +# postgres +POSTGRES_USER=eoscr +POSTGRES_PASSWORD=password +POSTGRES_DB=localdb +POSTGRES_DATA=./db_data + +# hasura +HASURA_GRAPHQL_ENABLE_CONSOLE=true +HASURA_GRAPHQL_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb +HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey +HASURA_GRAPHQL_UNAUTHORIZED_ROLE=guest +HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 + +# hapi +HAPI_EOS_API_NETWORK_NAME=libre +HAPI_EOS_API_ENDPOINT=https://libre.edenia.cloud +HAPI_EOS_API_CHAIN_ID=38b1d7815474d0c60683ecbea321d723e83f5da6ae5f1c1f9fecc69d9ba96465 +HAPI_EOS_BASE_ACCOUNT=baseaccount +HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... +HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero +HAPI_EOS_MECHANICS_PASSWORD=PW... +HAPI_EOS_WALLET_URL=http://localhost:8888 +HAPI_EOS_BP_JSON_ON_CHAIN=false +HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson +HAPI_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson +HAPI_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson +HAPI_HASURA_URL=http://hasura:8080/v1/graphql +HAPI_HASURA_ADMIN_SECRET=myadminsecretkey +HAPI_SERVER_PORT=9090 +HAPI_SERVER_ADDRESS=hapi +HAPI_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb +HAPI_SYNC_PRODUCERS_INTERVAL=86400 +HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 +HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 +HAPI_SYNC_EXCHANGE_RATE=86400 +HAPI_EOS_EXCHANGE_RATE_API=https://api.coingecko.com/api/v3/simple/price?ids=proton&vs_currencies=usd +HAPI_COINGECKO_API_TOKEN_ID=BTC +HAPI_REWARDS_TOKEN=LIBRE +HAPI_SYNC_STATS_INTERVAL=60 +HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_CREATE_ACCOUNT_ACTION_NAME=newaccount +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= + +#webapp +PORT=3000 +REACT_APP_TITLE=Libre Network Dashboard +REACT_APP_VERSION=dev +REACT_APP_NAME=$npm_package_name +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/libre.png +REACT_APP_FOOTER_LINKS=[{ "text": "Bitcoin Libre Website", "src": "https://libre.org/" },{ "text": "Libre Block Explorer", "src": "https://libre-explorer.edenia.cloud/" },{"text": "Documentation","src": "https://libre-chain.gitbook.io/"},{"text": "Libre Network Monitor","src": "https://libre.eosio.online"}] +REACT_APP_EOS_RATE_LINK= +REACT_APP_USE_REWARDS=false +REACT_APP_USE_VOTES=false +REACT_APP_USE_CPU_BENCHMARK=false +REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql +REACT_APP_EOS_API_NETWORK_NAME=libre +REACT_APP_EOS_API_NETWORK_LABEL=Libre Mainnet +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/libre.png +REACT_APP_EOS_API_HOST=libre.edenia.cloud +REACT_APP_EOS_API_PORT=443 +REACT_APP_EOS_API_PROTOCOL=https +REACT_APP_EOS_CHAIN_ID=38b1d7815474d0c60683ecbea321d723e83f5da6ae5f1c1f9fecc69d9ba96465 +REACT_APP_EOS_USE_BP_JSON_ON_CHAIN=false +REACT_APP_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson +REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson +REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson +REACT_APP_TOKEN_SYMBOL=LIBRE +REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks", "/cpu-benchmark","/block-distribution"] +REACT_APP_BLOCK_EXPLORER_URL=https://bloks.io/transaction/(transaction) +REACT_APP_STATE_HISTORY_ENABLED=false +REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 +REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.libretestnet b/.env.libretestnet new file mode 100644 index 00000000..ddbeb0bd --- /dev/null +++ b/.env.libretestnet @@ -0,0 +1,92 @@ +# global +STAGE=dev +APP_NAME=eosio-dashboard + +# wallet +WALLET_DATA=./wallet_data + +# postgres +POSTGRES_USER=eoscr +POSTGRES_PASSWORD=password +POSTGRES_DB=localdb +POSTGRES_DATA=./db_data + +# hasura +HASURA_GRAPHQL_ENABLE_CONSOLE=true +HASURA_GRAPHQL_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb +HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey +HASURA_GRAPHQL_UNAUTHORIZED_ROLE=guest +HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 + +# hapi +HAPI_EOS_API_NETWORK_NAME=lilbre +HAPI_EOS_API_ENDPOINT=https://libre-testnet.edenia.cloud +HAPI_EOS_API_CHAIN_ID=b64646740308df2ee06c6b72f34c0f7fa066d940e831f752db2006fcc2b78dee +HAPI_EOS_BASE_ACCOUNT=baseaccount +HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... +HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero +HAPI_EOS_MECHANICS_PASSWORD=PW... +HAPI_EOS_WALLET_URL=http://localhost:8888 +HAPI_EOS_BP_JSON_ON_CHAIN=false +HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson +HAPI_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson +HAPI_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson +HAPI_HASURA_URL=http://hasura:8080/v1/graphql +HAPI_HASURA_ADMIN_SECRET=myadminsecretkey +HAPI_SERVER_PORT=9090 +HAPI_SERVER_ADDRESS=hapi +HAPI_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb +HAPI_SYNC_PRODUCERS_INTERVAL=86400 +HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 +HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 +HAPI_SYNC_EXCHANGE_RATE=86400 +HAPI_EOS_EXCHANGE_RATE_API=https://api.coingecko.com/api/v3/simple/price?ids=wax&vs_currencies=usd +HAPI_COINGECKO_API_TOKEN_ID=BTC +HAPI_REWARDS_TOKEN=LIBRE +HAPI_SYNC_STATS_INTERVAL=60 +HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= + +#webapp +PORT=3000 +REACT_APP_TITLE=Libre Testnet Network Dashboard +REACT_APP_VERSION=dev +REACT_APP_NAME= +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/libre.png +REACT_APP_FOOTER_LINKS=[{ "text": "Libre Website", "src": "https://libre.org/" },{ "text": "Libre Block Explorer", "src": "https://libre-testnet-explorer.edenia.cloud/" },{"text": "Documentation","src": "https://libre-chain.gitbook.io/"},{"text": "Libre Network Monitor","src": "https://libre-testnet.eosio.online"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] +REACT_APP_EOS_RATE_LINK= +REACT_APP_USE_REWARDS=true +REACT_APP_USE_VOTES=true +REACT_APP_USE_CPU_BENCHMARK=false +REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql +REACT_APP_EOS_API_NETWORK_NAME=libre-testnet +REACT_APP_EOS_API_NETWORK_LABEL=Libre Testnet +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/libre.png +REACT_APP_EOS_API_HOST=libre-testnet.edenia.cloud +REACT_APP_EOS_API_PORT=443 +REACT_APP_EOS_API_PROTOCOL=https +REACT_APP_EOS_CHAIN_ID=b64646740308df2ee06c6b72f34c0f7fa066d940e831f752db2006fcc2b78dee +REACT_APP_EOS_DEFAULT_EXCHANGE_RATE=1 +REACT_APP_EOS_DEFAULT_EXCHANGE_RATE_API= +REACT_APP_EOS_USE_BP_JSON_ON_CHAIN=false +REACT_APP_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson +REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson +REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson +REACT_APP_TOKEN_SYMBOL=LIBRE +REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks", "/cpu-benchmark","/block-distribution"] +REACT_APP_BLOCK_EXPLORER_URL=https://wax-test.bloks.io/transaction/(transaction) +REACT_APP_STATE_HISTORY_ENABLED=false +REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 +REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.local b/.env.local index 04b94f85..cb0fe06d 100644 --- a/.env.local +++ b/.env.local @@ -16,17 +16,18 @@ HASURA_GRAPHQL_ENABLE_CONSOLE=true HASURA_GRAPHQL_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey HASURA_GRAPHQL_UNAUTHORIZED_ROLE=guest +HASURA_GRAPHQL_ACTION_BASE_URL= # hapi HAPI_EOS_API_NETWORK_NAME=lacchain HAPI_EOS_API_ENDPOINT=http://host.docker.internal:4200 HAPI_EOS_API_CHAIN_ID=d00c80669f9cbbe13d2c9a16ddbe5b774b79d8ab68e44e8a8077acada6d65dd4 HAPI_EOS_BASE_ACCOUNT=baseaccount -HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW5JiWmgpFTFDfo1Q1eiR3UNDaaCq7ExEBgkmrxyLsdXHChRgeRU8 +HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechanics -HAPI_EOS_MECHANICS_PASSWORD=PW5HuhcrHztGgMdNn3u39uXucje1FQjx9rvgg2aUTN5PjpjHbtzGm +HAPI_EOS_MECHANICS_PASSWORD=PW... HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION={"account":"writer","name":"run","authorization":[{"actor":"latamlink","permission":"writer"}],"data":{}} -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -38,10 +39,25 @@ HAPI_SERVER_ADDRESS=hapi HAPI_SYNC_PRODUCERS_INTERVAL=86400 HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 +HAPI_EOS_EXCHANGE_RATE_API= +HAPI_COINGECKO_API_TOKEN_ID= +HAPI_REWARDS_TOKEN= +HAPI_DATABASE_URL= +HAPI_SYNC_EXCHANGE_RATE= +HAPI_SYNC_STATS_INTERVAL= +HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= +HAPI_EOS_GET_FAUCET_ACCOUNT= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name REACT_APP_TITLE=LACChain Network Dashboard REACT_APP_DEFAULT_PRODUCER_LOGO=https://lacchain.eosio.online/lacchain.png @@ -66,4 +82,10 @@ REACT_APP_TOKEN_SYMBOL=EOS REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] REACT_APP_STATE_HISTORY_ENABLED=true REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 -REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key \ No newline at end of file +REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT= +REACT_APP_DISABLED_MENU_ITEMS= +REACT_APP_BLOCK_EXPLORER_URL= +REACT_APP_EOS_INCLUDE_TRANSACTION= +REACT_APP_EOS_DEFAULT_EXCHANGE_RATE= +REACT_APP_EOS_DEFAULT_EXCHANGE_RATE_API= diff --git a/.env.mainnet b/.env.mainnet index cc4d7720..5760bad1 100644 --- a/.env.mainnet +++ b/.env.mainnet @@ -20,13 +20,13 @@ HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # hapi HAPI_EOS_API_NETWORK_NAME=mainnet -HAPI_EOS_API_ENDPOINT=https://api.eosio.cr +HAPI_EOS_API_ENDPOINT=https://eos.edenia.cloud HAPI_EOS_API_CHAIN_ID=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 HAPI_EOS_BASE_ACCOUNT=baseaccount HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -45,24 +45,34 @@ HAPI_COINGECKO_API_TOKEN_ID=eos HAPI_REWARDS_TOKEN=EOS HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name REACT_APP_TITLE=EOS Mainnet Network Dashboard -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/QmQ48Sysmfhb9T8Cu3ECNzKCqxTbyuz6n2vWEpTLigmijQ -REACT_APP_FOOTER_LINKS=[{"text":"Block Explorer","src":"https://bloks.io"},{"text":"Block Producer Ratings","src":"https://eosrate.io"},{"text":"Developer Guidelines","src":"https://guide.eoscostarica.io"},{"text":"GitHub","src":"https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/eos.png +REACT_APP_FOOTER_LINKS=[{"text":"EOS Community Website","src":"https://eoscommunity.org/"},{"text":"Block Explorer","src":"https://bloks.io"},{"text":"EOS Developer Docs","src":"https://guide.eoscostarica.io"},{"text": "EOS Network Monitor","src": "https://eosio.online"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK=https://eosrate.io REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=false REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=mainnet REACT_APP_EOS_API_NETWORK_LABEL=Mainnet -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/QmWY6WC6Gy193rKTnHNKzeGruXBGkTQzEVDfwn3j41W235 -REACT_APP_EOS_API_HOST=eos.greymass.com +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/eos.png +REACT_APP_EOS_API_HOST=eos.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https REACT_APP_EOS_CHAIN_ID=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 @@ -77,3 +87,4 @@ REACT_APP_BLOCK_EXPLORER_URL=https://bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.proton b/.env.proton index a4359e39..b456c4a6 100644 --- a/.env.proton +++ b/.env.proton @@ -19,14 +19,14 @@ HASURA_GRAPHQL_UNAUTHORIZED_ROLE=guest HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # hapi -HAPI_EOS_API_NETWORK_NAME=jungle +HAPI_EOS_API_NETWORK_NAME=proton HAPI_EOS_API_ENDPOINT=https://proton.edenia.cloud HAPI_EOS_API_CHAIN_ID=384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0 HAPI_EOS_BASE_ACCOUNT=baseaccount HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -45,22 +45,33 @@ HAPI_COINGECKO_API_TOKEN_ID=proton HAPI_REWARDS_TOKEN=XPR HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= +HAPI_EOS_GET_FAUCET_ACCOUNT= + #webapp PORT=3000 REACT_APP_TITLE=Proton Network Dashboard -REACT_APP_TAG=dev -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/Qma3imuP4QDJuhAFJKz5AbhgxCLXX7S1V3BrYa8nXNaV9j +REACT_APP_VERSION=dev +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/proton.png REACT_APP_FOOTER_LINKS=[{ "text": "Proton Website", "src": "https://www.protonchain.com/" },{ "text": "Block Explorer", "src": "https://proton-test.bloks.io" },{"text": "Developer Guidelines","src": "https://guide.eoscostarica.io"},{"text": "GitHub","src": "https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=false REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=proton REACT_APP_EOS_API_NETWORK_LABEL=Proton -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/Qma3imuP4QDJuhAFJKz5AbhgxCLXX7S1V3BrYa8nXNaV9j +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/proton.png REACT_APP_EOS_API_HOST=proton.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https @@ -73,8 +84,10 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=XPR REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] -REACT_APP_DISABLED_MENU_ITEMS=["/cpu-benchmark"] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution","/cpu-benchmark"] REACT_APP_BLOCK_EXPLORER_URL=https://proton.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 -REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key \ No newline at end of file +REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_NAME= +REACT_APP_EOS_INCLUDE_TRANSACTION= \ No newline at end of file diff --git a/.env.protontestnet b/.env.protontestnet index 5878ec19..3bb2104b 100644 --- a/.env.protontestnet +++ b/.env.protontestnet @@ -19,14 +19,14 @@ HASURA_GRAPHQL_UNAUTHORIZED_ROLE=guest HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # hapi -HAPI_EOS_API_NETWORK_NAME=jungle -HAPI_EOS_API_ENDPOINT=https://proton-testnet.eosio.cr +HAPI_EOS_API_NETWORK_NAME=proton-testnet +HAPI_EOS_API_ENDPOINT=https://proton-testnet.edenia.cloud HAPI_EOS_API_CHAIN_ID=71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd HAPI_EOS_BASE_ACCOUNT=baseaccount HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -45,23 +45,33 @@ HAPI_COINGECKO_API_TOKEN_ID=proton HAPI_REWARDS_TOKEN=XPR HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 REACT_APP_TITLE=Proton Testnet Network Dashboard -REACT_APP_TAG=dev -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/Qma3imuP4QDJuhAFJKz5AbhgxCLXX7S1V3BrYa8nXNaV9j +REACT_APP_VERSION=dev +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/proton.png REACT_APP_FOOTER_LINKS=[{ "text": "Proton Website", "src": "https://www.protonchain.com/" },{ "text": "Block Explorer", "src": "https://proton-test.bloks.io" },{"text": "Developer Guidelines","src": "https://guide.eoscostarica.io"},{"text": "GitHub","src": "https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=false REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=proton-testnet REACT_APP_EOS_API_NETWORK_LABEL=Proton Testnet -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/Qma3imuP4QDJuhAFJKz5AbhgxCLXX7S1V3BrYa8nXNaV9j -REACT_APP_EOS_API_HOST=proton-testnet.eosio.cr +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/proton.png +REACT_APP_EOS_API_HOST=proton-testnet.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https REACT_APP_EOS_CHAIN_ID=71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd @@ -73,8 +83,9 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=XPR REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] -REACT_APP_DISABLED_MENU_ITEMS=["/cpu-benchmark"] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution","/cpu-benchmark"] REACT_APP_BLOCK_EXPLORER_URL=https://proton-test.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.telos b/.env.telos index e98235be..cea73fe0 100644 --- a/.env.telos +++ b/.env.telos @@ -20,13 +20,13 @@ HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # hapi HAPI_EOS_API_NETWORK_NAME=telos -HAPI_EOS_API_ENDPOINT=https://telos.eosio.cr +HAPI_EOS_API_ENDPOINT=https://telos.edenia.cloud HAPI_EOS_API_CHAIN_ID=4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11 HAPI_EOS_BASE_ACCOUNT=eosmechatero HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://localhost:9999 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson HAPI_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson @@ -39,29 +39,39 @@ HAPI_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb HAPI_SYNC_PRODUCERS_INTERVAL=86400 HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 -HAPI_SYNC_EXCHANGE_RATE=86400 HAPI_EOS_EXCHANGE_RATE_API=https://api.coingecko.com/api/v3/simple/price?ids=telos&vs_currencies=usd +HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 HAPI_COINGECKO_API_TOKEN_ID=telos HAPI_REWARDS_TOKEN=TLOS HAPI_SYNC_STATS_INTERVAL=60 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name REACT_APP_TITLE=Telos Mainnet Network Dashboard -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/QmX5ENinjMXANryNJWTEWBzxtojtaWzkW1L27YRorrcpcJ -REACT_APP_FOOTER_LINKS=[{ "text": "Website", "src": "" },{ "text": "Block Explorer", "src": "https://telos.bloks.io" },{"text": "Developer Guidelines","src": "https://guide.eoscostarica.io"},{"text": "GitHub","src": "https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/telos.jpg +REACT_APP_FOOTER_LINKS=[{ "text": "Telos Website", "src": "https://telos.net/" },{ "text": "Telos Block Explorer", "src": "https://telos-test.bloks.io/" },{"text": "Developer Docs","src": "https://docs.telos.net/"},{"text": "Telos Network Monitor","src": "https://eosio.online"}] +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=true REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=telos REACT_APP_EOS_API_NETWORK_LABEL=Telos Mainnet -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/QmX5ENinjMXANryNJWTEWBzxtojtaWzkW1L27YRorrcpcJ -REACT_APP_EOS_API_HOST=telos.eosio.cr +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/telos.jpg +REACT_APP_EOS_API_HOST=telos.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https REACT_APP_EOS_CHAIN_ID=4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11 @@ -71,8 +81,9 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=TLOS REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] -REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution"] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks", "/cpu-benchmark","/block-distribution"] REACT_APP_BLOCK_EXPLORER_URL=https://telos.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= diff --git a/.env.telostestnet b/.env.telostestnet index 968b6c68..81d117b5 100644 --- a/.env.telostestnet +++ b/.env.telostestnet @@ -26,7 +26,7 @@ HAPI_EOS_BASE_ACCOUNT=eosmechatero HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://localhost:9999 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT=producerjson HAPI_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson @@ -41,26 +41,36 @@ HAPI_SYNC_PRODUCER_INFO_INTERVAL=1 HAPI_SYNC_PRODUCER_CPU_INTERVAL=6 HAPI_SYNC_EXCHANGE_RATE=86400 HAPI_EOS_EXCHANGE_RATE_API=https://api.coingecko.com/api/v3/simple/price?ids=telos&vs_currencies=usd +HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 HAPI_COINGECKO_API_TOKEN_ID=telos HAPI_REWARDS_TOKEN=TLOS HAPI_SYNC_STATS_INTERVAL=60 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 -REACT_APP_TAG=dev +REACT_APP_VERSION=dev REACT_APP_NAME=$npm_package_name -REACT_APP_TITLE=EOS Jungle4 Testnet Network Dashboard -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.edenia.cloud/ipfs/QmX5ENinjMXANryNJWTEWBzxtojtaWzkW1L27YRorrcpcJ -REACT_APP_FOOTER_LINKS=[{"text":"Website","src":""},{"text":"Block Explorer","src":"https://telos.bloks.io"},{"text":"Developer Guidelines","src":"https://guide.eoscostarica.io"},{"text":"GitHub","src":"https://github.com/eoscostarica/eosio-dashboard"}] +REACT_APP_TITLE=Telos Testnet Network Dashboard +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/telos.jpg +REACT_APP_FOOTER_LINKS=[{ "text": "Telos Website", "src": "https://telos.net/" },{ "text": "Telos Block Explorer", "src": "https://telos-test.bloks.io/" },{"text": "Developer Docs","src": "https://docs.telos.net/"},{"text": "Telos Network Monitor","src": "https://eosio.online"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=true REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql -REACT_APP_EOS_API_NETWORK_NAME=telos -REACT_APP_EOS_API_NETWORK_LABEL=Telos -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.edenia.cloud/ipfs/QmX5ENinjMXANryNJWTEWBzxtojtaWzkW1L27YRorrcpcJ +REACT_APP_EOS_API_NETWORK_NAME=telos-testnet +REACT_APP_EOS_API_NETWORK_LABEL=Telos Testnet +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/telos.jpg REACT_APP_EOS_API_HOST=telos-testnet.edenia.cloud REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https @@ -71,8 +81,9 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=TLOS REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] -REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution"] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks", "/cpu-benchmark","/block-distribution"] REACT_APP_BLOCK_EXPLORER_URL=https://telos-test.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= \ No newline at end of file diff --git a/.env.ultratestnet b/.env.ultratestnet index 5fbac478..4a9710b0 100644 --- a/.env.ultratestnet +++ b/.env.ultratestnet @@ -29,7 +29,7 @@ HAPI_EOS_FAUCET_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -53,12 +53,14 @@ GOOGLE_APPLICATION_CREDENTIALS=/app/google-credentials.json HAPI_RE_CAPTCHA_PROJECT_ID=eosio-dashboard HAPI_PUBLIC_RE_CAPTCHA_KEY=key HAPI_CREATE_ACCOUNT_ACTION_NAME=newnonebact +HAPI_EOS_GET_FAUCET_ACCOUNT= # webapp PORT=3000 REACT_APP_TITLE=Ultra Testnet Dashboard -REACT_APP_TAG=dev -REACT_APP_DEFAULT_PRODUCER_LOGO=https://onultra.io/icon.png +REACT_APP_VERSION=dev +REACT_APP_NAME= +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/ultra.jpg REACT_APP_FOOTER_LINKS=[{ "text": "Ultra Website", "src": "https://ultra.io/" },{ "text": "Block Explorer", "src": "https://explorer.testnet.ultra.io/" },{"text": "Ultra Mainnet Explorer","src": "https://explorer.mainnet.ultra.io/"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=false @@ -68,7 +70,7 @@ REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=ultra-testnet REACT_APP_EOS_API_NETWORK_LABEL=Ultra Testnet -REACT_APP_EOS_API_NETWORK_LOGO=https://cryptorank-images.s3.eu-central-1.amazonaws.com/coins/ultra1598516271380.png +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/ultra.jpg REACT_APP_EOS_API_HOST=ultratest.api.eosnation.io REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https @@ -82,7 +84,7 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=UOS REACT_APP_NETWORK_URL=[{"label":"Ultra Mainnet","value":"https://eosio.online","mainnet":true,"pair":"ultra","icon":"ultra","order":1},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":1}] -REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks","/block-distribution","/cpu-benchmark","/rewards-distribution"] +REACT_APP_DISABLED_MENU_ITEMS=["/block-producers","/nodes","/missed-blocks","/endpoints","/bpjson","/ricardian-contract","/block-distribution","/nodes-distribution","/cpu-benchmark","/rewards-distribution"] REACT_APP_BLOCK_EXPLORER_URL=https://explorer.testnet.ultra.io/tx/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 diff --git a/.env.waxtestnet b/.env.waxtestnet index 837f0cbc..b0f6c990 100644 --- a/.env.waxtestnet +++ b/.env.waxtestnet @@ -26,7 +26,7 @@ HAPI_EOS_BASE_ACCOUNT=baseaccount HAPI_EOS_BASE_ACCOUNT_PASSWORD=PW... HAPI_EOS_MECHANICS_ACCOUNT=eosmechatero HAPI_EOS_MECHANICS_PASSWORD=PW... -HAPI_EOS_WALLET_URL=http://wallet:8888 +HAPI_EOS_WALLET_URL=http://localhost:8888 HAPI_EOS_BP_JSON_ON_CHAIN=false HAPI_EOS_BP_JSON_ON_CHAIN_CONTRACT= HAPI_EOS_BP_JSON_ON_CHAIN_TABLE= @@ -45,22 +45,33 @@ HAPI_COINGECKO_API_TOKEN_ID=wax HAPI_REWARDS_TOKEN=WAX HAPI_SYNC_STATS_INTERVAL=60 HAPI_SYNC_SCHEDULE_HISTORY_INTERVAL=86400 +HAPI_EOS_STATE_HISTORY_PLUGIN_ENDPOINT= +HAPI_EOS_GET_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT= +HAPI_EOS_FAUCET_ACCOUNT_PASSWORD= +HAPI_EOS_MECHANICS_INCLUDE_TRANSACTION= +GOOGLE_APPLICATION_CREDENTIALS= +HAPI_RE_CAPTCHA_PROJECT_ID= +HAPI_PUBLIC_RE_CAPTCHA_KEY= +HAPI_CREATE_ACCOUNT_ACTION_NAME= #webapp PORT=3000 REACT_APP_TITLE=WAX Testnet Network Dashboard -REACT_APP_TAG=dev -REACT_APP_DEFAULT_PRODUCER_LOGO=https://ipfs.eosio.cr/ipfs/QmcK3TPKZB7fRK5MYYcpUZuZeWpjWEhF1GUY64gGYrXU1K +REACT_APP_VERSION=dev +REACT_APP_NAME= +REACT_APP_DEFAULT_PRODUCER_LOGO=https://eosio.online/images/wax.jpg REACT_APP_FOOTER_LINKS='[{ "text": "Website", "src": "https://on.wax.io/wax-io/" },{ "text": "Block Explorer", "src": "https://wax.bloks.io" },{"text": "Developer Guidelines","src": "https://developer.wax.io/"},{"text": "GitHub","src": "https://github.com/eoscostarica/eosio-dashboard"}]' +REACT_APP_FEATURE_BUG=[{ "text": "Report a Bug or Request a Feature", "src": "https://github.com/eoscostarica/eosio-dashboard/issues/new/choose"}] REACT_APP_EOS_RATE_LINK= REACT_APP_USE_REWARDS=true REACT_APP_USE_VOTES=true REACT_APP_USE_CPU_BENCHMARK=false REACT_APP_USE_BLOCK_PRODUCER_AGREEMENT_CONTRACT=true -REACT_APP_HASURA_URL=http://localhost:8585/v1/graphql +REACT_APP_HASURA_URL=http://localhost:8080/v1/graphql REACT_APP_EOS_API_NETWORK_NAME=wax-testnet REACT_APP_EOS_API_NETWORK_LABEL=WAX Testnet -REACT_APP_EOS_API_NETWORK_LOGO=https://ipfs.eosio.cr/ipfs/QmcK3TPKZB7fRK5MYYcpUZuZeWpjWEhF1GUY64gGYrXU1K +REACT_APP_EOS_API_NETWORK_LOGO=https://eosio.online/images/wax.jpg REACT_APP_EOS_API_HOST=testnet.wax.pink.gg REACT_APP_EOS_API_PORT=443 REACT_APP_EOS_API_PROTOCOL=https @@ -73,8 +84,9 @@ REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE=producerjson REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE=producerjson REACT_APP_TOKEN_SYMBOL=XPR REACT_APP_NETWORK_URL=[{"label":"EOS Mainnet","value":"https://mainnet.eosio.online","mainnet":true,"pair":"eos","icon":"eos","order":1},{"label":"Proton","value":"https://proton.eosio.online","mainnet":true,"pair":"proton","icon":"proton","order":2},{"label":"WAX","value":"https://wax.eosio.online","mainnet":true,"pair":"wax","icon":"wax","order":3},{"label":"Telos","value":"https://telos.eosio.online","mainnet":true,"pair":"telos","icon":"telos","order":4},{"label":"Libre","value":"https://libre.eosio.online","mainnet":true,"pair":"libre","icon":"libre","order":5},{"label":"LACChain EOSIO","value":"https://lacchain.eosio.online","mainnet":true,"pair":null,"icon":"lacchain","order":6},{"label":"Jungle4 Testnet","value":"https://jungle.eosio.online","mainnet":false,"pair":"eos","icon":"jungle","order":1},{"label":"Proton Testnet","value":"https://proton-testnet.eosio.online","mainnet":false,"pair":"proton","icon":"proton","order":2},{"label":"WAX Testnet","value":"https://wax-testnet.eosio.online","mainnet":false,"pair":"wax","icon":"wax","order":3},{"label":"Telos Testnet","value":"https://telos-testnet.eosio.online","mainnet":false,"pair":"telos","icon":"telos","order":4},{"label":"Libre Testnet","value":"https://libre-testnet.eosio.online","mainnet":false,"pair":"libre","icon":"libre","order":5},{"label":"Ultra Testnet","value":"https://ultra-testnet.eosio.online","mainnet":false,"pair":"ultra","icon":"ultra","order":6}] -REACT_APP_DISABLED_MENU_ITEMS=["/cpu-benchmark"] +REACT_APP_DISABLED_MENU_ITEMS=["/missed-blocks", "/cpu-benchmark","/block-distribution"] REACT_APP_BLOCK_EXPLORER_URL=https://wax-test.bloks.io/transaction/(transaction) REACT_APP_STATE_HISTORY_ENABLED=false REACT_APP_GOOGLE_ANALITIC_PAGE_ID=G-E6Y0EC9FT8 REACT_APP_PUBLIC_RE_CAPTCHA_KEY=key +REACT_APP_EOS_INCLUDE_TRANSACTION= \ No newline at end of file diff --git a/.github/workflows/deploy-airwire-testnet.yaml b/.github/workflows/deploy-airwire-testnet.yaml index ab8f29f5..f08ccdcc 100644 --- a/.github/workflows/deploy-airwire-testnet.yaml +++ b/.github/workflows/deploy-airwire-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Airwire Testnet Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://ipfs.airwire.io/ipfs/QmayDiE47WtUfHJEdh2kFfq6Hdx9i5oTUUeiy4UiQbAEst' REACT_APP_FOOTER_LINKS: '[{ "text": "Airwire Website", "src": "https://airwire.app/" },{ "text": "Block Explorer", "src": "https://testnet-explorer.airwire.io" },{"text": "Airwire Mainnet Dashboard","src": "https://dashboard.airwire.io"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-airwire.yaml b/.github/workflows/deploy-airwire.yaml index 82f54d3e..705f514e 100644 --- a/.github/workflows/deploy-airwire.yaml +++ b/.github/workflows/deploy-airwire.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Airwire Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://ipfs.airwire.io/ipfs/QmayDiE47WtUfHJEdh2kFfq6Hdx9i5oTUUeiy4UiQbAEst' REACT_APP_FOOTER_LINKS: '[{ "text": "Airwire Website", "src": "https://airwire.app/" },{ "text": "Block Explorer", "src": "https://explorer.airwire.io" },{"text": "Airwire Testnet Dashboard","src": "https://testnet-dashboard.airwire.io"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-jungle-testnet.yaml b/.github/workflows/deploy-jungle-testnet.yaml index 224ce7e2..363d890e 100644 --- a/.github/workflows/deploy-jungle-testnet.yaml +++ b/.github/workflows/deploy-jungle-testnet.yaml @@ -33,7 +33,7 @@ jobs: # webapp PORT: 80 REACT_APP_TITLE: EOS Jungle4 Testnet Network Dashboard - REACT_APP_TAG: ${{ github.ref }} + REACT_APP_VERSION: ${{ github.ref }} REACT_APP_DEFAULT_PRODUCER_LOGO: https://eosio.online/images/jungle.jpg REACT_APP_FOOTER_LINKS: '[{"text":"Jungle Website","src":"https://jungletestnet.io/"},{"text":"Block Explorer","src":"https://jungle3.bloks.io"},{"text":"Developer Guidelines","src":"https://guide.eoscostarica.io"},{"text": "Jungle4 Testnet Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: https://jungle.eosrate.io diff --git a/.github/workflows/deploy-lacchain.yaml b/.github/workflows/deploy-lacchain.yaml index 26ce58ab..933bb953 100644 --- a/.github/workflows/deploy-lacchain.yaml +++ b/.github/workflows/deploy-lacchain.yaml @@ -34,7 +34,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'LACChain EOSIO Network Dashboard' - REACT_APP_TAG: ${{ github.ref }} + REACT_APP_VERSION: ${{ github.ref }} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/lacchain.jpg' REACT_APP_FOOTER_LINKS: '[{"text":"LACChain Website","src":"https://eosio.lacchain.net"},{"text":"Block Explorer","src":"https://eosio-explorer.lacchain.net"},{"text":"LACChain Developer Docs","src":"https://eosio.lacchain.net/en/docs/eosio/"},{"text": "LACChain Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-libre-testnet.yaml b/.github/workflows/deploy-libre-testnet.yaml index 5bd6a312..7ecb25d9 100644 --- a/.github/workflows/deploy-libre-testnet.yaml +++ b/.github/workflows/deploy-libre-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Libre Testnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/libre.png' REACT_APP_FOOTER_LINKS: '[{ "text": "Libre Website", "src": "https://libre.org/" },{ "text": "Libre Block Explorer", "src": "https://libre-testnet-explorer.edenia.cloud/" },{"text": "Documentation","src": "https://libre-chain.gitbook.io/"},{"text": "Libre Network Monitor","src": "https://libre-testnet.eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-libre.yaml b/.github/workflows/deploy-libre.yaml index d5189a94..7c63588c 100644 --- a/.github/workflows/deploy-libre.yaml +++ b/.github/workflows/deploy-libre.yaml @@ -37,9 +37,9 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Libre Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/libre.png' - REACT_APP_FOOTER_LINKS: '[{ "text": "Bitcoin Libre Website", "src": "https://libre.org/" },{ "text": "Libre Block Explorer", "src": "https://libre-explorer.edenia.cloud/" },{"text": "Documentation","src": "https://libre-chain.gitbook.io/"},{"text": "Libre Network Monitor","src": "https://libre.eosio.online"}]' + REACT_APP_FOOTER_LINKS: '[{ "text": "Libre Website", "src": "https://libre.org/" },{ "text": "Libre Block Explorer", "src": "https://libre-explorer.edenia.cloud/" },{"text": "Documentation","src": "https://libre-chain.gitbook.io/"},{"text": "Libre Network Monitor","src": "https://libre.eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' REACT_APP_USE_REWARDS: 'false' REACT_APP_USE_VOTES: 'false' diff --git a/.github/workflows/deploy-mainnet.yaml b/.github/workflows/deploy-mainnet.yaml index 8a2b431d..e47cc50b 100644 --- a/.github/workflows/deploy-mainnet.yaml +++ b/.github/workflows/deploy-mainnet.yaml @@ -34,7 +34,7 @@ jobs: PORT: '80' REACT_APP_TITLE: 'EOS Mainnet Network Dashboard' - REACT_APP_TAG: ${{ github.ref }} + REACT_APP_VERSION: ${{ github.ref }} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/eos.png' REACT_APP_FOOTER_LINKS: '[{"text":"EOS Community Website","src":"https://eoscommunity.org/"},{"text":"Block Explorer","src":"https://bloks.io"},{"text":"EOS Developer Docs","src":"https://guide.eoscostarica.io"},{"text": "EOS Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: 'https://eosrate.io' @@ -60,6 +60,8 @@ jobs: REACT_APP_DISABLED_MENU_ITEMS: '["/missed-blocks", "/cpu-benchmark","/block-distribution"]' REACT_APP_BLOCK_EXPLORER_URL: 'https://bloks.io/transaction/(transaction)' REACT_APP_STATE_HISTORY_ENABLED: 'false' + REACT_APP_GOOGLE_ANALITIC_PAGE_ID: 'G-E6Y0EC9FT8' + REACT_APP_PUBLIC_RE_CAPTCHA_KEY: ${{ secrets.REACT_APP_PUBLIC_RE_CAPTCHA_KEY }} - name: Build and deploy kubernetes files id: build_kubernetes_files @@ -100,6 +102,9 @@ jobs: HAPI_EOS_EXCHANGE_RATE_API: https://api.coingecko.com/api/v3/simple/price?ids=eos&vs_currencies=usd HAPI_COINGECKO_API_TOKEN_ID: eos HAPI_REWARDS_TOKEN: EOS + HAPI_RE_CAPTCHA_PROJECT_ID: ${{ secrets.HAPI_RE_CAPTCHA_PROJECT_ID }} + HAPI_PUBLIC_RE_CAPTCHA_KEY: ${{ secrets.HAPI_PUBLIC_RE_CAPTCHA_KEY }} + # hasura HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' HASURA_GRAPHQL_DATABASE_URL: ${{ secrets.HASURA_GRAPHQL_DATABASE_URL }} diff --git a/.github/workflows/deploy-proton-testnet.yaml b/.github/workflows/deploy-proton-testnet.yaml index d4acbfeb..bf978fe6 100644 --- a/.github/workflows/deploy-proton-testnet.yaml +++ b/.github/workflows/deploy-proton-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Proton Testnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/proton.png' REACT_APP_FOOTER_LINKS: '[{ "text": "Proton Website", "src": "https://www.protonchain.com/" },{ "text": "Block Explorer", "src": "https://proton-test.bloks.io" },{"text": "Developer Docs","src": "https://docs.protonchain.com/sdk/"},{"text": "Proton Testnet Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-proton.yaml b/.github/workflows/deploy-proton.yaml index 2d73ae4f..3086f5cb 100644 --- a/.github/workflows/deploy-proton.yaml +++ b/.github/workflows/deploy-proton.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Proton Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/proton.png' REACT_APP_FOOTER_LINKS: '[{ "text": "Proton Website", "src": "https://www.protonchain.com/" },{ "text": "Block Explorer", "src": "https://proton.bloks.io" },{"text": "Developer Docs","src": "https://docs.protonchain.com/sdk/"},{"text": "Proton Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-telos-testnet.yaml b/.github/workflows/deploy-telos-testnet.yaml index 5e90c172..59012629 100644 --- a/.github/workflows/deploy-telos-testnet.yaml +++ b/.github/workflows/deploy-telos-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Telos Testnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/telos.jpg' REACT_APP_FOOTER_LINKS: '[{ "text": "Telos Website", "src": "https://telos.net/" },{ "text": "Telos Block Explorer", "src": "https://telos-test.bloks.io/" },{"text": "Developer Docs","src": "https://docs.telos.net/"},{"text": "Telos Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-telos.yaml b/.github/workflows/deploy-telos.yaml index e159f6f0..113a22c0 100644 --- a/.github/workflows/deploy-telos.yaml +++ b/.github/workflows/deploy-telos.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Telos Mainnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/telos.jpg' REACT_APP_FOOTER_LINKS: '[{ "text": "Telos Website", "src": "https://telos.net/" },{ "text": "Telos Block Explorer", "src": "https://telos-test.bloks.io/" },{"text": "Developer Docs","src": "https://docs.telos.net/"},{"text": "Telos Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-ultra-testnet.yaml b/.github/workflows/deploy-ultra-testnet.yaml index 4a5a77d5..d13367cc 100644 --- a/.github/workflows/deploy-ultra-testnet.yaml +++ b/.github/workflows/deploy-ultra-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'Ultra Testnet Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/ultra.jpg' REACT_APP_FOOTER_LINKS: '[{ "text": "Ultra Website", "src": "https://ultra.io/" },{ "text": "Block Explorer", "src": "https://explorer.testnet.ultra.io/" },{"text": "Ultra Mainnet Explorer","src": "https://explorer.mainnet.ultra.io/"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-wax-testnet.yaml b/.github/workflows/deploy-wax-testnet.yaml index 971ec542..4fc2561d 100644 --- a/.github/workflows/deploy-wax-testnet.yaml +++ b/.github/workflows/deploy-wax-testnet.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'WAX Testnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/wax.jpg' REACT_APP_FOOTER_LINKS: '[{ "text": "WAX Website", "src": "https://on.wax.io/wax-io/" },{ "text": "WAX Block Explorer", "src": "https://wax-test.bloks.io/" },{"text": "Developer Guidelines","src": "https://developer.wax.io/"},{"text": "WAX Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/.github/workflows/deploy-wax.yaml b/.github/workflows/deploy-wax.yaml index 9a5a6b1a..f73950be 100644 --- a/.github/workflows/deploy-wax.yaml +++ b/.github/workflows/deploy-wax.yaml @@ -37,7 +37,7 @@ jobs: # webapp PORT: '80' REACT_APP_TITLE: 'WAX Mainnet Network Dashboard' - REACT_APP_TAG: ${{github.ref}} + REACT_APP_VERSION: ${{github.ref}} REACT_APP_DEFAULT_PRODUCER_LOGO: 'https://eosio.online/images/wax.jpg' REACT_APP_FOOTER_LINKS: '[{ "text": "WAX Website", "src": "https://on.wax.io/wax-io/" },{ "text": "WAX Block Explorer", "src": "https://wax.bloks.io" },{"text": "Developer Guidelines","src": "https://developer.wax.io/"},{"text": "WAX Network Monitor","src": "https://eosio.online"}]' REACT_APP_EOS_RATE_LINK: '' diff --git a/README.md b/README.md index 3127df02..bfa097fa 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,16 @@ -

+

-

-
-[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) ![GitHub](https://img.shields.io/github/license/eoscostarica/eosio-dashboard) ![GitHub repo size](https://img.shields.io/github/repo-size/eoscostarica/eosio-dashboard) ![Twitter Follow](https://img.shields.io/twitter/follow/eoscostarica?style=social) ![GitHub forks](https://img.shields.io/github/forks/eoscostarica/eosio-dashboard?style=social) +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) +![GitHub](https://img.shields.io/github/license/eoscostarica/eosio-dashboard) +![GitHub repo size](https://img.shields.io/github/repo-size/eoscostarica/eosio-dashboard) +[![Twitter Follow](https://img.shields.io/twitter/follow/eoscostarica?style=social)](https://twitter.com/EOSCostaRica) +![GitHub forks](https://img.shields.io/github/forks/eoscostarica/eosio-dashboard?style=social) + +
# EOSIO Dashboard Network and Infrastructure Dashboard for EOSIO networks. @@ -49,6 +53,9 @@ This project use all the latest tools and practices in the industry - **[docker-compose](https://docs.docker.com/compose/)** Compose is a tool for defining and running multi-container Docker applications +- **[demux](https://guide.eoscostarica.io/docs/eos-learn/demux-pattern)** + Demux is an architectural pattern for backend infrastructure for build applications on EOSIO blockchain to sourcing blockchain events to deterministically update queryable databases. + ### File Structure Within the download you'll find the following directories and files: @@ -87,7 +94,18 @@ eosio-dashboard/ │ ├── Dockerfile │ ├── yarn-lock.json │ └── package.json -├── .env.example +├── .env.jungle +├── .env.lacchain +├── .env.local +├── .env.libre +├── .env.libretestnet +├── .env.mainnet +├── .env.proton +├── .env.protontestnet +├── .env.telos +├── .env.telostestnet +├── .env.ultratestnet +├── .env.waxtestnet ├── .gitignore ├── docker-compose.yaml ├── .LICENSE @@ -104,19 +122,28 @@ There are some important folders like Basic knowledge about Docker, Docker Compose and NodeJS is required. -### Before you start +### Getting Started -Somethings you need before getting started: +Some things you need before getting started: +- [docker](https://www.docker.com/) - [git](https://git-scm.com/) - [node.js](https://nodejs.org/es/) +- [yarn](https://yarnpkg.com/) - [Hasura CLI](https://hasura.io/docs/1.0/graphql/manual/hasura-cli/install-hasura-cli.html#install-hasura-cli) +#### Considerations for Windows + +If you are using Windows you need to install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) in version 2 and install a Linux distribution on Windows to run the project. In the Linux distribution is where you need to install git, node, yarn and Hasura CLI. + +Additionally, you need WSL to use Docker Desktop as an intermediate between Windows and the Linux distribution. Otherwise, if you have a computer with low hardware specifications, it's recommended to use Linux instead of Windows with WSL. + ### First time -1. Clone this repo using `git clone --depth=1 https://github.com/eoscostarica/eosio-dashboard.git ` -2. Move to the appropriate directory: `cd `. -3. Copy the `.env.example` then update the environment variables according to your needs +1. Clone this repo using `git clone --depth=1 https://github.com/eoscostarica/eosio-dashboard.git `. +1. Move to the appropriate directory: `cd `. +1. As EOSIO dashboard can have different configurations copy the environment variables according to your needs in the `.env` file or use `make run ` to use a configuration for a specific network. + ``` # global @@ -178,9 +205,9 @@ REACT_APP_STATE_HISTORY_ENABLED=false ### Quick start -At this point you can run `make run`, you can check the services runing on: +At this point you can run `make start` or `make run `, you can check the services runing on: -- hapi at http://localhost:9090 +- hapi at http://localhost:9090/healthz - hasura at http://localhost:9695 - webapp at http://localhost:3000 @@ -195,17 +222,17 @@ Please Read EOS Costa Rica's [Open Source Contributing Guidelines](https://devel Please report bugs big and small by [opening an issue](https://github.com/eoscostarica/eosio-dashboard/issues/new/choose) -Contributions of any kind welcome! +Contributions of any kind are welcome! ## About EOS Costa Rica -

- - +

+ + -

-
-EOS Costa Rica is an independently-owned, self-funded, bare-metal Genesis block producer that provides stable and secure infrastructure for EOSIO blockchains. We support open source software for our community while offering enterprise solutions and custom smart contract development for our clients. +
+EOS Costa Rica is an independently-owned, self-funded, bare-metal Genesis block producer that provides stable and secure infrastructure for EOSIO blockchains. We support open source software for our community while offering enterprise blockchain development and custom smart contract development for our clients. -[eoscostarica.io](https://eoscostarica.io) Support OpenSource! +[eoscostarica.io](https://eoscostarica.io/) diff --git a/docker-compose.yaml b/docker-compose.yaml index 8475d6f1..1f026522 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -124,7 +124,7 @@ services: REACT_APP_NETWORK_URL: '${REACT_APP_NETWORK_URL}' REACT_APP_DISABLED_MENU_ITEMS: '${REACT_APP_DISABLED_MENU_ITEMS}' REACT_APP_BLOCK_EXPLORER_URL: '${REACT_APP_BLOCK_EXPLORER_URL}' - REACT_APP_TAG: '${REACT_APP_TAG}' + REACT_APP_VERSION: '${REACT_APP_VERSION}' REACT_APP_STATE_HISTORY_ENABLED: '${REACT_APP_STATE_HISTORY_ENABLED}' REACT_APP_GOOGLE_ANALITIC_PAGE_ID: '${REACT_APP_GOOGLE_ANALITIC_PAGE_ID}' REACT_APP_PUBLIC_RE_CAPTCHA_KEY: '${REACT_APP_PUBLIC_RE_CAPTCHA_KEY}' diff --git a/hapi/package.json b/hapi/package.json index acd00897..9bd7fe96 100644 --- a/hapi/package.json +++ b/hapi/package.json @@ -16,39 +16,41 @@ }, "license": "MIT", "dependencies": { - "@google-cloud/recaptcha-enterprise": "^2.5.0", - "@hapi/boom": "^9.0.0", + "@google-cloud/recaptcha-enterprise": "^3.0.1", + "@hapi/boom": "^10.0.0", "@hapi/hapi": "^20.2.2", "@hapi/joi": "^17.1.0", - "axios": "^0.19.2", + "axios": "^0.27.2", "demux": "^4.0.0", "demux-eos": "^4.0.1", - "eosjs": "^20.0.3", + "eosjs": "^22.1.0", "eosjs-api": "^7.0.4", - "graphql-request": "^1.8.2", - "hapi-pino": "^6.5.0", - "http-status-codes": "^1.4.0", + "graphql": "^16.6.0", + "graphql-request": "^4.3.0", + "hapi-pino": "^10.1.0", + "pino-pretty": "^9.1.0", + "http-status-codes": "^2.2.0", "joi": "^17.4.0", "moment": "^2.29.1", "pg": "^8.6.0", "pg-hstore": "^2.3.3", "sequelize": "^6.6.2", - "ws": "^7.4.4" + "ws": "^8.8.1" }, "devDependencies": { "env-cmd": "^10.1.0", - "eslint": "^7.6.0", - "eslint-config-prettier": "^6.11.0", - "eslint-config-standard": "^14.1.1", + "eslint": "^8.21.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.20.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.1.3", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", - "husky": "^4.2.3", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-standard": "^5.0.0", + "husky": "^8.0.1", "lint-staged": ">=10", "nodemon": "^2.0.4", - "prettier": "^1.19.1" + "prettier": "^2.7.1" }, "optionalDependencies": { "fsevents": "2.1.3" diff --git a/hapi/src/services/eosio.service.js b/hapi/src/services/eosio.service.js index db839887..e5ef53e0 100644 --- a/hapi/src/services/eosio.service.js +++ b/hapi/src/services/eosio.service.js @@ -25,7 +25,7 @@ const getProducers = async () => { } producers = producers - .filter(producer => !!producer.is_active) + .filter((producer) => !!producer.is_active) .sort((a, b) => { if (a.total_votes < b.total_votes) { return -1 @@ -92,7 +92,7 @@ const getExpectedRewards = async (producers, totalVotes) => { let distributedVoteRewardPercent = 0 let undistributedVoteRewardPercent = 0 - producers.forEach(producer => { + producers.forEach((producer) => { const producerVotePercent = producer.total_votes / totalVotes if (producerVotePercent > minimumPercenToGetVoteReward) { distributedVoteRewardPercent += producerVotePercent @@ -149,7 +149,7 @@ const getExpectedRewards = async (producers, totalVotes) => { ) } -const getBPJson = async producer => { +const getBPJson = async (producer) => { const bpJsonUrl = await getBPJsonUrl(producer) let bpJson = {} @@ -199,9 +199,13 @@ const getBPJsonUrl = async (producer = {}) => { return `${producerUrl}/${chainUrl}`.replace(/(?<=:\/\/.*)((\/\/))/, '/') } -const getProducerHealthStatus = bpJson => { +const getProducerHealthStatus = (bpJson) => { const healthStatus = [] + healthStatus.push({ + name: 'bpJson', + valid: !!bpJson + }) healthStatus.push({ name: 'organization_name', valid: !!bpJson.org?.candidate_name @@ -219,16 +223,16 @@ const getProducerHealthStatus = bpJson => { valid: !!bpJson?.org?.branding?.logo_256 }) healthStatus.push({ - name: 'bpJson', + name: 'country', valid: !!bpJson?.org?.location?.country }) return healthStatus } -const getNodes = bpJson => { +const getNodes = (bpJson) => { return Promise.all( - (bpJson?.nodes || []).map(async node => { + (bpJson?.nodes || []).map(async (node) => { const apiUrl = node?.ssl_endpoint || node?.api_endpoint const nodeInfo = await producerUtil.getNodeInfo(apiUrl) @@ -240,7 +244,7 @@ const getNodes = bpJson => { ) } -const getVotesInEOS = votes => { +const getVotesInEOS = (votes) => { const TIMESTAMP_EPOCH = 946684800 const date = Date.now() / 1000 - TIMESTAMP_EPOCH const weight = date / (86400 * 7) / 52 // 86400 = seconds per day 24*3600 diff --git a/hapi/src/utils/google-recaptcha-enterprise.util.js b/hapi/src/utils/google-recaptcha-enterprise.util.js index ea32634e..090c17dd 100644 --- a/hapi/src/utils/google-recaptcha-enterprise.util.js +++ b/hapi/src/utils/google-recaptcha-enterprise.util.js @@ -4,14 +4,14 @@ const { RecaptchaEnterpriseServiceClient } = require('@google-cloud/recaptcha-enterprise') -const isRecaptchaTokenValid = async token => { +const isRecaptchaTokenValid = async (token) => { const reCaptchaClient = new RecaptchaEnterpriseServiceClient() const [assessment] = await reCaptchaClient.createAssessment({ parent: reCaptchaClient.projectPath(recaptchaConfig.projectId), assessment: { event: { - token: token, + token, siteKey: recaptchaConfig.siteKey } } diff --git a/hapi/yarn.lock b/hapi/yarn.lock index d977b5ce..6832f2e7 100644 --- a/hapi/yarn.lock +++ b/hapi/yarn.lock @@ -2,86 +2,45 @@ # yarn lockfile v1 -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime@7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205" - integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ== - dependencies: - regenerator-runtime "^0.13.2" +"@babel/parser@^7.9.4": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" + integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/eslintrc@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" + integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.15.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@google-cloud/recaptcha-enterprise@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@google-cloud/recaptcha-enterprise/-/recaptcha-enterprise-2.5.0.tgz#33f8b8f6a0eb7555c290149af201d89f149cae90" - integrity sha512-wcK6sAmdDMc/q6O19hrfZQNXmKwaAvMvqOe2djUsKAg9b/P8kTzhTFBGgSLARnqRGVgORZMfpnLyPyeoe4OwcA== +"@google-cloud/recaptcha-enterprise@^3.0.1": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@google-cloud/recaptcha-enterprise/-/recaptcha-enterprise-3.0.3.tgz#4d51585fff20b03a2836f3c60ac8b4c87234f9d1" + integrity sha512-666bLf5j7sTEhEhR4LgMKg/L095SrkN4mpohg2Sa9jEv04K6w8JCGf2PD+z2cckyPS7xrggAvYt2gjHkA4DdUA== dependencies: - google-gax "^2.24.1" + google-gax "^3.0.1" "@grpc/grpc-js@~1.6.0": - version "1.6.8" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.8.tgz#77cc8b2d841c34dea8b105d45ff1732caefae4f2" - integrity sha512-Nt5tufF/O5Q310kP0cDzxznWMZW58GCTZhUUiAQ9B0K0ANKNQ4Lj/K9XK0vZg+UBKq5/7z7+8mXHHfrcwoeFJQ== + version "1.6.11" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.11.tgz#74c04cde0cde4e8a88ffc514bd9cd1bb307815b9" + integrity sha512-e/adiPjUxf5cKYiAlV4m+0jJS4k6g2w78X7WTZB3ISOBzcCwm+cwjB2dSRfBHbu46inGGzQMmWAmsgYLg8yT5g== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.6.12": - version "0.6.13" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" - integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.11.3" - yargs "^16.2.0" - "@grpc/proto-loader@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.0.tgz#743cc8a941cc251620c66ebe0d330e1411a33535" - integrity sha512-SGPZtVmqOvNfPFOA/nNPn+0Weqa5wubBgQ56+JgTbeLY2VezwtMjwPPFzh0kvQccwWT3a2TXT0ZGK/pJoOTk1A== + version "0.7.2" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.2.tgz#fa63178853afe1473c50cff89fe572f7c8b20154" + integrity sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" @@ -125,6 +84,13 @@ dependencies: "@hapi/hoek" "9.x.x" +"@hapi/boom@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-10.0.0.tgz#3624831d0a26b3378423b246f50eacea16e04a08" + integrity sha512-1YVs9tLHhypBqqinKQRqh7FUERIolarQApO37OWkzD+z6y6USi871Sv746zBPKcIOBuI6g6y4FrwX87mmJ90Gg== + dependencies: + "@hapi/hoek" "10.x.x" + "@hapi/bounce@2.x.x", "@hapi/bounce@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@hapi/bounce/-/bounce-2.0.0.tgz#e6ef56991c366b1e2738b2cd83b01354d938cf3d" @@ -138,11 +104,6 @@ resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== -"@hapi/bourne@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - "@hapi/call@^8.0.0": version "8.0.1" resolved "https://registry.yarnpkg.com/@hapi/call/-/call-8.0.1.tgz#9e64cd8ba6128eb5be6e432caaa572b1ed8cd7c0" @@ -226,17 +187,17 @@ "@hapi/hoek" "9.x.x" "@hapi/validate" "1.x.x" +"@hapi/hoek@10.x.x", "@hapi/hoek@^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-10.0.1.tgz#ee9da297fabc557e1c040a0f44ee89c266ccc306" + integrity sha512-CvlW7jmOhWzuqOqiJQ3rQVLMcREh0eel4IBnxDx2FAcK8g7qoJRQK4L1CPBASoCY6y8e6zuCy3f2g+HWdkzcMw== + "@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/iron@6.x.x": +"@hapi/iron@6.x.x", "@hapi/iron@^6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== @@ -290,7 +251,7 @@ resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== -"@hapi/podium@4.x.x", "@hapi/podium@^4.1.1": +"@hapi/podium@4.x.x", "@hapi/podium@^4.1.1", "@hapi/podium@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== @@ -377,20 +338,51 @@ "@hapi/bourne" "2.x.x" "@hapi/hoek" "9.x.x" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -502,20 +494,76 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/hapi__catbox@*": + version "10.2.4" + resolved "https://registry.yarnpkg.com/@types/hapi__catbox/-/hapi__catbox-10.2.4.tgz#4d0531a6c2d0e45024f724020d536041ef8ffe30" + integrity sha512-A6ivRrXD5glmnJna1UAGw87QNZRp/vdFO9U4GS+WhOMWzHnw+oTGkMvg0g6y1930CbeheGOCm7A1qHsqH7AXqg== + +"@types/hapi__hapi@^20.0.10": + version "20.0.12" + resolved "https://registry.yarnpkg.com/@types/hapi__hapi/-/hapi__hapi-20.0.12.tgz#f88bdfac7f05406d32f2453fbea8ee915fdc89c5" + integrity sha512-B+0fceCzFvbIOVv5YWOZzbHtEff8BLlGH3etrkcOedyj7F0unC5FjzFfaaO5gwlhJDdX0cmmMeRg2pwRdMa2CQ== + dependencies: + "@hapi/boom" "^9.0.0" + "@hapi/iron" "^6.0.0" + "@hapi/podium" "^4.1.3" + "@types/hapi__catbox" "*" + "@types/hapi__mimos" "*" + "@types/hapi__shot" "*" + "@types/node" "*" + joi "^17.3.0" + +"@types/hapi__mimos@*": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz#4f8a1c58345fc468553708d3cb508724aa081bd9" + integrity sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ== + dependencies: + "@types/mime-db" "*" + +"@types/hapi__shot@*": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@types/hapi__shot/-/hapi__shot-4.1.2.tgz#d4011999a91e8101030fece1462fe99769455855" + integrity sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA== + dependencies: + "@types/node" "*" + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/linkify-it@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" + integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== + "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/markdown-it@^12.2.3": + version "12.2.3" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== + dependencies: + "@types/linkify-it" "*" + "@types/mdurl" "*" + +"@types/mdurl@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/mime-db@*": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.1.tgz#c2a0522453bb9b6e84ee48b7eef765d19bcd519e" + integrity sha512-kGZJY+R+WnR5Rk+RPHUMERtb2qBRViIHCBdtUrY+NmwuGb8pQdfTqQiCKPrxpdoycl8KWm2DLdkpoSdt479XoQ== + "@types/mime@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.0.tgz#e9a9903894405c6a6551f1774df4e64d9804d69c" - integrity sha512-fccbsHKqFDXClBZTDLA43zl0+TbxyIwyzIzwwhvoJvhNjOErCdeX2xJbURimv2EbSVUGav001PaCJg4mZxMl4w== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/ms@*": version "0.7.31" @@ -523,14 +571,9 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.6.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98" - integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "18.7.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.14.tgz#0fe081752a3333392d00586d815485a17c2cf3c9" + integrity sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA== "@types/qs@*": version "6.9.7" @@ -551,9 +594,9 @@ "@types/node" "*" "@types/validator@^13.7.1": - version "13.7.4" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.4.tgz#33cc949ee87dd47c63e35ba4ad94f6888852be04" - integrity sha512-uAaSWegu2lymY18l+s5nmcXu3sFeeTOl1zhSGoYzcr6T3wz1M+3OcW4UjfPhIhHGd13tIMRDsEpR+d8w/MexwQ== + version "13.7.6" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.6.tgz#631f1acd15cbac9cb0a114da7e87575f1c95b46a" + integrity sha512-uBsnWETsUagQ0n6G2wcXNIufpTNJir0zqzG4p62fhnwzs48d/iuOWEEo0d3iUxN7D+9R/8CSvWGKS+KmaD0mWA== abbrev@1: version "1.1.1" @@ -567,10 +610,10 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -abstract-logging@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-1.0.0.tgz#8b7deafd310559bc28f77724dd1bb30177278c1b" - integrity sha512-CWDjsyA74oOOK6ekFOE00fEUR/twE2SUmXWFQpF1J1fxaq9wSI2tnK3z0vAhpEcmCqw8xD/+A2M2a2M+3bCe8A== +abstract-logging@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" + integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== accepts@~1.3.5: version "1.3.8" @@ -580,15 +623,15 @@ accepts@~1.3.5: mime-types "~2.1.34" negotiator "0.6.3" -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== agent-base@6: version "6.0.2" @@ -615,21 +658,6 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -647,13 +675,6 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -674,22 +695,10 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -args@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/args/-/args-5.0.3.tgz#943256db85021a85684be2f0882f25d796278702" - integrity sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA== - dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-flatten@1.1.1: version "1.1.1" @@ -707,6 +716,11 @@ array-includes@^3.1.4: get-intrinsic "^1.1.1" is-string "^1.0.7" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array.prototype.flat@^1.2.5: version "1.3.0" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" @@ -764,12 +778,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@^0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== +axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== dependencies: - follow-redirects "1.5.10" + follow-redirects "^1.14.9" + form-data "^4.0.0" babel-runtime@6.26.0: version "6.26.0" @@ -803,15 +818,15 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bigi@1.4.2, bigi@^1.1.0, bigi@^1.4.2: +bigi@^1.1.0, bigi@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" integrity sha512-ddkU+dFIuEIW8lE7ZwdIAf2UPoM90eaprg5m3YXAVVTmKlqV/9BX4A2M8BOK2yOq6/VgZFVhK6QAxJebhlbhzw== bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" + integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== binary-extensions@^2.0.0: version "2.2.0" @@ -826,6 +841,21 @@ bl@^2.2.1: readable-stream "^2.3.5" safe-buffer "^5.1.1" +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + body-parser@1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" @@ -850,6 +880,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -857,16 +894,10 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserify-aes@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" - integrity sha512-MMvWM6jpfsiuzY2Y+pRJvHRac3x3rHWQisWoz1dJaF9qDFsD8HdVxB7MyZKeLKeEt0fEjrXXZ0mxgTHSoJusug== - dependencies: - buffer-xor "^1.0.2" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - inherits "^2.0.1" +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserify-aes@^1.0.6: version "1.2.0" @@ -880,7 +911,7 @@ browserify-aes@^1.0.6: inherits "^2.0.1" safe-buffer "^5.0.1" -bs58@4.0.1, bs58@^4.0.1: +bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== @@ -902,7 +933,7 @@ buffer-writer@2.0.0: resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== -buffer-xor@^1.0.2, buffer-xor@^1.0.3: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== @@ -927,7 +958,7 @@ bunyan@^1.8.12: mv "~2" safe-json-stringify "~1" -bytebuffer@5.0.1, bytebuffer@^5.0.1: +bytebuffer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" integrity sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ== @@ -960,24 +991,17 @@ camel-case@^3.0.0: no-case "^2.2.0" upper-case "^1.1.1" -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== +catharsis@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" + integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" + lodash "^4.17.15" chalk@^4.0.0: version "4.1.2" @@ -1002,11 +1026,6 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1052,13 +1071,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -1066,22 +1078,17 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^2.0.16, colorette@^2.0.17: +colorette@^2.0.16, colorette@^2.0.17, colorette@^2.0.7: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1103,11 +1110,6 @@ commander@^9.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1148,27 +1150,6 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -create-hash@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - integrity sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - create-hash@^1.1.0, create-hash@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -1180,18 +1161,6 @@ create-hash@^1.1.0, create-hash@^1.1.3: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" - integrity sha512-23osI7H2SH6Zm4g7A7BTM9+3XicGZkemw00eEhrFViR3EdGru+azj2fMKf9J2zWMGO7AfPgYRdIRL96kkdy8QA== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - create-hmac@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" @@ -1204,13 +1173,12 @@ create-hmac@^1.1.6: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" - integrity sha512-sMF1jhA9GQ6PlBhneCxtCToyK7vHEEbmk+3DgZPjJaqsHSgsb69ajLMSOSmW5OLTDhZ0w+Fe8u7PQofZhJwqzQ== +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" + node-fetch "2.6.7" cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" @@ -1228,10 +1196,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -dateformat@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== debug@2.6.9, debug@^2.6.9: version "2.6.9" @@ -1240,20 +1208,13 @@ debug@2.6.9, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -1261,7 +1222,7 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -1317,6 +1278,13 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -1343,7 +1311,7 @@ dtrace-provider@~0.8: dependencies: nan "^2.14.0" -duplexify@^4.0.0: +duplexify@^4.0.0, duplexify@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== @@ -1373,13 +1341,6 @@ ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: dependencies: safe-buffer "^5.0.1" -ecurve@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.5.tgz#d148e8fe50a674f983bb5bae09da0ea23e10535e" - integrity sha512-1Z3Zu5Nh5LSVGnwEnie1LDoHZByZxG2tk3wftkqeVHrfujmR8O+dOh96HVPxRPh4BjRWX0Z9mpwCYv/O/njgDw== - dependencies: - bigi "^1.1.0" - ecurve@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" @@ -1393,6 +1354,19 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -1422,12 +1396,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== env-cmd@^10.1.0: version "10.1.0" @@ -1459,21 +1431,6 @@ eosjs-ecc@4.0.4: ecurve "^1.0.5" randombytes "^2.0.5" -eosjs-ecc@4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eosjs-ecc/-/eosjs-ecc-4.0.7.tgz#f5246da3b84839fcc237204768ef6e5ea56cc814" - integrity sha512-uuqhqnrDy9XTpKfkhiZqRDUTCCI9oWBalVK5IosL7kpYwA9I3lm68INYFLyWsHpF2xwHqPql8MrMYJ3zfOn5Qg== - dependencies: - "@babel/runtime" "7.6.0" - bigi "1.4.2" - browserify-aes "1.0.6" - bs58 "4.0.1" - bytebuffer "5.0.1" - create-hash "1.1.3" - create-hmac "1.1.6" - ecurve "1.0.5" - randombytes "2.0.5" - eosjs@20.0.0-b06ca22.0: version "20.0.0-b06ca22.0" resolved "https://registry.yarnpkg.com/eosjs/-/eosjs-20.0.0-b06ca22.0.tgz#583bbfe4be3e48c9fba21c9296162161e04905d6" @@ -1483,21 +1440,15 @@ eosjs@20.0.0-b06ca22.0: eosjs-ecc "4.0.4" text-encoding "0.7.0" -eosjs@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/eosjs/-/eosjs-20.0.3.tgz#f3ac1fa119b76dd07bf2825ad27342f6502a533b" - integrity sha512-h0WSxsDo7AHz5IzpbQDrzyT/CYmbBDtFiiolTdtGd2FdKXEa6LDER4WbNp4qxCY7kD65KeG3knkGmOOFGbPJxw== - dependencies: - babel-runtime "6.26.0" - eosjs-ecc "4.0.7" - text-encoding "0.7.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== +eosjs@^22.1.0: + version "22.1.0" + resolved "https://registry.yarnpkg.com/eosjs/-/eosjs-22.1.0.tgz#7ac40e2f1f959fab70539c30ac8ae46c9038aa3c" + integrity sha512-Ka8KO7akC3RxNdSg/3dkGWuUWUQESTzSUzQljBdVP16UG548vmQoBqSGnZdnjlZyfcab8VOu2iEt+JjyfYc5+A== dependencies: - is-arrayish "^0.2.1" + bn.js "5.2.0" + elliptic "6.5.4" + hash.js "1.1.7" + pako "2.0.3" es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: version "1.20.1" @@ -1554,27 +1505,37 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== +escodegen@^1.13.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: - get-stdin "^6.0.0" + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== +eslint-config-prettier@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + +eslint-config-standard@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" + integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== eslint-import-resolver-node@^0.3.6: version "0.3.6" @@ -1585,12 +1546,11 @@ eslint-import-resolver-node@^0.3.6: resolve "^1.20.0" eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" eslint-plugin-es@^3.0.0: version "3.0.1" @@ -1631,39 +1591,46 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^3.1.3: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" - integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== +eslint-plugin-promise@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz#a8cddf96a67c4059bdabf4d724a29572188ae423" + integrity sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw== -eslint-plugin-standard@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== +eslint-plugin-standard@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4" + integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: esrecurse "^4.3.0" - estraverse "^4.1.1" + estraverse "^5.2.0" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -1673,62 +1640,66 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.6.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.21.0: + version "8.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" + integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== + dependencies: + "@eslint/eslintrc" "^1.3.1" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" + find-up "^5.0.0" functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" + glob-parent "^6.0.1" + globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" + regexpp "^3.2.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" - table "^6.0.9" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.0.0, espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" -esprima@^4.0.0: +esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -1747,7 +1718,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -1772,7 +1743,7 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -1836,6 +1807,11 @@ extend@^3.0.2, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -1846,6 +1822,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +fast-copy@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-2.1.3.tgz#bf6e05ac3cb7a9d66fbf12c51dd4440e9ddd4afb" + integrity sha512-LDzYKNTHhD+XOp8wGMuCkY4eTxFZOOycmpwLBiuF3r3OjOmZnURRD8t2dUAbmKuXGbo/MGggwbSjcBdp8QT0+g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1856,22 +1837,33 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-redact@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-2.1.0.tgz#dfe3c1ca69367fb226f110aa4ec10ec85462ffdf" - integrity sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A== +fast-redact@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== -fast-safe-stringify@^2.0.7: +fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -1881,6 +1873,13 @@ fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.4.tgz#bf1898ad800282a4e53c0ea9690704dd26e4298e" integrity sha512-x6lDDm/tBAzX9kmsPcZsNbvDs3Zey3+scsxaZElS8xWLgUMAg/oFLeewfUz0mu1CblHhhsu15jGkraldkFh8KQ== +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -1908,13 +1907,6 @@ finalhandler@1.1.1: statuses "~1.4.0" unpipe "~1.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -1923,13 +1915,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -1938,28 +1923,39 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - flatted@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" - integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" +follow-redirects@^1.14.9: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -2019,23 +2015,22 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gaxios@^4.0.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" - integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== +gaxios@^5.0.0, gaxios@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.0.1.tgz#50fc76a2d04bc1700ed8c3ff1561e52255dfc6e0" + integrity sha512-keK47BGKHyyOVQxgcUaSaFvr3ehZYAlvhvpHXy0YB2itzZef+GqZR8TBsfVRWghdwlKrYsn+8L8i3eblF7Oviw== dependencies: - abort-controller "^3.0.0" extend "^3.0.2" https-proxy-agent "^5.0.0" is-stream "^2.0.0" node-fetch "^2.6.7" -gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== +gcp-metadata@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.0.0.tgz#a00f999f60a4461401e7c515f8a3267cfb401ee7" + integrity sha512-gfwuX3yA3nNsHSWUL4KG90UulNiq922Ukj3wLTrcnX33BB7PwB1o0ubR8KVvXu9nJH+P5w1j2SQSNNqto+H0DA== dependencies: - gaxios "^4.0.0" + gaxios "^5.0.0" json-bigint "^1.0.0" get-caller-file@^2.0.5: @@ -2052,11 +2047,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -2084,6 +2074,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -2119,79 +2116,121 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.6.0, globals@^13.9.0: +glob@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^13.15.0: version "13.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" -google-auth-library@^7.14.0: - version "7.14.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" - integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +google-auth-library@^8.0.2: + version "8.4.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.4.0.tgz#3a5414344bb313ee64ceeef1f7e5162cc1fdf04b" + integrity sha512-cg/usxyQEmq4PPDBQRt+kGIrfL3k+mOrAoS9Xv1hitQL66AoY7iWvRBcYo3Rb0w4V1t9e/GqW2/D4honlAtMDg== dependencies: arrify "^2.0.0" base64-js "^1.3.0" ecdsa-sig-formatter "^1.0.11" fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" + gaxios "^5.0.0" + gcp-metadata "^5.0.0" + gtoken "^6.1.0" jws "^4.0.0" lru-cache "^6.0.0" -google-gax@^2.24.1: - version "2.30.5" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.30.5.tgz#e836f984f3228900a8336f608c83d75f9cb73eff" - integrity sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ== +google-gax@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.3.1.tgz#cd38b88d662949e19deb747a8cbd491977899ea8" + integrity sha512-fZPlX5EIuNAdkBA9PQMpulGmW9PolZCZeXuat3CBtYad9ngtBR1QQvOXFUG6krOvDmKOFzud0IRpmwpkBnOzVw== dependencies: "@grpc/grpc-js" "~1.6.0" - "@grpc/proto-loader" "^0.6.12" + "@grpc/proto-loader" "^0.7.0" "@types/long" "^4.0.0" abort-controller "^3.0.0" duplexify "^4.0.0" fast-text-encoding "^1.0.3" - google-auth-library "^7.14.0" + google-auth-library "^8.0.2" is-stream-ended "^0.1.4" node-fetch "^2.6.1" object-hash "^3.0.0" - proto3-json-serializer "^0.1.8" - protobufjs "6.11.3" - retry-request "^4.0.0" + proto3-json-serializer "^1.0.0" + protobufjs "7.1.0" + protobufjs-cli "1.0.1" + retry-request "^5.0.0" -google-p12-pem@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" - integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== +google-p12-pem@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" + integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== dependencies: node-forge "^1.3.1" -graphql-request@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" - integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg== +graceful-fs@^4.1.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphql-request@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-4.3.0.tgz#b934e08fcae764aa2cdc697d3c821f046cb5dbf2" + integrity sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow== dependencies: - cross-fetch "2.2.2" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" -gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== +graphql@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + +gtoken@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.1.tgz#29ebf3e6893719176d180f5694f1cad525ce3c04" + integrity sha512-HPM4VzzPEGxjQ7T2xLrdSYBs+h1c0yHAUiN+8RHPDoiZbndlpg9Sx3SjWcrTt9+N3FHsSABEpjvdQVan5AAuZQ== dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" + gaxios "^5.0.1" + google-p12-pem "^4.0.0" jws "^4.0.0" -hapi-pino@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/hapi-pino/-/hapi-pino-6.5.0.tgz#33100f07626e7d8cef2b36965cbfb68cdb39c937" - integrity sha512-262F+AJpNHCCGIPpqugPtVWU2plXyCcjeXkbcrD60LRg/tcobLAHuzR6usNcKCansJbrcCy+/kBXYcKQGae7+g== +hapi-pino@^10.1.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/hapi-pino/-/hapi-pino-10.2.0.tgz#7f88dbce751f73e762bd3c53de8c59b2179bdfda" + integrity sha512-1sryQ0k3Zl6TqNfRem4rVIUq0dRovmZO/wvMR32DHyLUfRyjAf+P99ke8lmpi7vjtgH6TEmLF19nByqn5/XCQg== dependencies: - "@hapi/hoek" "^8.3.0" - abstract-logging "^1.0.0" - pino "^5.13.5" - pino-pretty "^3.2.2" + "@hapi/hoek" "^10.0.0" + "@types/hapi__hapi" "^20.0.10" + abstract-logging "^2.0.1" + get-caller-file "^2.0.5" + pino "^7.8.1" har-schema@^2.0.0: version "2.0.0" @@ -2228,7 +2267,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -2256,6 +2295,31 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +help-me@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.0.1.tgz#b618ca10ae1392508dfad5eca75fce03e25f7616" + integrity sha512-PLv01Z+OhEPKj2QPYB4kjoCUkopYNPUK3EROlaPIf5bib752fZ+VCvGDAoA+FXo/OwCyLEA4D2e0mX8+Zhcplw== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -2275,10 +2339,10 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http-status-codes@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-1.4.0.tgz#6e4c15d16ff3a9e2df03b89f3a55e1aae05fb477" - integrity sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ== +http-status-codes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" + integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== https-proxy-agent@^5.0.0: version "5.0.1" @@ -2293,21 +2357,10 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -husky@^4.2.3: - version "4.3.8" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" +husky@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== iconv-lite@0.4.23: version "0.4.23" @@ -2328,12 +2381,7 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1: +ignore@^5.1.1, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -2393,11 +2441,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -2426,9 +2469,9 @@ is-callable@^1.1.4, is-callable@^1.2.4: integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -2562,12 +2605,7 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -jmespath@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== - -joi@^17.4.0: +joi@^17.3.0, joi@^17.4.0: version "17.6.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== @@ -2578,29 +2616,51 @@ joi@^17.4.0: "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" -joycon@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" - integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js2xmlparser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" + integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + xmlcreate "^2.0.4" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jsdoc@^3.6.3: + version "3.6.11" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" + integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== + dependencies: + "@babel/parser" "^7.9.4" + "@types/markdown-it" "^12.2.3" + bluebird "^3.7.2" + catharsis "^0.9.0" + escape-string-regexp "^2.0.0" + js2xmlparser "^4.0.2" + klaw "^3.0.0" + markdown-it "^12.3.2" + markdown-it-anchor "^8.4.1" + marked "^4.0.10" + mkdirp "^1.0.4" + requizzle "^0.2.3" + strip-json-comments "^3.1.0" + taffydb "2.6.2" + underscore "~1.13.2" + json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -2608,21 +2668,11 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-schema@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" @@ -2672,10 +2722,12 @@ jws@^4.0.0: jwa "^2.0.0" safe-buffer "^5.0.1" -leven@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== +klaw@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== + dependencies: + graceful-fs "^4.1.9" levn@^0.4.1: version "0.4.1" @@ -2685,15 +2737,25 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + lilconfig@2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== + dependencies: + uc.micro "^1.0.1" lint-staged@>=10: version "13.0.3" @@ -2728,14 +2790,6 @@ listr2@^4.0.5: through "^2.3.8" wrap-ansi "^7.0.0" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -2753,17 +2807,12 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - lodash@4.17.14: version "4.17.14" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== -lodash@^4.17.19, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2810,6 +2859,27 @@ manakin@0.5.2: resolved "https://registry.yarnpkg.com/manakin/-/manakin-0.5.2.tgz#abe3df430ca6085f6983f6e4cf5af0298f4d30cc" integrity sha512-pfDSB7QYoVg0Io4KMV9hhPoXpj6p0uBscgtyUSKCOFZe8bqgbpStfgnKIbF/ulnr6U3ICu4OqdyxAqBgOhZwBQ== +markdown-it-anchor@^8.4.1: + version "8.6.4" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.4.tgz#affb8aa0910a504c114e9fcad53ac3a5b907b0e6" + integrity sha512-Ul4YVYZNxMJYALpKtu+ZRdrryYt/GlQ5CK+4l1bp/gWXOG2QWElt6AqF3Mih/wfUKdZbNAZVXGR73/n6U/8img== + +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +marked@^4.0.10: + version "4.1.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.1.0.tgz#3fc6e7485f21c1ca5d6ec4a39de820e146954796" + integrity sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA== + massive@^5.7.5: version "5.11.2" resolved "https://registry.yarnpkg.com/massive/-/massive-5.11.2.tgz#98c6c95b3398746689711ca940ab00fa45eed56a" @@ -2830,6 +2900,11 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -2850,12 +2925,17 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.5: +micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -2890,6 +2970,16 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + "minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -2897,11 +2987,23 @@ mimic-fn@^4.0.0: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -2910,9 +3012,9 @@ mkdirp@~0.5.1: minimist "^1.2.6" moment-timezone@^0.5.34: - version "0.5.34" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" - integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== + version "0.5.37" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.37.tgz#adf97f719c4e458fdb12e2b4e87b8bec9f4eef1e" + integrity sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg== dependencies: moment ">= 2.9.0" @@ -2934,11 +3036,6 @@ mongodb@^3.1.3: optionalDependencies: saslprep "^1.0.0" -mri@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -2990,10 +3087,12 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q== +node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-fetch@^1.0.1: version "1.7.3" @@ -3003,13 +3102,6 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -3071,13 +3163,13 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.values@^1.1.5: @@ -3089,6 +3181,16 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -3117,11 +3219,6 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - optional-require@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7" @@ -3129,6 +3226,18 @@ optional-require@^1.1.8: dependencies: require-at "^1.0.6" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -3141,13 +3250,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -3155,13 +3257,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -3176,16 +3271,16 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - packet-reader@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== +pako@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.3.tgz#cdf475e31b678565251406de9e759196a0ea7a43" + integrity sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3193,26 +3288,11 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parseurl@~1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3290,10 +3370,10 @@ pg-pool@^2.0.4: resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a" integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg== -pg-pool@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.1.tgz#f499ce76f9bf5097488b3b83b19861f28e4ed905" - integrity sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ== +pg-pool@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.2.tgz#ed1bed1fb8d79f1c6fd5fb1c99e990fbf9ddf178" + integrity sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w== pg-promise@8.7.4: version "8.7.4" @@ -3354,14 +3434,14 @@ pg@7.11.0: semver "4.3.2" pg@^8.6.0: - version "8.7.3" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.3.tgz#8a5bdd664ca4fda4db7997ec634c6e5455b27c44" - integrity sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw== + version "8.8.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.8.0.tgz#a77f41f9d9ede7009abfca54667c775a240da686" + integrity sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" pg-connection-string "^2.5.0" - pg-pool "^3.5.1" + pg-pool "^3.5.2" pg-protocol "^1.5.0" pg-types "^2.1.0" pgpass "1.x" @@ -3383,53 +3463,63 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -pino-pretty@^3.2.2: - version "3.6.1" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-3.6.1.tgz#61aabf9bf851d0ed831f7e9b813dea20f61116a3" - integrity sha512-S3bal+Yd313OEaPijbf7V+jPxVaTaRO5RQX8S/Mwdtb/8+JOgo1KolDeJTfMDTU2/k6+MHvEbxv+T1ZRfGlnjA== - dependencies: - "@hapi/bourne" "^1.3.2" - args "^5.0.1" - chalk "^2.4.2" - dateformat "^3.0.3" - fast-safe-stringify "^2.0.7" - jmespath "^0.15.0" - joycon "^2.2.5" +pino-abstract-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-pretty@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.1.0.tgz#162f525944d7eede154db8055cb0ab5e00bde0c4" + integrity sha512-IM6NY9LLo/dVgY7/prJhCh4rAJukafdt0ibxeNOWc2fxKMyTk90SOB9Ao2HfbtShT9QPeP0ePpJktksMhSQMYA== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^2.1.1" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" pump "^3.0.0" - readable-stream "^3.4.0" - split2 "^3.1.1" - strip-json-comments "^3.0.1" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" -pino-std-serializers@^2.4.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz#40ead781c65a0ce7ecd9c1c33f409d31fe712315" - integrity sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg== - -pino@^5.13.5: - version "5.17.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-5.17.0.tgz#b9def314e82402154f89a25d76a31f20ca84b4c8" - integrity sha512-LqrqmRcJz8etUjyV0ddqB6OTUutCgQULPFg2b4dtijRHUsucaAdBgSUW58vY6RFSX+NT8963F+q0tM6lNwGShA== - dependencies: - fast-redact "^2.0.0" - fast-safe-stringify "^2.0.7" - flatstr "^1.0.12" - pino-std-serializers "^2.4.2" - quick-format-unescaped "^3.0.3" - sonic-boom "^0.7.5" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== +pino@^7.8.1: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== dependencies: - semver-compare "^1.0.0" + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" postgres-array@~2.0.0: version "2.0.0" @@ -3458,6 +3548,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -3465,51 +3560,48 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== -proto3-json-serializer@^0.1.8: - version "0.1.9" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz#705ddb41b009dd3e6fcd8123edd72926abf65a34" - integrity sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ== +proto3-json-serializer@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-1.1.0.tgz#52d9c73b24d25ff925639e1e5a01ac883460149f" + integrity sha512-SjXwUWe/vANGs/mJJTbw5++7U67nwsymg7qsoPtw6GiXqw3kUy8ByojrlEdVE2efxAdKreX8WkDafxvYW95ZQg== dependencies: - protobufjs "^6.11.2" + protobufjs "^7.0.0" -protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== +protobufjs-cli@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.0.1.tgz#282d7b9b0fd90e72a2a61452c1f5710aacc013e2" + integrity sha512-d7m/aaXimDTaVvvPdU0HFwzieKJqo3x+z6iVly79jqLFyg5EmY9tl3vGbBqdytcOzT/acriOhOtB4xj3Kqixmw== dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" + chalk "^4.0.0" + escodegen "^1.13.0" + espree "^9.0.0" + estraverse "^5.1.0" + glob "^8.0.0" + jsdoc "^3.6.3" + minimist "^1.2.0" + semver "^7.1.2" + tmp "^0.2.1" + uglify-js "^3.7.7" -protobufjs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.0.0.tgz#8c678e1351fd926178fce5a4213913e8d990974f" - integrity sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w== +protobufjs@7.1.0, protobufjs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.0.tgz#5174b5f96fad4f7dea7dd4abd594042ac360e665" + integrity sha512-rCuxKlh0UQKSMjrpIcTLbR5TtGQ52cgs1a5nUoPBAKOccdPblN67BJtjrbtudUJK6HmBvUdsmymyYOzO7lxZEA== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -3521,7 +3613,6 @@ protobufjs@^7.0.0: "@protobufjs/path" "^1.1.2" "@protobufjs/pool" "^1.1.0" "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" "@types/node" ">=13.7.0" long "^5.0.0" @@ -3566,17 +3657,15 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -quick-format-unescaped@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" - integrity sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" - integrity sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg== - dependencies: - safe-buffer "^5.1.0" +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== randombytes@^2.0.5: version "2.1.0" @@ -3613,7 +3702,7 @@ readable-stream@^2.3.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -3622,6 +3711,13 @@ readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.1.0.tgz#280d0a29f559d3fb684a277254e02b6f61ae0631" + integrity sha512-sVisi3+P2lJ2t0BPbpK629j8wRW06yKGJUcaLAGXPAUhyUxVJm7VsCTit1PFgT4JHUDMrGNR+ZjSKpzGaRF3zw== + dependencies: + abort-controller "^3.0.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -3629,16 +3725,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.2: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" @@ -3648,7 +3744,7 @@ regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.0.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== @@ -3705,10 +3801,12 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +requizzle@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" + integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== + dependencies: + lodash "^4.17.14" resolve-from@^4.0.0: version "4.0.0" @@ -3737,20 +3835,25 @@ retry-as-promised@^5.0.0: resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-5.0.0.tgz#f4ecc25133603a2d2a7aff4a128691d7bc506d54" integrity sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA== -retry-request@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" - integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== +retry-request@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.1.tgz#c6be2a4a36f1554ba3251fa8fd945af26ee0e9ec" + integrity sha512-lxFKrlBt0OZzCWh/V0uPEN0vlr3OhdeXnpeY5OES+ckslm791Cb1D5P7lJUSnY7J5hiCjcyaUGmzCnIGDCUBig== dependencies: debug "^4.1.1" extend "^3.0.2" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3772,6 +3875,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + rxjs@^7.5.5: version "7.5.6" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" @@ -3794,6 +3904,11 @@ safe-json-stringify@~1: resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== +safe-stable-stringify@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" + integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -3806,15 +3921,10 @@ saslprep@^1.0.0: dependencies: sparse-bitfield "^3.0.3" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -semver-regex@^3.1.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.4.tgz#13053c0d4aa11d070a2f2872b6b1e3ae1e1971b4" - integrity sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA== +secure-json-parse@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.5.0.tgz#f929829df2adc7ccfb53703569894d051493a6ac" + integrity sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w== semver@4.3.2: version "4.3.2" @@ -3831,7 +3941,7 @@ semver@^6.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.5: +semver@^7.1.2, semver@^7.3.5: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -3868,9 +3978,9 @@ sequelize-pool@^7.1.0: integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== sequelize@^6.6.2: - version "6.21.3" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.21.3.tgz#6026b088b5327f8cc0501b0e7e5a8de1bf0346ce" - integrity sha512-cJPrTTVCofUxaaNKoIETiXCYh2xJ+OFq5jMHJQqftp34M4kNoLpTfUMPSwYtRUeTcSh1/5HodfJXIBi7troIFA== + version "6.21.4" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.21.4.tgz#8f5cb248d7cfc86ca9bf7e1f8306ac4bd83167de" + integrity sha512-5A0+giRhGHerTDRMsZ54TYRB8oQPWxeVscbc4USG9wRtw2Eqik0Vk0p2EVDrhoq7tmNBh2nHpd9YMfvGdwPEJw== dependencies: "@types/debug" "^4.1.7" "@types/validator" "^13.7.1" @@ -3976,13 +4086,24 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -sonic-boom@^0.7.5: - version "0.7.7" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-0.7.7.tgz#d921de887428208bfa07b0ae32c278de043f350a" - integrity sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg== +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== dependencies: atomic-sleep "^1.0.0" - flatstr "^1.0.12" + +sonic-boom@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" + integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== + dependencies: + atomic-sleep "^1.0.0" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sparse-bitfield@^3.0.3: version "3.0.3" @@ -3996,23 +4117,11 @@ spex@2.2.0: resolved "https://registry.yarnpkg.com/spex/-/spex-2.2.0.tgz#b0d825f43ca3c88a35bda79553296c83c07b4d63" integrity sha512-iwBxqKe4ZKD+P/i/WdzWw5qxmerHvzVb29wQm4zwYaDPuwsTKjS7nbqt8OyBSLAi2q0ZFUN3F2b4erX0UwF0fA== -split2@^3.1.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split2@^4.1.0: +split2@^4.0.0, split2@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - sshpk@^1.7.0: version "1.17.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" @@ -4053,7 +4162,7 @@ string-argv@^0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4127,12 +4236,12 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -4151,16 +4260,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== text-encoding@0.7.0: version "0.7.0" @@ -4172,11 +4275,25 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -4243,6 +4360,13 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -4261,6 +4385,16 @@ type-is@~1.6.16: media-typer "0.3.0" mime-types "~2.1.24" +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^3.7.7: + version "3.17.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.0.tgz#55bd6e9d19ce5eef0d5ad17cd1f587d85b180a85" + integrity sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -4276,7 +4410,7 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -underscore@^1.13.1: +underscore@^1.13.1, underscore@~1.13.2: version "1.13.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee" integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ== @@ -4318,11 +4452,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - validator@^13.7.0: version "13.7.0" resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" @@ -4347,11 +4476,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-fetch@>=0.10.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" @@ -4376,11 +4500,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-pm-runs@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" - integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -4395,7 +4514,7 @@ wkx@^0.5.0: dependencies: "@types/node" "*" -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -4423,10 +4542,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^7.4.4: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + +xmlcreate@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" + integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== xtend@^4.0.0: version "4.0.2" @@ -4443,11 +4567,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yaml@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" diff --git a/makefile b/makefile index 74de7e6a..615d9e39 100644 --- a/makefile +++ b/makefile @@ -24,67 +24,72 @@ clean: @docker system prune jungle: - @cat ".env.jungle" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.jungle" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start telos: - @cat ".env.telos" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.telos" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start telostestnet: - @cat ".env.telostestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.telostestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start lacchain: - @cat ".env.lacchain" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.lacchain" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start protontestnet: - @cat ".env.protontestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.protontestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start proton: - @cat ".env.proton" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.proton" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start waxtestnet: - @cat ".env.waxtestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.waxtestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start airwire: - @cat ".env.airwire" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.airwire" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start airwiretestnet: - @cat ".env.airwiretestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.airwiretestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + make stop + make start + +libre: + @cat ".env.libre" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start ultratestnet: - @cat ".env.ultratestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.ultratestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start libretestnet: - @cat ".env.libretestnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.libretestnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start local: - @cat ".env.local" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.local" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start mainnet: - @cat ".env.mainnet" | sed -e 's/REACT_APP_TAG=dev/REACT_APP_TAG=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" + @cat ".env.mainnet" | sed -e 's/REACT_APP_VERSION=dev/REACT_APP_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1`)/g' > ".env" make stop make start diff --git a/webapp/.eslintrc b/webapp/.eslintrc deleted file mode 100644 index 0dd1039a..00000000 --- a/webapp/.eslintrc +++ /dev/null @@ -1,23 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": [ - "standard", - "standard-react", - "prettier/react", - "prettier/standard", - "plugin:react/recommended", - "plugin:prettier/recommended" - ], - "env": { - "jest": true, - "browser": true - }, - "rules": { - "complexity": [ - "error", - { - "max": 21 - } - ] - } -} diff --git a/webapp/.eslintrc.js b/webapp/.eslintrc.js new file mode 100644 index 00000000..2eb889f1 --- /dev/null +++ b/webapp/.eslintrc.js @@ -0,0 +1,36 @@ +module.exports = { + parser: '@babel/eslint-parser', + env: { + browser: true, + es2021: true, + jest: true + }, + extends: ['plugin:react/recommended', 'standard'], + overrides: [], + parserOptions: { + requireConfigFile: false, + ecmaVersion: 'latest', + sourceType: 'module', + presets: ['@babel/preset-react'] + }, + plugins: ['react'], + rules: { + indent: ['error', 2], + 'comma-dangle': 'off', + curly: 'off', + 'space-before-function-paren': [ + 'error', + { + anonymous: 'ignore', + named: 'ignore', + asyncArrow: 'ignore' + } + ], + complexity: [ + 'error', + { + max: 21 + } + ] + } +} diff --git a/webapp/Dockerfile b/webapp/Dockerfile index 51c4c696..499aec3b 100644 --- a/webapp/Dockerfile +++ b/webapp/Dockerfile @@ -59,7 +59,7 @@ ENV REACT_APP_TOKEN_SYMBOL $react_app_token_symbol ENV REACT_APP_DISABLED_MENU_ITEMS $react_app_disabled_menu_items ENV REACT_APP_NETWORK_URL $react_app_network_url ENV REACT_APP_BLOCK_EXPLORER_URL $react_app_block_explorer_url -ENV REACT_APP_TAG $react_app_tag +ENV REACT_APP_VERSION $react_app_tag ENV REACT_APP_STATE_HISTORY_ENABLED $react_app_state_history_enabled ENV REACT_APP_GOOGLE_ANALITIC_PAGE_ID $react_app_google_analitic_page_id ENV REACT_APP_PUBLIC_RE_CAPTCHA_KEY $react_app_public_re_captcha_key diff --git a/webapp/makefile b/webapp/makefile index da1b8650..3d44c003 100644 --- a/webapp/makefile +++ b/webapp/makefile @@ -24,7 +24,7 @@ build-docker: ./Dockerfile -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_WEBAPP):$(LATEST_TAG) --target run-stage \ --build-arg port="$(PORT)" \ --build-arg react_app_title="$(REACT_APP_TITLE)" \ - --build-arg react_app_tag="$(REACT_APP_TAG)" \ + --build-arg react_app_tag="$(REACT_APP_VERSION)" \ --build-arg react_app_default_producer_logo="$(REACT_APP_DEFAULT_PRODUCER_LOGO)" \ --build-arg react_app_footer_links='$(REACT_APP_FOOTER_LINKS)' \ --build-arg react_app_eos_rate_link="$(REACT_APP_EOS_RATE_LINK)" \ @@ -48,9 +48,6 @@ build-docker: ./Dockerfile --build-arg react_app_eos_bp_json_on_chain_table="$(REACT_APP_EOS_BP_JSON_ON_CHAIN_TABLE)" \ --build-arg react_app_eos_bp_json_on_chain_scope="$(REACT_APP_EOS_BP_JSON_ON_CHAIN_SCOPE)" \ --build-arg react_app_token_symbol="$(REACT_APP_TOKEN_SYMBOL)" \ - --build-arg react_app_eos_mainnet="$(REACT_APP_EOS_MAINNET)" \ - --build-arg react_app_jungle_testnet="$(REACT_APP_JUNGLE_TESTNET)" \ - --build-arg react_app_lacchain_testnet="$(REACT_APP_LACCHAIN_TESTNET)" \ --build-arg react_app_disabled_menu_items='$(REACT_APP_DISABLED_MENU_ITEMS)' \ --build-arg react_app_network_url='$(REACT_APP_NETWORK_URL)' \ --build-arg react_app_block_explorer_url='$(REACT_APP_BLOCK_EXPLORER_URL)' \ diff --git a/webapp/package.json b/webapp/package.json index ed3f4402..3ad0a6df 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -29,7 +29,7 @@ "@dvsl/zoomcharts": "^1.19.0-1", "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", - "@eoscostarica/eoscr-components": "^4.0.2", + "@eoscostarica/eoscr-components": "^4.0.5", "@eoscostarica/ual-reactjs-renderer": "^0.3.1", "@mui/icons-material": "^5.8.4", "@mui/lab": "^5.0.0-alpha.90", @@ -53,7 +53,6 @@ "d3-interpolate": "^1.4.0", "d3-scale": "^3.2.1", "eosjs-api": "^7.0.4", - "flag-icon-css": "^3.4.6", "graphql": "^15.3.0", "graphql-tag": "^2.11.0", "highcharts": "^9.0.1", @@ -93,23 +92,27 @@ "ual-token-pocket": "^0.3.0" }, "devDependencies": { + "@babel/eslint-parser": "^7.18.9", "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "babel-eslint": "^10.1.0", + "@babel/preset-react": "^7.18.6", "babel-jest": "^24.9.0", "customize-cra": "^0.9.1", "env-cmd": "^10.1.0", + "eslint": "^6.6.0", "eslint-config-prettier": "^6.12.0", - "eslint-config-standard": "^14.1.1", + "eslint-config-standard": "^17.0.0", "eslint-config-standard-react": "^9.2.0", - "eslint-plugin-import": "^2.22.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-react": "^7.21.4", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-react": "^7.31.1", "eslint-plugin-standard": "^4.0.1", - "husky": "~4.2.3", + "flag-icon-css": "^4.1.7", + "husky": "^8.0.1", "lint-staged": ">=10", - "prettier": "^2.0.2", + "prettier": "^2.7.1", "react-app-rewired": "^2.1.5", "redux-mock-store": "^1.5.4" } diff --git a/webapp/public/index.html b/webapp/public/index.html index 3a25a688..7fdf1eb6 100644 --- a/webapp/public/index.html +++ b/webapp/public/index.html @@ -1,6 +1,9 @@ + { const div = document.createElement('div') @@ -21,6 +22,7 @@ it('renders without crashing', () => { loading: { effects: { user: { login: false } } } } const store = mockStore(initialState) + console.log(theme) ReactDOM.render( diff --git a/webapp/src/components/AccountInfo/index.js b/webapp/src/components/AccountInfo/index.js index 4989675e..b6bec1f8 100644 --- a/webapp/src/components/AccountInfo/index.js +++ b/webapp/src/components/AccountInfo/index.js @@ -3,11 +3,9 @@ import React, { useEffect, useState } from 'react' import { makeStyles } from '@mui/styles' import PropTypes from 'prop-types' import { useTranslation } from 'react-i18next' -import Grid from '@mui/material/Grid' import Typography from '@mui/material/Typography' import Identicon from 'react-identicons' import Accordion from '@mui/material/Accordion' -import Box from '@mui/material/Box' import AccordionSummary from '@mui/material/AccordionSummary' import AccordionDetails from '@mui/material/AccordionDetails' import ExpandMoreIcon from '@mui/icons-material/ExpandMore' @@ -21,13 +19,41 @@ import styles from './styles' const useStyles = makeStyles(styles) +const AccordionWrapper = ({ children, title }) => { + const classes = useStyles() + + return ( + + } + classes={{ + root: classes.accordionSummary, + }} + > + + {title} + + + {children} + + ) +} + +AccordionWrapper.propTypes = { + children: PropTypes.any, + title: PropTypes.string, +} + +AccordionWrapper.defaultProps = {} + const AccountInfo = ({ account, abi, hash, onSubmitAction, tableData, - onGetTableRows + tableName, + onGetTableRows, }) => { const classes = useStyles() const [info, setInfo] = useState(null) @@ -59,49 +85,44 @@ const AccountInfo = ({ ram_quota: ramQuota, cpu_limit: cpuLimit, net_limit: netLimit, - permissions + permissions, } = account const ram = { percent: ramUsage / ramQuota || 0, - label: `${getBytesLabel(ramUsage)} / ${getBytesLabel(ramQuota)}` + label: `${getBytesLabel(ramUsage)} / ${getBytesLabel(ramQuota)}`, } const cpu = { percent: cpuLimit.used / cpuLimit.max || 0, label: `${getMicrosecondsLabel(cpuLimit.used)} / ${getMicrosecondsLabel( - cpuLimit.max - )}` + cpuLimit.max, + )}`, } const net = { percent: netLimit.used / netLimit.max || 0, - label: `${getBytesLabel(netLimit.used)} / ${getBytesLabel(netLimit.max)}` + label: `${getBytesLabel(netLimit.used)} / ${getBytesLabel(netLimit.max)}`, } const keys = permissions.map((item) => ({ label: item.perm_name, - value: item.required_auth?.keys[0]?.key || '-' + value: item.required_auth?.keys[0]?.key || '-', })) setInfo({ ...account, ram, cpu, net, keys }) }, [account]) return ( - +
{!!info && ( <> - - - +
+
+
- +
{info.account_name || 'N/A'} - - +
+
{t('resources')} - +
- - - +
+
+
{t('keys')} - +
{info.keys.map((key) => ( @@ -151,79 +172,36 @@ const AccountInfo = ({ ))}
- - - +
+
+
{abi && ( <> - - - } - classes={{ - root: classes.accordionSummary - }} - > - - {t('contractActions')} - - - - - - - - - - - } - classes={{ - root: classes.accordionSummary - }} - > - - {t('contractTables')} - - - - - - - - - - - } - classes={{ - root: classes.accordionSummary - }} - > - - {t('ricardianContract')} - - - - - - - + + + + + + + + + )} )} - +
) } @@ -233,7 +211,8 @@ AccountInfo.propTypes = { hash: PropTypes.string, onSubmitAction: PropTypes.func, tableData: PropTypes.any, - onGetTableRows: PropTypes.func + tableName: PropTypes.string, + onGetTableRows: PropTypes.func, } AccountInfo.defaultProps = {} diff --git a/webapp/src/components/AccountInfo/styles.js b/webapp/src/components/AccountInfo/styles.js index f8d34b03..a94227e6 100644 --- a/webapp/src/components/AccountInfo/styles.js +++ b/webapp/src/components/AccountInfo/styles.js @@ -5,36 +5,40 @@ export default (theme) => ({ borderRadius: 10, padding: theme.spacing(4), width: '100%', + direction: 'column', + justify: 'space-between', height: 'auto', '&:focus': { - outline: 'none' + outline: 'none', }, - marginTop: theme.spacing(2) + marginTop: theme.spacing(2), + justifyContent: 'space-between', + flexDirection: 'column', }, accordion: { boxShadow: 'none', width: '100%', borderRadius: 0, - borderBottom: '1px solid rgba(0, 0, 0, 0.12)' + borderBottom: '1px solid rgba(0, 0, 0, 0.12)', }, accordionSummary: { - padding: 0 + padding: 0, }, keyItem: { display: 'flex', - textTransform: 'capitalize' + textTransform: 'capitalize', }, keyIcon: { marginRight: theme.spacing(1), - color: 'rgba(0, 0, 0, 0.54)' + color: 'rgba(0, 0, 0, 0.54)', }, keyLabel: { - wordBreak: 'break-all' + wordBreak: 'break-all', }, resourceWrapper: { alignItems: 'center', justifyContent: 'center', - display: 'flex' + display: 'flex', }, boxHeaderCard: { display: 'flex', @@ -44,47 +48,47 @@ export default (theme) => ({ display: 'flex', flexDirection: 'column', justifyContent: 'center', - alignItems: 'center' + alignItems: 'center', }, '& .resourceUsage': { display: 'flex', flexDirection: 'column', alignItems: 'center', '& .recharts-wrapper': { - marginBottom: theme.spacing(2) - } + marginBottom: theme.spacing(2), + }, }, [theme.breakpoints.up('sm')]: { '& .resourceUsage': { - flexDirection: 'row' - } + flexDirection: 'row', + }, }, [theme.breakpoints.up('md')]: { '& .columTitle': { - marginLeft: theme.spacing(2) + marginLeft: theme.spacing(2), }, '& .identicon': { - alignItems: 'end' + alignItems: 'end', }, '& .resourceUsage': { justifyContent: 'space-between', borderLeft: '1px solid rgba(0, 0, 0, 0.2)', paddingLeft: theme.spacing(2), - height: '100%' + height: '100%', }, '& .keys': { borderLeft: '1px solid rgba(0, 0, 0, 0.2)', paddingLeft: theme.spacing(2), - height: '100%' - } + height: '100%', + }, }, [theme.breakpoints.up('lg')]: { flexDirection: 'row', '& .identicon': { alignItems: 'center', - width: 200 - } - } + width: 200, + }, + }, }, iconBorder: { backgroundColor: '#f0f0f0', @@ -93,6 +97,6 @@ export default (theme) => ({ height: 85, display: 'flex', justifyContent: 'center', - alignItems: 'center' - } + alignItems: 'center', + }, }) diff --git a/webapp/src/components/ClusterMap/mapWorld.js b/webapp/src/components/ClusterMap/mapWorld.js index e24a30e8..e1437c57 100644 --- a/webapp/src/components/ClusterMap/mapWorld.js +++ b/webapp/src/components/ClusterMap/mapWorld.js @@ -1,14 +1,14 @@ export const mapWorld = { - title: "World, Miller projection, medium resolution", - version: "1.1.3", - type: "FeatureCollection", - copyright: "Copyright (c) 2020 Highsoft AS, Based on data from Natural Earth", - copyrightShort: "Natural Earth", - copyrightUrl: "http://www.naturalearthdata.com", - crs: { type: "name", properties: { name: "urn:ogc:def:crs:EPSG:54003" } }, - "hc-transform": { + title: 'World, Miller projection, medium resolution', + version: '1.1.3', + type: 'FeatureCollection', + copyright: 'Copyright (c) 2020 Highsoft AS, Based on data from Natural Earth', + copyrightShort: 'Natural Earth', + copyrightUrl: 'http://www.naturalearthdata.com', + crs: { type: 'name', properties: { name: 'urn:ogc:def:crs:EPSG:54003' } }, + 'hc-transform': { default: { - crs: "+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +datum=WGS84 +units=m +no_defs", + crs: '+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +datum=WGS84 +units=m +no_defs', scale: 1.72182781654e-5, jsonres: 15.5, jsonmarginX: -999, @@ -19,26 +19,26 @@ export const mapWorld = { }, features: [ { - type: "Feature", - id: "FO", + type: 'Feature', + id: 'FO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.54, - "hc-key": "fo", - "hc-a2": "FO", - name: "Faroe Islands", - labelrank: "6", - "country-abbrev": "Faeroe Is.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "FRO", - "iso-a2": "FO", - "woe-id": "23424816", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.54, + 'hc-key': 'fo', + 'hc-a2': 'FO', + name: 'Faroe Islands', + labelrank: '6', + 'country-abbrev': 'Faeroe Is.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'FRO', + 'iso-a2': 'FO', + 'woe-id': '23424816', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3991, 8611], @@ -51,26 +51,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "UM", + type: 'Feature', + id: 'UM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.58, - "hc-key": "um", - "hc-a2": "UM", - name: "United States Minor Outlying Islands", - labelrank: "5", - "country-abbrev": "U.S. MOI", - subregion: "Seven seas (open ocean)", - "region-wb": "East Asia & Pacific", - "iso-a3": "UMI", - "iso-a2": "UM", - "woe-id": "28289407", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.58, + 'hc-key': 'um', + 'hc-a2': 'UM', + name: 'United States Minor Outlying Islands', + labelrank: '5', + 'country-abbrev': 'U.S. MOI', + subregion: 'Seven seas (open ocean)', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'UMI', + 'iso-a2': 'UM', + 'woe-id': '28289407', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [-605, 6652], @@ -83,26 +83,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "US", + type: 'Feature', + id: 'US', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.68, - "hc-middle-y": 0.68, - "hc-key": "us", - "hc-a2": "US", - name: "United States of America", - labelrank: "2", - "country-abbrev": "U.S.A.", - subregion: "Northern America", - "region-wb": "North America", - "iso-a3": "USA", - "iso-a2": "US", - "woe-id": "23424977", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.68, + 'hc-middle-y': 0.68, + 'hc-key': 'us', + 'hc-a2': 'US', + name: 'United States of America', + labelrank: '2', + 'country-abbrev': 'U.S.A.', + subregion: 'Northern America', + 'region-wb': 'North America', + 'iso-a3': 'USA', + 'iso-a2': 'US', + 'woe-id': '23424977', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -726,26 +726,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "JP", + type: 'Feature', + id: 'JP', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.66, - "hc-key": "jp", - "hc-a2": "JP", - name: "Japan", - labelrank: "2", - "country-abbrev": "Japan", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "JPN", - "iso-a2": "JP", - "woe-id": "23424856", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.66, + 'hc-key': 'jp', + 'hc-a2': 'JP', + name: 'Japan', + labelrank: '2', + 'country-abbrev': 'Japan', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'JPN', + 'iso-a2': 'JP', + 'woe-id': '23424856', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -835,26 +835,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SC", + type: 'Feature', + id: 'SC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.58, - "hc-middle-y": 0.41, - "hc-key": "sc", - "hc-a2": "SC", - name: "Seychelles", - labelrank: "6", - "country-abbrev": "Syc.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SYC", - "iso-a2": "SC", - "woe-id": "23424941", - continent: "Seven seas (open ocean)", + 'hc-group': 'admin0', + 'hc-middle-x': 0.58, + 'hc-middle-y': 0.41, + 'hc-key': 'sc', + 'hc-a2': 'SC', + name: 'Seychelles', + labelrank: '6', + 'country-abbrev': 'Syc.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SYC', + 'iso-a2': 'SC', + 'woe-id': '23424941', + continent: 'Seven seas (open ocean)', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5849, 6344], @@ -867,26 +867,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IN", + type: 'Feature', + id: 'IN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.34, - "hc-middle-y": 0.43, - "hc-key": "in", - "hc-a2": "IN", - name: "India", - labelrank: "2", - "country-abbrev": "India", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "IND", - "iso-a2": "IN", - "woe-id": "23424848", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.34, + 'hc-middle-y': 0.43, + 'hc-key': 'in', + 'hc-a2': 'IN', + name: 'India', + labelrank: '2', + 'country-abbrev': 'India', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'IND', + 'iso-a2': 'IN', + 'woe-id': '23424848', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -998,26 +998,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "FR", + type: 'Feature', + id: 'FR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.28, - "hc-middle-y": 0.04, - "hc-key": "fr", - "hc-a2": "FR", - name: "France", - labelrank: "2", - "country-abbrev": "Fr.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "FRA", - "iso-a2": "FR", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.28, + 'hc-middle-y': 0.04, + 'hc-key': 'fr', + 'hc-a2': 'FR', + name: 'France', + labelrank: '2', + 'country-abbrev': 'Fr.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'FRA', + 'iso-a2': 'FR', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -1134,26 +1134,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "FM", + type: 'Feature', + id: 'FM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.52, - "hc-key": "fm", - "hc-a2": "FM", - name: "Federated States of Micronesia", - labelrank: "6", - "country-abbrev": "F.S.M.", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "FSM", - "iso-a2": "FM", - "woe-id": "23424815", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.52, + 'hc-key': 'fm', + 'hc-a2': 'FM', + name: 'Federated States of Micronesia', + labelrank: '6', + 'country-abbrev': 'F.S.M.', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'FSM', + 'iso-a2': 'FM', + 'woe-id': '23424815', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8899, 6684], @@ -1166,26 +1166,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CN", + type: 'Feature', + id: 'CN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.41, - "hc-middle-y": 0.56, - "hc-key": "cn", - "hc-a2": "CN", - name: "China", - labelrank: "2", - "country-abbrev": "China", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "CHN", - "iso-a2": "CN", - "woe-id": "23424781", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.41, + 'hc-middle-y': 0.56, + 'hc-key': 'cn', + 'hc-a2': 'CN', + name: 'China', + labelrank: '2', + 'country-abbrev': 'China', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'CHN', + 'iso-a2': 'CN', + 'woe-id': '23424781', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -1380,26 +1380,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PT", + type: 'Feature', + id: 'PT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.5, - "hc-key": "pt", - "hc-a2": "PT", - name: "Portugal", - labelrank: "2", - "country-abbrev": "Port.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "PRT", - "iso-a2": "PT", - "woe-id": "23424925", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.5, + 'hc-key': 'pt', + 'hc-a2': 'PT', + name: 'Portugal', + labelrank: '2', + 'country-abbrev': 'Port.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'PRT', + 'iso-a2': 'PT', + 'woe-id': '23424925', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3984, 7629], @@ -1418,26 +1418,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SW", + type: 'Feature', + id: 'SW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.86, - "hc-middle-y": 0.57, - "hc-key": "sw", - "hc-a2": "SW", - name: "Serranilla Bank", - labelrank: "5", - "country-abbrev": "S.B.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "-99", - "iso-a2": "SW", - "woe-id": "-99", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.86, + 'hc-middle-y': 0.57, + 'hc-key': 'sw', + 'hc-a2': 'SW', + name: 'Serranilla Bank', + labelrank: '5', + 'country-abbrev': 'S.B.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': '-99', + 'iso-a2': 'SW', + 'woe-id': '-99', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1870, 6950], @@ -1449,26 +1449,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SH", + type: 'Feature', + id: 'SH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.51, - "hc-key": "sh", - "hc-a2": "SH", - name: "Scarborough Reef", - labelrank: "6", - "country-abbrev": "S.R.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "-99", - "iso-a2": "SH", - "woe-id": "-99", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.51, + 'hc-key': 'sh', + 'hc-a2': 'SH', + name: 'Scarborough Reef', + labelrank: '6', + 'country-abbrev': 'S.R.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': '-99', + 'iso-a2': 'SH', + 'woe-id': '-99', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7699, 6929], @@ -1481,26 +1481,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BR", + type: 'Feature', + id: 'BR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.34, - "hc-key": "br", - "hc-a2": "BR", - name: "Brazil", - labelrank: "2", - "country-abbrev": "Brazil", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "BRA", - "iso-a2": "BR", - "woe-id": "23424768", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.34, + 'hc-key': 'br', + 'hc-a2': 'BR', + name: 'Brazil', + labelrank: '2', + 'country-abbrev': 'Brazil', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'BRA', + 'iso-a2': 'BR', + 'woe-id': '23424768', + continent: 'South America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -1630,26 +1630,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KI", + type: 'Feature', + id: 'KI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.28, - "hc-middle-y": 0.65, - "hc-key": "ki", - "hc-a2": "KI", - name: "Kiribati", - labelrank: "6", - "country-abbrev": "Kir.", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "KIR", - "iso-a2": "KI", - "woe-id": "23424867", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.28, + 'hc-middle-y': 0.65, + 'hc-key': 'ki', + 'hc-a2': 'KI', + name: 'Kiribati', + labelrank: '6', + 'country-abbrev': 'Kir.', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'KIR', + 'iso-a2': 'KI', + 'woe-id': '23424867', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [-468, 6538], @@ -1662,26 +1662,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PH", + type: 'Feature', + id: 'PH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.4, - "hc-middle-y": 0.19, - "hc-key": "ph", - "hc-a2": "PH", - name: "Philippines", - labelrank: "2", - "country-abbrev": "Phil.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "PHL", - "iso-a2": "PH", - "woe-id": "23424934", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.4, + 'hc-middle-y': 0.19, + 'hc-key': 'ph', + 'hc-a2': 'PH', + name: 'Philippines', + labelrank: '2', + 'country-abbrev': 'Phil.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'PHL', + 'iso-a2': 'PH', + 'woe-id': '23424934', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -1793,26 +1793,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MX", + type: 'Feature', + id: 'MX', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.51, - "hc-middle-y": 0.49, - "hc-key": "mx", - "hc-a2": "MX", - name: "Mexico", - labelrank: "2", - "country-abbrev": "Mex.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "MEX", - "iso-a2": "MX", - "woe-id": "23424900", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.51, + 'hc-middle-y': 0.49, + 'hc-key': 'mx', + 'hc-a2': 'MX', + name: 'Mexico', + labelrank: '2', + 'country-abbrev': 'Mex.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'MEX', + 'iso-a2': 'MX', + 'woe-id': '23424900', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -1977,26 +1977,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ES", + type: 'Feature', + id: 'ES', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.76, - "hc-middle-y": 0.27, - "hc-key": "es", - "hc-a2": "ES", - name: "Spain", - labelrank: "2", - "country-abbrev": "Sp.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "ESP", - "iso-a2": "ES", - "woe-id": "23424950", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.76, + 'hc-middle-y': 0.27, + 'hc-key': 'es', + 'hc-a2': 'ES', + name: 'Spain', + labelrank: '2', + 'country-abbrev': 'Sp.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ESP', + 'iso-a2': 'ES', + 'woe-id': '23424950', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -2070,26 +2070,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BU", + type: 'Feature', + id: 'BU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.73, - "hc-key": "bu", - "hc-a2": "BU", - name: "Bajo Nuevo Bank (Petrel Is.)", - labelrank: "8", - "country-abbrev": null, - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "-99", - "iso-a2": "BU", - "woe-id": "-99", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.73, + 'hc-key': 'bu', + 'hc-a2': 'BU', + name: 'Bajo Nuevo Bank (Petrel Is.)', + labelrank: '8', + 'country-abbrev': null, + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': '-99', + 'iso-a2': 'BU', + 'woe-id': '-99', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1830, 6948], @@ -2102,26 +2102,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MV", + type: 'Feature', + id: 'MV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.53, - "hc-key": "mv", - "hc-a2": "MV", - name: "Maldives", - labelrank: "5", - "country-abbrev": "Mald.", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "MDV", - "iso-a2": "MV", - "woe-id": "23424899", - continent: "Seven seas (open ocean)", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.53, + 'hc-key': 'mv', + 'hc-a2': 'MV', + name: 'Maldives', + labelrank: '5', + 'country-abbrev': 'Mald.', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'MDV', + 'iso-a2': 'MV', + 'woe-id': '23424899', + continent: 'Seven seas (open ocean)', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6382, 6647], @@ -2134,26 +2134,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SP", + type: 'Feature', + id: 'SP', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "sp", - "hc-a2": "SP", - name: "Spratly Islands", - labelrank: "6", - "country-abbrev": "Spratly Is.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "SPI", - "iso-a2": "SP", - "woe-id": "23424921", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'sp', + 'hc-a2': 'SP', + name: 'Spratly Islands', + labelrank: '6', + 'country-abbrev': 'Spratly Is.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'SPI', + 'iso-a2': 'SP', + 'woe-id': '23424921', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7642, 6799], @@ -2166,26 +2166,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GB", + type: 'Feature', + id: 'GB', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.69, - "hc-middle-y": 0.09, - "hc-key": "gb", - "hc-a2": "GB", - name: "United Kingdom", - labelrank: "2", - "country-abbrev": "U.K.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "GBR", - "iso-a2": "GB", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.69, + 'hc-middle-y': 0.09, + 'hc-key': 'gb', + 'hc-a2': 'GB', + name: 'United Kingdom', + labelrank: '2', + 'country-abbrev': 'U.K.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'GBR', + 'iso-a2': 'GB', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -2386,26 +2386,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GR", + type: 'Feature', + id: 'GR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.3, - "hc-middle-y": 0.43, - "hc-key": "gr", - "hc-a2": "GR", - name: "Greece", - labelrank: "3", - "country-abbrev": "Greece", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "GRC", - "iso-a2": "GR", - "woe-id": "23424833", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.3, + 'hc-middle-y': 0.43, + 'hc-key': 'gr', + 'hc-a2': 'GR', + name: 'Greece', + labelrank: '3', + 'country-abbrev': 'Greece', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'GRC', + 'iso-a2': 'GR', + 'woe-id': '23424833', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -2537,26 +2537,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AS", + type: 'Feature', + id: 'AS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.56, - "hc-middle-y": 0.57, - "hc-key": "as", - "hc-a2": "AS", - name: "American Samoa", - labelrank: "4", - "country-abbrev": "Am. Samoa", - subregion: "Polynesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "ASM", - "iso-a2": "AS", - "woe-id": "23424746", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.56, + 'hc-middle-y': 0.57, + 'hc-key': 'as', + 'hc-a2': 'AS', + name: 'American Samoa', + labelrank: '4', + 'country-abbrev': 'Am. Samoa', + subregion: 'Polynesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'ASM', + 'iso-a2': 'AS', + 'woe-id': '23424746', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [-859, 6056], @@ -2569,26 +2569,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DK", + type: 'Feature', + id: 'DK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.35, - "hc-middle-y": 0.49, - "hc-key": "dk", - "hc-a2": "DK", - name: "Denmark", - labelrank: "4", - "country-abbrev": "Den.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "DNK", - "iso-a2": "DK", - "woe-id": "23424796", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.35, + 'hc-middle-y': 0.49, + 'hc-key': 'dk', + 'hc-a2': 'DK', + name: 'Denmark', + labelrank: '4', + 'country-abbrev': 'Den.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'DNK', + 'iso-a2': 'DK', + 'woe-id': '23424796', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -2664,26 +2664,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GL", + type: 'Feature', + id: 'GL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.55, - "hc-middle-y": 0.43, - "hc-key": "gl", - "hc-a2": "GL", - name: "Greenland", - labelrank: "3", - "country-abbrev": "Grlnd.", - subregion: "Northern America", - "region-wb": "Europe & Central Asia", - "iso-a3": "GRL", - "iso-a2": "GL", - "woe-id": "23424828", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.55, + 'hc-middle-y': 0.43, + 'hc-key': 'gl', + 'hc-a2': 'GL', + name: 'Greenland', + labelrank: '3', + 'country-abbrev': 'Grlnd.', + subregion: 'Northern America', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'GRL', + 'iso-a2': 'GL', + 'woe-id': '23424828', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -3118,26 +3118,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GU", + type: 'Feature', + id: 'GU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.44, - "hc-key": "gu", - "hc-a2": "GU", - name: "Guam", - labelrank: "6", - "country-abbrev": "Guam", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "GUM", - "iso-a2": "GU", - "woe-id": "23424832", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.44, + 'hc-key': 'gu', + 'hc-a2': 'GU', + name: 'Guam', + labelrank: '6', + 'country-abbrev': 'Guam', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'GUM', + 'iso-a2': 'GU', + 'woe-id': '23424832', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8501, 6877], @@ -3150,26 +3150,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MP", + type: 'Feature', + id: 'MP', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.49, - "hc-key": "mp", - "hc-a2": "MP", - name: "Northern Mariana Islands", - labelrank: "6", - "country-abbrev": "N.M.I.", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "MNP", - "iso-a2": "MP", - "woe-id": "23424788", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.49, + 'hc-key': 'mp', + 'hc-a2': 'MP', + name: 'Northern Mariana Islands', + labelrank: '6', + 'country-abbrev': 'N.M.I.', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'MNP', + 'iso-a2': 'MP', + 'woe-id': '23424788', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8526, 6925], @@ -3182,26 +3182,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PR", + type: 'Feature', + id: 'PR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.65, - "hc-key": "pr", - "hc-a2": "PR", - name: "Puerto Rico", - labelrank: "5", - "country-abbrev": "P.R.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "PRI", - "iso-a2": "PR", - "woe-id": "23424935", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.65, + 'hc-key': 'pr', + 'hc-a2': 'PR', + name: 'Puerto Rico', + labelrank: '5', + 'country-abbrev': 'P.R.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'PRI', + 'iso-a2': 'PR', + 'woe-id': '23424935', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2267, 7024], @@ -3214,26 +3214,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VI", + type: 'Feature', + id: 'VI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.19, - "hc-key": "vi", - "hc-a2": "VI", - name: "United States Virgin Islands", - labelrank: "6", - "country-abbrev": "V.I. (U.S.)", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "VIR", - "iso-a2": "VI", - "woe-id": "23424985", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.19, + 'hc-key': 'vi', + 'hc-a2': 'VI', + name: 'United States Virgin Islands', + labelrank: '6', + 'country-abbrev': 'V.I. (U.S.)', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'VIR', + 'iso-a2': 'VI', + 'woe-id': '23424985', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2283, 7008], @@ -3246,26 +3246,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CA", + type: 'Feature', + id: 'CA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.29, - "hc-middle-y": 0.64, - "hc-key": "ca", - "hc-a2": "CA", - name: "Canada", - labelrank: "2", - "country-abbrev": "Can.", - subregion: "Northern America", - "region-wb": "North America", - "iso-a3": "CAN", - "iso-a2": "CA", - "woe-id": "23424775", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.29, + 'hc-middle-y': 0.64, + 'hc-key': 'ca', + 'hc-a2': 'CA', + name: 'Canada', + labelrank: '2', + 'country-abbrev': 'Can.', + subregion: 'Northern America', + 'region-wb': 'North America', + 'iso-a3': 'CAN', + 'iso-a2': 'CA', + 'woe-id': '23424775', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -5579,26 +5579,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ST", + type: 'Feature', + id: 'ST', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.55, - "hc-middle-y": 0.5, - "hc-key": "st", - "hc-a2": "ST", - name: "Sao Tome and Principe", - labelrank: "6", - "country-abbrev": "S.T.P.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "STP", - "iso-a2": "ST", - "woe-id": "23424966", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.55, + 'hc-middle-y': 0.5, + 'hc-key': 'st', + 'hc-a2': 'ST', + name: 'Sao Tome and Principe', + labelrank: '6', + 'country-abbrev': 'S.T.P.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'STP', + 'iso-a2': 'ST', + 'woe-id': '23424966', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4400, 6481], @@ -5611,26 +5611,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CV", + type: 'Feature', + id: 'CV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.56, - "hc-middle-y": 0.5, - "hc-key": "cv", - "hc-a2": "CV", - name: "Cape Verde", - labelrank: "4", - "country-abbrev": "C.Vd.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "CPV", - "iso-a2": "CV", - "woe-id": "23424794", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.56, + 'hc-middle-y': 0.5, + 'hc-key': 'cv', + 'hc-a2': 'CV', + name: 'Cape Verde', + labelrank: '4', + 'country-abbrev': 'C.Vd.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'CPV', + 'iso-a2': 'CV', + 'woe-id': '23424794', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3499, 6934], @@ -5643,26 +5643,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DM", + type: 'Feature', + id: 'DM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.47, - "hc-key": "dm", - "hc-a2": "DM", - name: "Dominica", - labelrank: "6", - "country-abbrev": "D'inca", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "DMA", - "iso-a2": "DM", - "woe-id": "23424798", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.47, + 'hc-key': 'dm', + 'hc-a2': 'DM', + name: 'Dominica', + labelrank: '6', + 'country-abbrev': "D'inca", + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'DMA', + 'iso-a2': 'DM', + 'woe-id': '23424798', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2382, 6942], @@ -5675,26 +5675,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NL", + type: 'Feature', + id: 'NL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.99, - "hc-middle-y": 0.01, - "hc-key": "nl", - "hc-a2": "NL", - name: "Netherlands", - labelrank: "5", - "country-abbrev": "Neth.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "NLD", - "iso-a2": "NL", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.99, + 'hc-middle-y': 0.01, + 'hc-key': 'nl', + 'hc-a2': 'NL', + name: 'Netherlands', + labelrank: '5', + 'country-abbrev': 'Neth.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'NLD', + 'iso-a2': 'NL', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -5740,26 +5740,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "JM", + type: 'Feature', + id: 'JM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.52, - "hc-key": "jm", - "hc-a2": "JM", - name: "Jamaica", - labelrank: "4", - "country-abbrev": "Jam.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "JAM", - "iso-a2": "JM", - "woe-id": "23424858", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.52, + 'hc-key': 'jm', + 'hc-a2': 'JM', + name: 'Jamaica', + labelrank: '4', + 'country-abbrev': 'Jam.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'JAM', + 'iso-a2': 'JM', + 'woe-id': '23424858', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1906, 7029], @@ -5772,26 +5772,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "WS", + type: 'Feature', + id: 'WS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.54, - "hc-key": "ws", - "hc-a2": "WS", - name: "Samoa", - labelrank: "4", - "country-abbrev": "Samoa", - subregion: "Polynesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "WSM", - "iso-a2": "WS", - "woe-id": "23424992", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.54, + 'hc-key': 'ws', + 'hc-a2': 'WS', + name: 'Samoa', + labelrank: '4', + 'country-abbrev': 'Samoa', + subregion: 'Polynesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'WSM', + 'iso-a2': 'WS', + 'woe-id': '23424992', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [-909, 6078], @@ -5804,26 +5804,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "OM", + type: 'Feature', + id: 'OM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.88, - "hc-middle-y": 0.44, - "hc-key": "om", - "hc-a2": "OM", - name: "Oman", - labelrank: "4", - "country-abbrev": "Oman", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "OMN", - "iso-a2": "OM", - "woe-id": "23424898", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.88, + 'hc-middle-y': 0.44, + 'hc-key': 'om', + 'hc-a2': 'OM', + name: 'Oman', + labelrank: '4', + 'country-abbrev': 'Oman', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'OMN', + 'iso-a2': 'OM', + 'woe-id': '23424898', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -5869,26 +5869,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VC", + type: 'Feature', + id: 'VC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "vc", - "hc-a2": "VC", - name: "Saint Vincent and the Grenadines", - labelrank: "6", - "country-abbrev": "St.V.G.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "VCT", - "iso-a2": "VC", - "woe-id": "23424981", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'vc', + 'hc-a2': 'VC', + name: 'Saint Vincent and the Grenadines', + labelrank: '6', + 'country-abbrev': 'St.V.G.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'VCT', + 'iso-a2': 'VC', + 'woe-id': '23424981', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2388, 6865], @@ -5901,26 +5901,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TR", + type: 'Feature', + id: 'TR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.34, - "hc-middle-y": 0.49, - "hc-key": "tr", - "hc-a2": "TR", - name: "Turkey", - labelrank: "2", - "country-abbrev": "Tur.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "TUR", - "iso-a2": "TR", - "woe-id": "23424969", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.34, + 'hc-middle-y': 0.49, + 'hc-key': 'tr', + 'hc-a2': 'TR', + name: 'Turkey', + labelrank: '2', + 'country-abbrev': 'Tur.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'TUR', + 'iso-a2': 'TR', + 'woe-id': '23424969', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -5994,26 +5994,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BD", + type: 'Feature', + id: 'BD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.85, - "hc-middle-y": 0.61, - "hc-key": "bd", - "hc-a2": "BD", - name: "Bangladesh", - labelrank: "3", - "country-abbrev": "Bang.", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "BGD", - "iso-a2": "BD", - "woe-id": "23424759", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.85, + 'hc-middle-y': 0.61, + 'hc-key': 'bd', + 'hc-a2': 'BD', + name: 'Bangladesh', + labelrank: '3', + 'country-abbrev': 'Bang.', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'BGD', + 'iso-a2': 'BD', + 'woe-id': '23424759', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6942, 7109], @@ -6041,26 +6041,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LC", + type: 'Feature', + id: 'LC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.47, - "hc-key": "lc", - "hc-a2": "LC", - name: "Saint Lucia", - labelrank: "6", - "country-abbrev": "S.L.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "LCA", - "iso-a2": "LC", - "woe-id": "23424951", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.47, + 'hc-key': 'lc', + 'hc-a2': 'LC', + name: 'Saint Lucia', + labelrank: '6', + 'country-abbrev': 'S.L.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'LCA', + 'iso-a2': 'LC', + 'woe-id': '23424951', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2395, 6886], @@ -6073,26 +6073,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NR", + type: 'Feature', + id: 'NR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.53, - "hc-middle-y": 0.5, - "hc-key": "nr", - "hc-a2": "NR", - name: "Nauru", - labelrank: "6", - "country-abbrev": "Nauru", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "NRU", - "iso-a2": "NR", - "woe-id": "23424912", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.53, + 'hc-middle-y': 0.5, + 'hc-key': 'nr', + 'hc-a2': 'NR', + name: 'Nauru', + labelrank: '6', + 'country-abbrev': 'Nauru', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'NRU', + 'iso-a2': 'NR', + 'woe-id': '23424912', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [9158, 6463], @@ -6105,26 +6105,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NO", + type: 'Feature', + id: 'NO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.1, - "hc-middle-y": 0.93, - "hc-key": "no", - "hc-a2": "NO", - name: "Norway", - labelrank: "3", - "country-abbrev": "Nor.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "NOR", - "iso-a2": "NO", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.1, + 'hc-middle-y': 0.93, + 'hc-key': 'no', + 'hc-a2': 'NO', + name: 'Norway', + labelrank: '3', + 'country-abbrev': 'Nor.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'NOR', + 'iso-a2': 'NO', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -6516,26 +6516,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KN", + type: 'Feature', + id: 'KN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.49, - "hc-key": "kn", - "hc-a2": "KN", - name: "Saint Kitts and Nevis", - labelrank: "6", - "country-abbrev": "St.K.N.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "KNA", - "iso-a2": "KN", - "woe-id": "23424940", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.49, + 'hc-key': 'kn', + 'hc-a2': 'KN', + name: 'Saint Kitts and Nevis', + labelrank: '6', + 'country-abbrev': 'St.K.N.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'KNA', + 'iso-a2': 'KN', + 'woe-id': '23424940', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2346, 6991], @@ -6548,26 +6548,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BH", + type: 'Feature', + id: 'BH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.5, - "hc-key": "bh", - "hc-a2": "BH", - name: "Bahrain", - labelrank: "4", - "country-abbrev": "Bahr.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "BHR", - "iso-a2": "BH", - "woe-id": "23424753", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.5, + 'hc-key': 'bh', + 'hc-a2': 'BH', + name: 'Bahrain', + labelrank: '4', + 'country-abbrev': 'Bahr.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'BHR', + 'iso-a2': 'BH', + 'woe-id': '23424753', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5702, 7271], @@ -6580,26 +6580,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TO", + type: 'Feature', + id: 'TO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.34, - "hc-key": "to", - "hc-a2": "TO", - name: "Tonga", - labelrank: "4", - "country-abbrev": "Tongo", - subregion: "Polynesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "TON", - "iso-a2": "TO", - "woe-id": "23424964", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.34, + 'hc-key': 'to', + 'hc-a2': 'TO', + name: 'Tonga', + labelrank: '4', + 'country-abbrev': 'Tongo', + subregion: 'Polynesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'TON', + 'iso-a2': 'TO', + 'woe-id': '23424964', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [-987, 5842], @@ -6612,26 +6612,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "FI", + type: 'Feature', + id: 'FI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.63, - "hc-middle-y": 0.54, - "hc-key": "fi", - "hc-a2": "FI", - name: "Finland", - labelrank: "3", - "country-abbrev": "Fin.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "FIN", - "iso-a2": "FI", - "woe-id": "23424812", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.63, + 'hc-middle-y': 0.54, + 'hc-key': 'fi', + 'hc-a2': 'FI', + name: 'Finland', + labelrank: '3', + 'country-abbrev': 'Fin.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'FIN', + 'iso-a2': 'FI', + 'woe-id': '23424812', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -6758,26 +6758,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ID", + type: 'Feature', + id: 'ID', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.38, - "hc-middle-y": 0.41, - "hc-key": "id", - "hc-a2": "ID", - name: "Indonesia", - labelrank: "2", - "country-abbrev": "Indo.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "IDN", - "iso-a2": "ID", - "woe-id": "23424846", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.38, + 'hc-middle-y': 0.41, + 'hc-key': 'id', + 'hc-a2': 'ID', + name: 'Indonesia', + labelrank: '2', + 'country-abbrev': 'Indo.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'IDN', + 'iso-a2': 'ID', + 'woe-id': '23424846', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7032,26 +7032,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MU", + type: 'Feature', + id: 'MU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.63, - "hc-middle-y": 0.58, - "hc-key": "mu", - "hc-a2": "MU", - name: "Mauritius", - labelrank: "5", - "country-abbrev": "Mus.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MUS", - "iso-a2": "MU", - "woe-id": "23424894", - continent: "Seven seas (open ocean)", + 'hc-group': 'admin0', + 'hc-middle-x': 0.63, + 'hc-middle-y': 0.58, + 'hc-key': 'mu', + 'hc-a2': 'MU', + name: 'Mauritius', + labelrank: '5', + 'country-abbrev': 'Mus.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MUS', + 'iso-a2': 'MU', + 'woe-id': '23424894', + continent: 'Seven seas (open ocean)', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5917, 5878], @@ -7064,26 +7064,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SE", + type: 'Feature', + id: 'SE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.4, - "hc-middle-y": 0.48, - "hc-key": "se", - "hc-a2": "SE", - name: "Sweden", - labelrank: "3", - "country-abbrev": "Swe.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "SWE", - "iso-a2": "SE", - "woe-id": "23424954", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.4, + 'hc-middle-y': 0.48, + 'hc-key': 'se', + 'hc-a2': 'SE', + name: 'Sweden', + labelrank: '3', + 'country-abbrev': 'Swe.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'SWE', + 'iso-a2': 'SE', + 'woe-id': '23424954', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7174,26 +7174,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TT", + type: 'Feature', + id: 'TT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.44, - "hc-key": "tt", - "hc-a2": "TT", - name: "Trinidad and Tobago", - labelrank: "5", - "country-abbrev": "Tr.T.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "TTO", - "iso-a2": "TT", - "woe-id": "23424958", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.44, + 'hc-key': 'tt', + 'hc-a2': 'TT', + name: 'Trinidad and Tobago', + labelrank: '5', + 'country-abbrev': 'Tr.T.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'TTO', + 'iso-a2': 'TT', + 'woe-id': '23424958', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2396, 6799], @@ -7206,26 +7206,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MY", + type: 'Feature', + id: 'MY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.9, - "hc-middle-y": 0.26, - "hc-key": "my", - "hc-a2": "MY", - name: "Malaysia", - labelrank: "3", - "country-abbrev": "Malay.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "MYS", - "iso-a2": "MY", - "woe-id": "23424901", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.9, + 'hc-middle-y': 0.26, + 'hc-key': 'my', + 'hc-a2': 'MY', + name: 'Malaysia', + labelrank: '3', + 'country-abbrev': 'Malay.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'MYS', + 'iso-a2': 'MY', + 'woe-id': '23424901', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7289,26 +7289,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PA", + type: 'Feature', + id: 'PA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.22, - "hc-middle-y": 0.5, - "hc-key": "pa", - "hc-a2": "PA", - name: "Panama", - labelrank: "4", - "country-abbrev": "Pan.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "PAN", - "iso-a2": "PA", - "woe-id": "23424924", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.22, + 'hc-middle-y': 0.5, + 'hc-key': 'pa', + 'hc-a2': 'PA', + name: 'Panama', + labelrank: '4', + 'country-abbrev': 'Pan.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'PAN', + 'iso-a2': 'PA', + 'woe-id': '23424924', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1892, 6692], @@ -7337,26 +7337,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PW", + type: 'Feature', + id: 'PW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.38, - "hc-middle-y": 0.44, - "hc-key": "pw", - "hc-a2": "PW", - name: "Palau", - labelrank: "6", - "country-abbrev": "Palau", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "PLW", - "iso-a2": "PW", - "woe-id": "23424927", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.38, + 'hc-middle-y': 0.44, + 'hc-key': 'pw', + 'hc-a2': 'PW', + name: 'Palau', + labelrank: '6', + 'country-abbrev': 'Palau', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'PLW', + 'iso-a2': 'PW', + 'woe-id': '23424927', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8196, 6695], @@ -7369,26 +7369,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TV", + type: 'Feature', + id: 'TV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.25, - "hc-middle-y": 0.5, - "hc-key": "tv", - "hc-a2": "TV", - name: "Tuvalu", - labelrank: "6", - "country-abbrev": "Tuv.", - subregion: "Polynesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "TUV", - "iso-a2": "TV", - "woe-id": "23424970", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.25, + 'hc-middle-y': 0.5, + 'hc-key': 'tv', + 'hc-a2': 'TV', + name: 'Tuvalu', + labelrank: '6', + 'country-abbrev': 'Tuv.', + subregion: 'Polynesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'TUV', + 'iso-a2': 'TV', + 'woe-id': '23424970', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [9522, 6227], @@ -7401,26 +7401,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MH", + type: 'Feature', + id: 'MH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.6, - "hc-key": "mh", - "hc-a2": "MH", - name: "Marshall Islands", - labelrank: "6", - "country-abbrev": "M. Is.", - subregion: "Micronesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "MHL", - "iso-a2": "MH", - "woe-id": "23424932", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.6, + 'hc-key': 'mh', + 'hc-a2': 'MH', + name: 'Marshall Islands', + labelrank: '6', + 'country-abbrev': 'M. Is.', + subregion: 'Micronesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'MHL', + 'iso-a2': 'MH', + 'woe-id': '23424932', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [9280, 6690], @@ -7433,26 +7433,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CL", + type: 'Feature', + id: 'CL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.51, - "hc-middle-y": 0.9, - "hc-key": "cl", - "hc-a2": "CL", - name: "Chile", - labelrank: "2", - "country-abbrev": "Chile", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "CHL", - "iso-a2": "CL", - "woe-id": "23424782", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.51, + 'hc-middle-y': 0.9, + 'hc-key': 'cl', + 'hc-a2': 'CL', + name: 'Chile', + labelrank: '2', + 'country-abbrev': 'Chile', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'CHL', + 'iso-a2': 'CL', + 'woe-id': '23424782', + continent: 'South America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7605,26 +7605,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TH", + type: 'Feature', + id: 'TH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.25, - "hc-middle-y": 0.49, - "hc-key": "th", - "hc-a2": "TH", - name: "Thailand", - labelrank: "3", - "country-abbrev": "Thai.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "THA", - "iso-a2": "TH", - "woe-id": "23424960", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.25, + 'hc-middle-y': 0.49, + 'hc-key': 'th', + 'hc-a2': 'TH', + name: 'Thailand', + labelrank: '3', + 'country-abbrev': 'Thai.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'THA', + 'iso-a2': 'TH', + 'woe-id': '23424960', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7683,26 +7683,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GD", + type: 'Feature', + id: 'GD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "gd", - "hc-a2": "GD", - name: "Grenada", - labelrank: "6", - "country-abbrev": "Gren.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "GRD", - "iso-a2": "GD", - "woe-id": "23424826", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'gd', + 'hc-a2': 'GD', + name: 'Grenada', + labelrank: '6', + 'country-abbrev': 'Gren.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'GRD', + 'iso-a2': 'GD', + 'woe-id': '23424826', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2375, 6835], @@ -7715,26 +7715,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "EE", + type: 'Feature', + id: 'EE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.35, - "hc-middle-y": 0.41, - "hc-key": "ee", - "hc-a2": "EE", - name: "Estonia", - labelrank: "6", - "country-abbrev": "Est.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "EST", - "iso-a2": "EE", - "woe-id": "23424805", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.35, + 'hc-middle-y': 0.41, + 'hc-key': 'ee', + 'hc-a2': 'EE', + name: 'Estonia', + labelrank: '6', + 'country-abbrev': 'Est.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'EST', + 'iso-a2': 'EE', + 'woe-id': '23424805', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -7804,26 +7804,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AG", + type: 'Feature', + id: 'AG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.48, - "hc-key": "ag", - "hc-a2": "AG", - name: "Antigua and Barbuda", - labelrank: "6", - "country-abbrev": "Ant.B.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "ATG", - "iso-a2": "AG", - "woe-id": "23424737", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.48, + 'hc-key': 'ag', + 'hc-a2': 'AG', + name: 'Antigua and Barbuda', + labelrank: '6', + 'country-abbrev': 'Ant.B.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'ATG', + 'iso-a2': 'AG', + 'woe-id': '23424737', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2371, 6989], @@ -7836,26 +7836,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TW", + type: 'Feature', + id: 'TW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.41, - "hc-key": "tw", - "hc-a2": "TW", - name: "Taiwan", - labelrank: "3", - "country-abbrev": "Taiwan", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "TWN", - "iso-a2": "TW", - "woe-id": "23424971", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.41, + 'hc-key': 'tw', + 'hc-a2': 'TW', + name: 'Taiwan', + labelrank: '3', + 'country-abbrev': 'Taiwan', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'TWN', + 'iso-a2': 'TW', + 'woe-id': '23424971', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7752, 7185], @@ -7870,26 +7870,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BB", + type: 'Feature', + id: 'BB', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.31, - "hc-middle-y": 0.56, - "hc-key": "bb", - "hc-a2": "BB", - name: "Barbados", - labelrank: "5", - "country-abbrev": "Barb.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "BRB", - "iso-a2": "BB", - "woe-id": "23424754", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.31, + 'hc-middle-y': 0.56, + 'hc-key': 'bb', + 'hc-a2': 'BB', + name: 'Barbados', + labelrank: '5', + 'country-abbrev': 'Barb.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'BRB', + 'iso-a2': 'BB', + 'woe-id': '23424754', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2438, 6866], @@ -7902,26 +7902,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IT", + type: 'Feature', + id: 'IT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.79, - "hc-middle-y": 0.71, - "hc-key": "it", - "hc-a2": "IT", - name: "Italy", - labelrank: "2", - "country-abbrev": "Italy", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "ITA", - "iso-a2": "IT", - "woe-id": "23424853", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.79, + 'hc-middle-y': 0.71, + 'hc-key': 'it', + 'hc-a2': 'IT', + name: 'Italy', + labelrank: '2', + 'country-abbrev': 'Italy', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ITA', + 'iso-a2': 'IT', + 'woe-id': '23424853', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -8000,26 +8000,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MT", + type: 'Feature', + id: 'MT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.53, - "hc-key": "mt", - "hc-a2": "MT", - name: "Malta", - labelrank: "5", - "country-abbrev": "Malta", - subregion: "Southern Europe", - "region-wb": "Middle East & North Africa", - "iso-a3": "MLT", - "iso-a2": "MT", - "woe-id": "23424897", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.53, + 'hc-key': 'mt', + 'hc-a2': 'MT', + name: 'Malta', + labelrank: '5', + 'country-abbrev': 'Malta', + subregion: 'Southern Europe', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'MLT', + 'iso-a2': 'MT', + 'woe-id': '23424897', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4628, 7589], @@ -8032,26 +8032,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VU", + type: 'Feature', + id: 'VU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.6, - "hc-middle-y": 0.53, - "hc-key": "vu", - "hc-a2": "VU", - name: "Vanuatu", - labelrank: "4", - "country-abbrev": "Van.", - subregion: "Melanesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "VUT", - "iso-a2": "VU", - "woe-id": "23424907", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.6, + 'hc-middle-y': 0.53, + 'hc-key': 'vu', + 'hc-a2': 'VU', + name: 'Vanuatu', + labelrank: '4', + 'country-abbrev': 'Van.', + subregion: 'Melanesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'VUT', + 'iso-a2': 'VU', + 'woe-id': '23424907', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [9172, 6054], @@ -8065,26 +8065,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SG", + type: 'Feature', + id: 'SG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.57, - "hc-key": "sg", - "hc-a2": "SG", - name: "Singapore", - labelrank: "6", - "country-abbrev": "Sing.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "SGP", - "iso-a2": "SG", - "woe-id": "23424948", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.57, + 'hc-key': 'sg', + 'hc-a2': 'SG', + name: 'Singapore', + labelrank: '6', + 'country-abbrev': 'Sing.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'SGP', + 'iso-a2': 'SG', + 'woe-id': '23424948', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7286, 6521], @@ -8097,26 +8097,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CY", + type: 'Feature', + id: 'CY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.51, - "hc-key": "cy", - "hc-a2": "CY", - name: "Cyprus", - labelrank: "5", - "country-abbrev": "Cyp.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "CYP", - "iso-a2": "CY", - "woe-id": "-90", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.51, + 'hc-key': 'cy', + 'hc-a2': 'CY', + name: 'Cyprus', + labelrank: '5', + 'country-abbrev': 'Cyp.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'CYP', + 'iso-a2': 'CY', + 'woe-id': '-90', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -8172,26 +8172,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LK", + type: 'Feature', + id: 'LK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.62, - "hc-middle-y": 0.91, - "hc-key": "lk", - "hc-a2": "LK", - name: "Sri Lanka", - labelrank: "3", - "country-abbrev": "Sri L.", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "LKA", - "iso-a2": "LK", - "woe-id": "23424778", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.62, + 'hc-middle-y': 0.91, + 'hc-key': 'lk', + 'hc-a2': 'LK', + name: 'Sri Lanka', + labelrank: '3', + 'country-abbrev': 'Sri L.', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'LKA', + 'iso-a2': 'LK', + 'woe-id': '23424778', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6576, 6765], @@ -8208,26 +8208,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KM", + type: 'Feature', + id: 'KM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.41, - "hc-middle-y": 0.51, - "hc-key": "km", - "hc-a2": "KM", - name: "Comoros", - labelrank: "6", - "country-abbrev": "Com.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "COM", - "iso-a2": "KM", - "woe-id": "23424786", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.41, + 'hc-middle-y': 0.51, + 'hc-key': 'km', + 'hc-a2': 'KM', + name: 'Comoros', + labelrank: '6', + 'country-abbrev': 'Com.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'COM', + 'iso-a2': 'KM', + 'woe-id': '23424786', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5494, 6125], @@ -8240,26 +8240,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "FJ", + type: 'Feature', + id: 'FJ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.44, - "hc-middle-y": 0.33, - "hc-key": "fj", - "hc-a2": "FJ", - name: "Fiji", - labelrank: "6", - "country-abbrev": "Fiji", - subregion: "Melanesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "FJI", - "iso-a2": "FJ", - "woe-id": "23424813", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.44, + 'hc-middle-y': 0.33, + 'hc-key': 'fj', + 'hc-a2': 'FJ', + name: 'Fiji', + labelrank: '6', + 'country-abbrev': 'Fiji', + subregion: 'Melanesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'FJI', + 'iso-a2': 'FJ', + 'woe-id': '23424813', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [9460, 5963], @@ -8277,26 +8277,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "RU", + type: 'Feature', + id: 'RU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.56, - "hc-key": "ru", - "hc-a2": "RU", - name: "Russia", - labelrank: "2", - "country-abbrev": "Rus.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "RUS", - "iso-a2": "RU", - "woe-id": "23424936", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.56, + 'hc-key': 'ru', + 'hc-a2': 'RU', + name: 'Russia', + labelrank: '2', + 'country-abbrev': 'Rus.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'RUS', + 'iso-a2': 'RU', + 'woe-id': '23424936', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9115,26 +9115,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VA", + type: 'Feature', + id: 'VA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.61, - "hc-middle-y": 0.44, - "hc-key": "va", - "hc-a2": "VA", - name: "Vatican", - labelrank: "6", - "country-abbrev": "Vat.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "VAT", - "iso-a2": "VA", - "woe-id": "23424986", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.61, + 'hc-middle-y': 0.44, + 'hc-key': 'va', + 'hc-a2': 'VA', + name: 'Vatican', + labelrank: '6', + 'country-abbrev': 'Vat.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'VAT', + 'iso-a2': 'VA', + 'woe-id': '23424986', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4574, 7793], @@ -9147,26 +9147,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SM", + type: 'Feature', + id: 'SM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.42, - "hc-key": "sm", - "hc-a2": "SM", - name: "San Marino", - labelrank: "6", - "country-abbrev": "S.M.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "SMR", - "iso-a2": "SM", - "woe-id": "23424947", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.42, + 'hc-key': 'sm', + 'hc-a2': 'SM', + name: 'San Marino', + labelrank: '6', + 'country-abbrev': 'S.M.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'SMR', + 'iso-a2': 'SM', + 'woe-id': '23424947', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4574, 7865], @@ -9179,26 +9179,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KZ", + type: 'Feature', + id: 'KZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.46, - "hc-key": "kz", - "hc-a2": "KZ", - name: "Kazakhstan", - labelrank: "3", - "country-abbrev": "Kaz.", - subregion: "Central Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "KAZ", - "iso-a2": "KZ", - "woe-id": "-90", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.46, + 'hc-key': 'kz', + 'hc-a2': 'KZ', + name: 'Kazakhstan', + labelrank: '3', + 'country-abbrev': 'Kaz.', + subregion: 'Central Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'KAZ', + 'iso-a2': 'KZ', + 'woe-id': '-90', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9322,26 +9322,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AZ", + type: 'Feature', + id: 'AZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.83, - "hc-middle-y": 0.51, - "hc-key": "az", - "hc-a2": "AZ", - name: "Azerbaijan", - labelrank: "5", - "country-abbrev": "Aze.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "AZE", - "iso-a2": "AZ", - "woe-id": "23424741", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.83, + 'hc-middle-y': 0.51, + 'hc-key': 'az', + 'hc-a2': 'AZ', + name: 'Azerbaijan', + labelrank: '5', + 'country-abbrev': 'Aze.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'AZE', + 'iso-a2': 'AZ', + 'woe-id': '23424741', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9401,26 +9401,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TJ", + type: 'Feature', + id: 'TJ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.28, - "hc-middle-y": 0.56, - "hc-key": "tj", - "hc-a2": "TJ", - name: "Tajikistan", - labelrank: "4", - "country-abbrev": "Tjk.", - subregion: "Central Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "TJK", - "iso-a2": "TJ", - "woe-id": "23424961", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.28, + 'hc-middle-y': 0.56, + 'hc-key': 'tj', + 'hc-a2': 'TJ', + name: 'Tajikistan', + labelrank: '4', + 'country-abbrev': 'Tjk.', + subregion: 'Central Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'TJK', + 'iso-a2': 'TJ', + 'woe-id': '23424961', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9471,26 +9471,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LS", + type: 'Feature', + id: 'LS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.45, - "hc-key": "ls", - "hc-a2": "LS", - name: "Lesotho", - labelrank: "6", - "country-abbrev": "Les.", - subregion: "Southern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "LSO", - "iso-a2": "LS", - "woe-id": "23424880", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.45, + 'hc-key': 'ls', + 'hc-a2': 'LS', + name: 'Lesotho', + labelrank: '6', + 'country-abbrev': 'Les.', + subregion: 'Southern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'LSO', + 'iso-a2': 'LS', + 'woe-id': '23424880', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5040, 5608], @@ -9504,26 +9504,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "UZ", + type: 'Feature', + id: 'UZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.53, - "hc-key": "uz", - "hc-a2": "UZ", - name: "Uzbekistan", - labelrank: "3", - "country-abbrev": "Uzb.", - subregion: "Central Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "UZB", - "iso-a2": "UZ", - "woe-id": "23424980", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.53, + 'hc-key': 'uz', + 'hc-a2': 'UZ', + name: 'Uzbekistan', + labelrank: '3', + 'country-abbrev': 'Uzb.', + subregion: 'Central Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'UZB', + 'iso-a2': 'UZ', + 'woe-id': '23424980', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9605,26 +9605,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MA", + type: 'Feature', + id: 'MA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.6, - "hc-middle-y": 0.21, - "hc-key": "ma", - "hc-a2": "MA", - name: "Morocco", - labelrank: "3", - "country-abbrev": "Mor.", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "MAR", - "iso-a2": "MA", - "woe-id": "23424893", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.6, + 'hc-middle-y': 0.21, + 'hc-key': 'ma', + 'hc-a2': 'MA', + name: 'Morocco', + labelrank: '3', + 'country-abbrev': 'Mor.', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'MAR', + 'iso-a2': 'MA', + 'woe-id': '23424893', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4117, 7564], @@ -9676,26 +9676,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CO", + type: 'Feature', + id: 'CO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.54, - "hc-key": "co", - "hc-a2": "CO", - name: "Colombia", - labelrank: "2", - "country-abbrev": "Col.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "COL", - "iso-a2": "CO", - "woe-id": "23424787", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.54, + 'hc-key': 'co', + 'hc-a2': 'CO', + name: 'Colombia', + labelrank: '2', + 'country-abbrev': 'Col.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'COL', + 'iso-a2': 'CO', + 'woe-id': '23424787', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1865, 6521], @@ -9748,26 +9748,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TL", + type: 'Feature', + id: 'TL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.65, - "hc-middle-y": 0.36, - "hc-key": "tl", - "hc-a2": "TL", - name: "East Timor", - labelrank: "5", - "country-abbrev": "T.L.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "TLS", - "iso-a2": "TL", - "woe-id": "23424968", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.65, + 'hc-middle-y': 0.36, + 'hc-key': 'tl', + 'hc-a2': 'TL', + name: 'East Timor', + labelrank: '5', + 'country-abbrev': 'T.L.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'TLS', + 'iso-a2': 'TL', + 'woe-id': '23424968', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9793,26 +9793,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TZ", + type: 'Feature', + id: 'TZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "tz", - "hc-a2": "TZ", - name: "United Republic of Tanzania", - labelrank: "3", - "country-abbrev": "Tanz.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "TZA", - "iso-a2": "TZ", - "woe-id": "23424973", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'tz', + 'hc-a2': 'TZ', + name: 'United Republic of Tanzania', + labelrank: '3', + 'country-abbrev': 'Tanz.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'TZA', + 'iso-a2': 'TZ', + 'woe-id': '23424973', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5242, 6136], @@ -9865,26 +9865,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AR", + type: 'Feature', + id: 'AR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.27, - "hc-key": "ar", - "hc-a2": "AR", - name: "Argentina", - labelrank: "2", - "country-abbrev": "Arg.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "ARG", - "iso-a2": "AR", - "woe-id": "23424747", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.27, + 'hc-key': 'ar', + 'hc-a2': 'AR', + name: 'Argentina', + labelrank: '2', + 'country-abbrev': 'Arg.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'ARG', + 'iso-a2': 'AR', + 'woe-id': '23424747', + continent: 'South America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -9994,26 +9994,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SA", + type: 'Feature', + id: 'SA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.53, - "hc-key": "sa", - "hc-a2": "SA", - name: "Saudi Arabia", - labelrank: "2", - "country-abbrev": "Saud.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "SAU", - "iso-a2": "SA", - "woe-id": "23424938", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.53, + 'hc-key': 'sa', + 'hc-a2': 'SA', + name: 'Saudi Arabia', + labelrank: '2', + 'country-abbrev': 'Saud.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'SAU', + 'iso-a2': 'SA', + 'woe-id': '23424938', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5641, 7344], @@ -10062,26 +10062,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PK", + type: 'Feature', + id: 'PK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.34, - "hc-middle-y": 0.64, - "hc-key": "pk", - "hc-a2": "PK", - name: "Pakistan", - labelrank: "2", - "country-abbrev": "Pak.", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "PAK", - "iso-a2": "PK", - "woe-id": "23424922", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.34, + 'hc-middle-y': 0.64, + 'hc-key': 'pk', + 'hc-a2': 'PK', + name: 'Pakistan', + labelrank: '2', + 'country-abbrev': 'Pak.', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'PAK', + 'iso-a2': 'PK', + 'woe-id': '23424922', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6416, 7624], @@ -10132,26 +10132,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "YE", + type: 'Feature', + id: 'YE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.75, - "hc-key": "ye", - "hc-a2": "YE", - name: "Yemen", - labelrank: "3", - "country-abbrev": "Yem.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "YEM", - "iso-a2": "YE", - "woe-id": "23425002", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.75, + 'hc-key': 'ye', + 'hc-a2': 'YE', + name: 'Yemen', + labelrank: '3', + 'country-abbrev': 'Yem.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'YEM', + 'iso-a2': 'YE', + 'woe-id': '23425002', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5747, 7045], @@ -10178,26 +10178,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AE", + type: 'Feature', + id: 'AE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.59, - "hc-middle-y": 0.65, - "hc-key": "ae", - "hc-a2": "AE", - name: "United Arab Emirates", - labelrank: "4", - "country-abbrev": "U.A.E.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "ARE", - "iso-a2": "AE", - "woe-id": "23424738", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.59, + 'hc-middle-y': 0.65, + 'hc-key': 'ae', + 'hc-a2': 'AE', + name: 'United Arab Emirates', + labelrank: '4', + 'country-abbrev': 'U.A.E.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'ARE', + 'iso-a2': 'AE', + 'woe-id': '23424738', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5874, 7251], @@ -10223,26 +10223,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KE", + type: 'Feature', + id: 'KE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.87, - "hc-middle-y": 0.7, - "hc-key": "ke", - "hc-a2": "KE", - name: "Kenya", - labelrank: "2", - "country-abbrev": "Ken.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "KEN", - "iso-a2": "KE", - "woe-id": "23424863", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.87, + 'hc-middle-y': 0.7, + 'hc-key': 'ke', + 'hc-a2': 'KE', + name: 'Kenya', + labelrank: '2', + 'country-abbrev': 'Ken.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'KEN', + 'iso-a2': 'KE', + 'woe-id': '23424863', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5367, 6341], @@ -10271,26 +10271,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PE", + type: 'Feature', + id: 'PE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.69, - "hc-middle-y": 0.71, - "hc-key": "pe", - "hc-a2": "PE", - name: "Peru", - labelrank: "2", - "country-abbrev": "Peru", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "PER", - "iso-a2": "PE", - "woe-id": "23424919", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.69, + 'hc-middle-y': 0.71, + 'hc-key': 'pe', + 'hc-a2': 'PE', + name: 'Peru', + labelrank: '2', + 'country-abbrev': 'Peru', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'PER', + 'iso-a2': 'PE', + 'woe-id': '23424919', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1970, 6476], @@ -10345,26 +10345,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DO", + type: 'Feature', + id: 'DO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.38, - "hc-key": "do", - "hc-a2": "DO", - name: "Dominican Republic", - labelrank: "5", - "country-abbrev": "Dom. Rep.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "DOM", - "iso-a2": "DO", - "woe-id": "23424800", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.38, + 'hc-key': 'do', + 'hc-a2': 'DO', + name: 'Dominican Republic', + labelrank: '5', + 'country-abbrev': 'Dom. Rep.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'DOM', + 'iso-a2': 'DO', + 'woe-id': '23424800', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2070, 7030], @@ -10389,26 +10389,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "HT", + type: 'Feature', + id: 'HT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.82, - "hc-middle-y": 0.96, - "hc-key": "ht", - "hc-a2": "HT", - name: "Haiti", - labelrank: "5", - "country-abbrev": "Haiti", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "HTI", - "iso-a2": "HT", - "woe-id": "23424839", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.82, + 'hc-middle-y': 0.96, + 'hc-key': 'ht', + 'hc-a2': 'HT', + name: 'Haiti', + labelrank: '5', + 'country-abbrev': 'Haiti', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'HTI', + 'iso-a2': 'HT', + 'woe-id': '23424839', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -10441,26 +10441,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PG", + type: 'Feature', + id: 'PG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.14, - "hc-middle-y": 0.5, - "hc-key": "pg", - "hc-a2": "PG", - name: "Papua New Guinea", - labelrank: "2", - "country-abbrev": "P.N.G.", - subregion: "Melanesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "PNG", - "iso-a2": "PG", - "woe-id": "23424926", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.14, + 'hc-middle-y': 0.5, + 'hc-key': 'pg', + 'hc-a2': 'PG', + name: 'Papua New Guinea', + labelrank: '2', + 'country-abbrev': 'P.N.G.', + subregion: 'Melanesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'PNG', + 'iso-a2': 'PG', + 'woe-id': '23424926', + continent: 'Oceania', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -10517,26 +10517,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AO", + type: 'Feature', + id: 'AO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.67, - "hc-key": "ao", - "hc-a2": "AO", - name: "Angola", - labelrank: "3", - "country-abbrev": "Ang.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "AGO", - "iso-a2": "AO", - "woe-id": "23424745", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.67, + 'hc-key': 'ao', + 'hc-a2': 'AO', + name: 'Angola', + labelrank: '3', + 'country-abbrev': 'Ang.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'AGO', + 'iso-a2': 'AO', + 'woe-id': '23424745', + continent: 'Africa', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -10586,26 +10586,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KH", + type: 'Feature', + id: 'KH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.84, - "hc-middle-y": 0.49, - "hc-key": "kh", - "hc-a2": "KH", - name: "Cambodia", - labelrank: "3", - "country-abbrev": "Camb.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "KHM", - "iso-a2": "KH", - "woe-id": "23424776", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.84, + 'hc-middle-y': 0.49, + 'hc-key': 'kh', + 'hc-a2': 'KH', + name: 'Cambodia', + labelrank: '3', + 'country-abbrev': 'Camb.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'KHM', + 'iso-a2': 'KH', + 'woe-id': '23424776', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7395, 6915], @@ -10624,26 +10624,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VN", + type: 'Feature', + id: 'VN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.59, - "hc-middle-y": 0.89, - "hc-key": "vn", - "hc-a2": "VN", - name: "Vietnam", - labelrank: "2", - "country-abbrev": "Viet.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "VNM", - "iso-a2": "VN", - "woe-id": "23424984", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.59, + 'hc-middle-y': 0.89, + 'hc-key': 'vn', + 'hc-a2': 'VN', + name: 'Vietnam', + labelrank: '2', + 'country-abbrev': 'Viet.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'VNM', + 'iso-a2': 'VN', + 'woe-id': '23424984', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7304, 6787], @@ -10683,26 +10683,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MZ", + type: 'Feature', + id: 'MZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.83, - "hc-middle-y": 0.28, - "hc-key": "mz", - "hc-a2": "MZ", - name: "Mozambique", - labelrank: "3", - "country-abbrev": "Moz.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MOZ", - "iso-a2": "MZ", - "woe-id": "23424902", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.83, + 'hc-middle-y': 0.28, + 'hc-key': 'mz', + 'hc-a2': 'MZ', + name: 'Mozambique', + labelrank: '3', + 'country-abbrev': 'Moz.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MOZ', + 'iso-a2': 'MZ', + 'woe-id': '23424902', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5238, 6078], @@ -10746,26 +10746,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CR", + type: 'Feature', + id: 'CR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.55, - "hc-middle-y": 0.31, - "hc-key": "cr", - "hc-a2": "CR", - name: "Costa Rica", - labelrank: "5", - "country-abbrev": "C.R.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "CRI", - "iso-a2": "CR", - "woe-id": "23424791", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.55, + 'hc-middle-y': 0.31, + 'hc-key': 'cr', + 'hc-a2': 'CR', + name: 'Costa Rica', + labelrank: '5', + 'country-abbrev': 'C.R.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'CRI', + 'iso-a2': 'CR', + 'woe-id': '23424791', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -10794,26 +10794,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BJ", + type: 'Feature', + id: 'BJ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.49, - "hc-key": "bj", - "hc-a2": "BJ", - name: "Benin", - labelrank: "5", - "country-abbrev": "Benin", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "BEN", - "iso-a2": "BJ", - "woe-id": "23424764", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.49, + 'hc-key': 'bj', + 'hc-a2': 'BJ', + name: 'Benin', + labelrank: '5', + 'country-abbrev': 'Benin', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'BEN', + 'iso-a2': 'BJ', + 'woe-id': '23424764', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4311, 6825], @@ -10833,26 +10833,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NG", + type: 'Feature', + id: 'NG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.36, - "hc-middle-y": 0.33, - "hc-key": "ng", - "hc-a2": "NG", - name: "Nigeria", - labelrank: "2", - "country-abbrev": "Nigeria", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "NGA", - "iso-a2": "NG", - "woe-id": "23424908", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.36, + 'hc-middle-y': 0.33, + 'hc-key': 'ng', + 'hc-a2': 'NG', + name: 'Nigeria', + labelrank: '2', + 'country-abbrev': 'Nigeria', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'NGA', + 'iso-a2': 'NG', + 'woe-id': '23424908', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4284, 6667], @@ -10884,26 +10884,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IR", + type: 'Feature', + id: 'IR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.58, - "hc-middle-y": 0.51, - "hc-key": "ir", - "hc-a2": "IR", - name: "Iran", - labelrank: "2", - "country-abbrev": "Iran", - subregion: "Southern Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "IRN", - "iso-a2": "IR", - "woe-id": "23424851", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.58, + 'hc-middle-y': 0.51, + 'hc-key': 'ir', + 'hc-a2': 'IR', + name: 'Iran', + labelrank: '2', + 'country-abbrev': 'Iran', + subregion: 'Southern Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'IRN', + 'iso-a2': 'IR', + 'woe-id': '23424851', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5532, 7628], @@ -10962,26 +10962,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SV", + type: 'Feature', + id: 'SV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.55, - "hc-key": "sv", - "hc-a2": "SV", - name: "El Salvador", - labelrank: "6", - "country-abbrev": "El. S.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "SLV", - "iso-a2": "SV", - "woe-id": "23424807", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.55, + 'hc-key': 'sv', + 'hc-a2': 'SV', + name: 'El Salvador', + labelrank: '6', + 'country-abbrev': 'El. S.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'SLV', + 'iso-a2': 'SV', + 'woe-id': '23424807', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1598, 6876], @@ -10996,26 +10996,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SL", + type: 'Feature', + id: 'SL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.48, - "hc-key": "sl", - "hc-a2": "SL", - name: "Sierra Leone", - labelrank: "4", - "country-abbrev": "S.L.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SLE", - "iso-a2": "SL", - "woe-id": "23424946", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.48, + 'hc-key': 'sl', + 'hc-a2': 'SL', + name: 'Sierra Leone', + labelrank: '4', + 'country-abbrev': 'S.L.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SLE', + 'iso-a2': 'SL', + 'woe-id': '23424946', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3863, 6683], @@ -11031,26 +11031,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GW", + type: 'Feature', + id: 'GW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.55, - "hc-middle-y": 0.49, - "hc-key": "gw", - "hc-a2": "GW", - name: "Guinea Bissau", - labelrank: "6", - "country-abbrev": "GnB.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GNB", - "iso-a2": "GW", - "woe-id": "23424929", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.55, + 'hc-middle-y': 0.49, + 'hc-key': 'gw', + 'hc-a2': 'GW', + name: 'Guinea Bissau', + labelrank: '6', + 'country-abbrev': 'GnB.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GNB', + 'iso-a2': 'GW', + 'woe-id': '23424929', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3758, 6803], @@ -11066,26 +11066,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "HR", + type: 'Feature', + id: 'HR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.35, - "hc-middle-y": 0.59, - "hc-key": "hr", - "hc-a2": "HR", - name: "Croatia", - labelrank: "6", - "country-abbrev": "Cro.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "HRV", - "iso-a2": "HR", - "woe-id": "23424843", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.35, + 'hc-middle-y': 0.59, + 'hc-key': 'hr', + 'hc-a2': 'HR', + name: 'Croatia', + labelrank: '6', + 'country-abbrev': 'Cro.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'HRV', + 'iso-a2': 'HR', + 'woe-id': '23424843', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -11123,26 +11123,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BZ", + type: 'Feature', + id: 'BZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.53, - "hc-middle-y": 0.5, - "hc-key": "bz", - "hc-a2": "BZ", - name: "Belize", - labelrank: "6", - "country-abbrev": "Belize", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "BLZ", - "iso-a2": "BZ", - "woe-id": "23424760", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.53, + 'hc-middle-y': 0.5, + 'hc-key': 'bz', + 'hc-a2': 'BZ', + name: 'Belize', + labelrank: '6', + 'country-abbrev': 'Belize', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'BLZ', + 'iso-a2': 'BZ', + 'woe-id': '23424760', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1558, 7009], @@ -11157,26 +11157,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ZA", + type: 'Feature', + id: 'ZA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.36, - "hc-middle-y": 0.7, - "hc-key": "za", - "hc-a2": "ZA", - name: "South Africa", - labelrank: "2", - "country-abbrev": "S.Af.", - subregion: "Southern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "ZAF", - "iso-a2": "ZA", - "woe-id": "23424942", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.36, + 'hc-middle-y': 0.7, + 'hc-key': 'za', + 'hc-a2': 'ZA', + name: 'South Africa', + labelrank: '2', + 'country-abbrev': 'S.Af.', + subregion: 'Southern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'ZAF', + 'iso-a2': 'ZA', + 'woe-id': '23424942', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5157, 5668], @@ -11235,26 +11235,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CF", + type: 'Feature', + id: 'CF', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.47, - "hc-middle-y": 0.46, - "hc-key": "cf", - "hc-a2": "CF", - name: "Central African Republic", - labelrank: "4", - "country-abbrev": "C.A.R.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "CAF", - "iso-a2": "CF", - "woe-id": "23424792", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.47, + 'hc-middle-y': 0.46, + 'hc-key': 'cf', + 'hc-a2': 'CF', + name: 'Central African Republic', + labelrank: '4', + 'country-abbrev': 'C.A.R.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'CAF', + 'iso-a2': 'CF', + 'woe-id': '23424792', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4882, 6802], @@ -11289,26 +11289,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SD", + type: 'Feature', + id: 'SD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.38, - "hc-key": "sd", - "hc-a2": "SD", - name: "Sudan", - labelrank: "3", - "country-abbrev": "Sudan", - subregion: "Northern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SDN", - "iso-a2": "SD", - "woe-id": "-90", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.38, + 'hc-key': 'sd', + 'hc-a2': 'SD', + name: 'Sudan', + labelrank: '3', + 'country-abbrev': 'Sudan', + subregion: 'Northern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SDN', + 'iso-a2': 'SD', + 'woe-id': '-90', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4921, 6735], @@ -11353,26 +11353,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CD", + type: 'Feature', + id: 'CD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.58, - "hc-middle-y": 0.42, - "hc-key": "cd", - "hc-a2": "CD", - name: "Democratic Republic of the Congo", - labelrank: "2", - "country-abbrev": "D.R.C.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "COD", - "iso-a2": "CD", - "woe-id": "23424780", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.58, + 'hc-middle-y': 0.42, + 'hc-key': 'cd', + 'hc-a2': 'CD', + name: 'Democratic Republic of the Congo', + labelrank: '2', + 'country-abbrev': 'D.R.C.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'COD', + 'iso-a2': 'CD', + 'woe-id': '23424780', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5071, 6380], @@ -11447,26 +11447,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KW", + type: 'Feature', + id: 'KW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.61, - "hc-middle-y": 0.4, - "hc-key": "kw", - "hc-a2": "KW", - name: "Kuwait", - labelrank: "6", - "country-abbrev": "Kwt.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "KWT", - "iso-a2": "KW", - "woe-id": "23424870", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.61, + 'hc-middle-y': 0.4, + 'hc-key': 'kw', + 'hc-a2': 'KW', + name: 'Kuwait', + labelrank: '6', + 'country-abbrev': 'Kwt.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'KWT', + 'iso-a2': 'KW', + 'woe-id': '23424870', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5641, 7344], @@ -11481,26 +11481,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DE", + type: 'Feature', + id: 'DE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.34, - "hc-key": "de", - "hc-a2": "DE", - name: "Germany", - labelrank: "2", - "country-abbrev": "Ger.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "DEU", - "iso-a2": "DE", - "woe-id": "23424829", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.34, + 'hc-key': 'de', + 'hc-a2': 'DE', + name: 'Germany', + labelrank: '2', + 'country-abbrev': 'Ger.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'DEU', + 'iso-a2': 'DE', + 'woe-id': '23424829', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -11558,26 +11558,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BE", + type: 'Feature', + id: 'BE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.4, - "hc-key": "be", - "hc-a2": "BE", - name: "Belgium", - labelrank: "2", - "country-abbrev": "Belg.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "BEL", - "iso-a2": "BE", - "woe-id": "23424757", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.4, + 'hc-key': 'be', + 'hc-a2': 'BE', + name: 'Belgium', + labelrank: '2', + 'country-abbrev': 'Belg.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'BEL', + 'iso-a2': 'BE', + 'woe-id': '23424757', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4382, 8122], @@ -11600,26 +11600,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IE", + type: 'Feature', + id: 'IE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.48, - "hc-key": "ie", - "hc-a2": "IE", - name: "Ireland", - labelrank: "3", - "country-abbrev": "Ire.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "IRL", - "iso-a2": "IE", - "woe-id": "23424803", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.48, + 'hc-key': 'ie', + 'hc-a2': 'IE', + name: 'Ireland', + labelrank: '3', + 'country-abbrev': 'Ire.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'IRL', + 'iso-a2': 'IE', + 'woe-id': '23424803', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3989, 8295], @@ -11643,26 +11643,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KP", + type: 'Feature', + id: 'KP', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.32, - "hc-middle-y": 0.63, - "hc-key": "kp", - "hc-a2": "KP", - name: "North Korea", - labelrank: "3", - "country-abbrev": "N.K.", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "PRK", - "iso-a2": "KP", - "woe-id": "23424865", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.32, + 'hc-middle-y': 0.63, + 'hc-key': 'kp', + 'hc-a2': 'KP', + name: 'North Korea', + labelrank: '3', + 'country-abbrev': 'N.K.', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'PRK', + 'iso-a2': 'KP', + 'woe-id': '23424865', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8083, 7807], @@ -11692,26 +11692,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KR", + type: 'Feature', + id: 'KR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.54, - "hc-middle-y": 0.5, - "hc-key": "kr", - "hc-a2": "KR", - name: "South Korea", - labelrank: "2", - "country-abbrev": "S.K.", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "KOR", - "iso-a2": "KR", - "woe-id": "23424868", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.54, + 'hc-middle-y': 0.5, + 'hc-key': 'kr', + 'hc-a2': 'KR', + name: 'South Korea', + labelrank: '2', + 'country-abbrev': 'S.K.', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'KOR', + 'iso-a2': 'KR', + 'woe-id': '23424868', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7963, 7651], @@ -11729,26 +11729,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GY", + type: 'Feature', + id: 'GY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.26, - "hc-middle-y": 0.07, - "hc-key": "gy", - "hc-a2": "GY", - name: "Guyana", - labelrank: "4", - "country-abbrev": "Guy.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "GUY", - "iso-a2": "GY", - "woe-id": "23424836", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.26, + 'hc-middle-y': 0.07, + 'hc-key': 'gy', + 'hc-a2': 'GY', + name: 'Guyana', + labelrank: '4', + 'country-abbrev': 'Guy.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'GUY', + 'iso-a2': 'GY', + 'woe-id': '23424836', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2423, 6732], @@ -11774,26 +11774,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "HN", + type: 'Feature', + id: 'HN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.71, - "hc-middle-y": 0.09, - "hc-key": "hn", - "hc-a2": "HN", - name: "Honduras", - labelrank: "5", - "country-abbrev": "Hond.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "HND", - "iso-a2": "HN", - "woe-id": "23424841", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.71, + 'hc-middle-y': 0.09, + 'hc-key': 'hn', + 'hc-a2': 'HN', + name: 'Honduras', + labelrank: '5', + 'country-abbrev': 'Hond.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'HND', + 'iso-a2': 'HN', + 'woe-id': '23424841', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1586, 6946], @@ -11815,26 +11815,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MM", + type: 'Feature', + id: 'MM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.17, - "hc-middle-y": 0.49, - "hc-key": "mm", - "hc-a2": "MM", - name: "Myanmar", - labelrank: "3", - "country-abbrev": "Myan.", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "MMR", - "iso-a2": "MM", - "woe-id": "23424763", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.17, + 'hc-middle-y': 0.49, + 'hc-key': 'mm', + 'hc-a2': 'MM', + name: 'Myanmar', + labelrank: '3', + 'country-abbrev': 'Myan.', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'MMR', + 'iso-a2': 'MM', + 'woe-id': '23424763', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6942, 7109], @@ -11884,26 +11884,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GA", + type: 'Feature', + id: 'GA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.36, - "hc-middle-y": 0.65, - "hc-key": "ga", - "hc-a2": "GA", - name: "Gabon", - labelrank: "4", - "country-abbrev": "Gabon", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GAB", - "iso-a2": "GA", - "woe-id": "23424822", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.36, + 'hc-middle-y': 0.65, + 'hc-key': 'ga', + 'hc-a2': 'GA', + name: 'Gabon', + labelrank: '4', + 'country-abbrev': 'Gabon', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GAB', + 'iso-a2': 'GA', + 'woe-id': '23424822', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4495, 6508], @@ -11930,26 +11930,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GQ", + type: 'Feature', + id: 'GQ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.53, - "hc-middle-y": 0.55, - "hc-key": "gq", - "hc-a2": "GQ", - name: "Equatorial Guinea", - labelrank: "4", - "country-abbrev": "Eq. G.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GNQ", - "iso-a2": "GQ", - "woe-id": "23424804", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.53, + 'hc-middle-y': 0.55, + 'hc-key': 'gq', + 'hc-a2': 'GQ', + name: 'Equatorial Guinea', + labelrank: '4', + 'country-abbrev': 'Eq. G.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GNQ', + 'iso-a2': 'GQ', + 'woe-id': '23424804', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4540, 6543], @@ -11964,26 +11964,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NI", + type: 'Feature', + id: 'NI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.84, - "hc-middle-y": 0.5, - "hc-key": "ni", - "hc-a2": "NI", - name: "Nicaragua", - labelrank: "5", - "country-abbrev": "Nic.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "NIC", - "iso-a2": "NI", - "woe-id": "23424915", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.84, + 'hc-middle-y': 0.5, + 'hc-key': 'ni', + 'hc-a2': 'NI', + name: 'Nicaragua', + labelrank: '5', + 'country-abbrev': 'Nic.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'NIC', + 'iso-a2': 'NI', + 'woe-id': '23424915', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1661, 6807], @@ -12002,26 +12002,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LV", + type: 'Feature', + id: 'LV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.05, - "hc-middle-y": 0.36, - "hc-key": "lv", - "hc-a2": "LV", - name: "Latvia", - labelrank: "5", - "country-abbrev": "Lat.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "LVA", - "iso-a2": "LV", - "woe-id": "23424874", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.05, + 'hc-middle-y': 0.36, + 'hc-key': 'lv', + 'hc-a2': 'LV', + name: 'Latvia', + labelrank: '5', + 'country-abbrev': 'Lat.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'LVA', + 'iso-a2': 'LV', + 'woe-id': '23424874', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5016, 8399], @@ -12047,26 +12047,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "UG", + type: 'Feature', + id: 'UG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.16, - "hc-middle-y": 0.56, - "hc-key": "ug", - "hc-a2": "UG", - name: "Uganda", - labelrank: "3", - "country-abbrev": "Uga.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "UGA", - "iso-a2": "UG", - "woe-id": "23424974", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.16, + 'hc-middle-y': 0.56, + 'hc-key': 'ug', + 'hc-a2': 'UG', + name: 'Uganda', + labelrank: '3', + 'country-abbrev': 'Uga.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'UGA', + 'iso-a2': 'UG', + 'woe-id': '23424974', + continent: 'Africa', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -12106,26 +12106,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MW", + type: 'Feature', + id: 'MW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.16, - "hc-middle-y": 0.29, - "hc-key": "mw", - "hc-a2": "MW", - name: "Malawi", - labelrank: "6", - "country-abbrev": "Mal.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MWI", - "iso-a2": "MW", - "woe-id": "23424889", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.16, + 'hc-middle-y': 0.29, + 'hc-key': 'mw', + 'hc-a2': 'MW', + name: 'Malawi', + labelrank: '6', + 'country-abbrev': 'Mal.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MWI', + 'iso-a2': 'MW', + 'woe-id': '23424889', + continent: 'Africa', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -12186,26 +12186,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AM", + type: 'Feature', + id: 'AM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.1, - "hc-middle-y": 0.12, - "hc-key": "am", - "hc-a2": "AM", - name: "Armenia", - labelrank: "6", - "country-abbrev": "Arm.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "ARM", - "iso-a2": "AM", - "woe-id": "23424743", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.1, + 'hc-middle-y': 0.12, + 'hc-key': 'am', + 'hc-a2': 'AM', + name: 'Armenia', + labelrank: '6', + 'country-abbrev': 'Arm.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ARM', + 'iso-a2': 'AM', + 'woe-id': '23424743', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5584, 7687], @@ -12246,26 +12246,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SX", + type: 'Feature', + id: 'SX', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.76, - "hc-middle-y": 0.53, - "hc-key": "sx", - "hc-a2": "SX", - name: "Somaliland", - labelrank: "5", - "country-abbrev": "Solnd.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "-99", - "iso-a2": "SX", - "woe-id": "-99", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.76, + 'hc-middle-y': 0.53, + 'hc-key': 'sx', + 'hc-a2': 'SX', + name: 'Somaliland', + labelrank: '5', + 'country-abbrev': 'Solnd.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': '-99', + 'iso-a2': 'SX', + 'woe-id': '-99', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5487, 6819], @@ -12286,26 +12286,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TM", + type: 'Feature', + id: 'TM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.4, - "hc-middle-y": 0.42, - "hc-key": "tm", - "hc-a2": "TM", - name: "Turkmenistan", - labelrank: "4", - "country-abbrev": "Turkm.", - subregion: "Central Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "TKM", - "iso-a2": "TM", - "woe-id": "23424972", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.4, + 'hc-middle-y': 0.42, + 'hc-key': 'tm', + 'hc-a2': 'TM', + name: 'Turkmenistan', + labelrank: '4', + 'country-abbrev': 'Turkm.', + subregion: 'Central Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'TKM', + 'iso-a2': 'TM', + 'woe-id': '23424972', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -12373,26 +12373,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ZM", + type: 'Feature', + id: 'ZM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.36, - "hc-middle-y": 0.58, - "hc-key": "zm", - "hc-a2": "ZM", - name: "Zambia", - labelrank: "3", - "country-abbrev": "Zambia", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "ZMB", - "iso-a2": "ZM", - "woe-id": "23425003", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.36, + 'hc-middle-y': 0.58, + 'hc-key': 'zm', + 'hc-a2': 'ZM', + name: 'Zambia', + labelrank: '3', + 'country-abbrev': 'Zambia', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'ZMB', + 'iso-a2': 'ZM', + 'woe-id': '23425003', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5050, 6201], @@ -12440,26 +12440,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NC", + type: 'Feature', + id: 'NC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.56, - "hc-middle-y": 0.71, - "hc-key": "nc", - "hc-a2": "NC", - name: "Northern Cyprus", - labelrank: "6", - "country-abbrev": "N. Cy.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "-99", - "iso-a2": "NC", - "woe-id": "-90", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.56, + 'hc-middle-y': 0.71, + 'hc-key': 'nc', + 'hc-a2': 'NC', + name: 'Northern Cyprus', + labelrank: '6', + 'country-abbrev': 'N. Cy.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': '-99', + 'iso-a2': 'NC', + 'woe-id': '-90', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -12490,26 +12490,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MR", + type: 'Feature', + id: 'MR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.61, - "hc-middle-y": 0.63, - "hc-key": "mr", - "hc-a2": "MR", - name: "Mauritania", - labelrank: "3", - "country-abbrev": "Mrt.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MRT", - "iso-a2": "MR", - "woe-id": "23424896", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.61, + 'hc-middle-y': 0.63, + 'hc-key': 'mr', + 'hc-a2': 'MR', + name: 'Mauritania', + labelrank: '3', + 'country-abbrev': 'Mrt.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MRT', + 'iso-a2': 'MR', + 'woe-id': '23424896', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3946, 7304], @@ -12539,26 +12539,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DZ", + type: 'Feature', + id: 'DZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.63, - "hc-middle-y": 0.5, - "hc-key": "dz", - "hc-a2": "DZ", - name: "Algeria", - labelrank: "3", - "country-abbrev": "Alg.", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "DZA", - "iso-a2": "DZ", - "woe-id": "23424740", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.63, + 'hc-middle-y': 0.5, + 'hc-key': 'dz', + 'hc-a2': 'DZ', + name: 'Algeria', + labelrank: '3', + 'country-abbrev': 'Alg.', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'DZA', + 'iso-a2': 'DZ', + 'woe-id': '23424740', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4061, 7231], @@ -12607,26 +12607,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LT", + type: 'Feature', + id: 'LT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.27, - "hc-middle-y": 0.06, - "hc-key": "lt", - "hc-a2": "LT", - name: "Lithuania", - labelrank: "5", - "country-abbrev": "Lith.", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "LTU", - "iso-a2": "LT", - "woe-id": "23424875", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.27, + 'hc-middle-y': 0.06, + 'hc-key': 'lt', + 'hc-a2': 'LT', + name: 'Lithuania', + labelrank: '5', + 'country-abbrev': 'Lith.', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'LTU', + 'iso-a2': 'LT', + 'woe-id': '23424875', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -12660,26 +12660,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ET", + type: 'Feature', + id: 'ET', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.58, - "hc-key": "et", - "hc-a2": "ET", - name: "Ethiopia", - labelrank: "2", - "country-abbrev": "Eth.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "ETH", - "iso-a2": "ET", - "woe-id": "23424808", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.58, + 'hc-key': 'et', + 'hc-a2': 'ET', + name: 'Ethiopia', + labelrank: '2', + 'country-abbrev': 'Eth.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'ETH', + 'iso-a2': 'ET', + 'woe-id': '23424808', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5444, 6813], @@ -12720,26 +12720,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ER", + type: 'Feature', + id: 'ER', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.29, - "hc-middle-y": 0.05, - "hc-key": "er", - "hc-a2": "ER", - name: "Eritrea", - labelrank: "4", - "country-abbrev": "Erit.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "ERI", - "iso-a2": "ER", - "woe-id": "23424806", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.29, + 'hc-middle-y': 0.05, + 'hc-key': 'er', + 'hc-a2': 'ER', + name: 'Eritrea', + labelrank: '4', + 'country-abbrev': 'Erit.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'ERI', + 'iso-a2': 'ER', + 'woe-id': '23424806', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5462, 6848], @@ -12759,26 +12759,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GH", + type: 'Feature', + id: 'GH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.13, - "hc-middle-y": 0.77, - "hc-key": "gh", - "hc-a2": "GH", - name: "Ghana", - labelrank: "3", - "country-abbrev": "Ghana", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GHA", - "iso-a2": "GH", - "woe-id": "23424824", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.13, + 'hc-middle-y': 0.77, + 'hc-key': 'gh', + 'hc-a2': 'GH', + name: 'Ghana', + labelrank: '3', + 'country-abbrev': 'Ghana', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GHA', + 'iso-a2': 'GH', + 'woe-id': '23424824', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4239, 6659], @@ -12800,26 +12800,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SI", + type: 'Feature', + id: 'SI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.57, - "hc-key": "si", - "hc-a2": "SI", - name: "Slovenia", - labelrank: "6", - "country-abbrev": "Slo.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "SVN", - "iso-a2": "SI", - "woe-id": "23424945", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.57, + 'hc-key': 'si', + 'hc-a2': 'SI', + name: 'Slovenia', + labelrank: '6', + 'country-abbrev': 'Slo.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'SVN', + 'iso-a2': 'SI', + 'woe-id': '23424945', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4607, 7923], @@ -12839,26 +12839,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GT", + type: 'Feature', + id: 'GT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.44, - "hc-middle-y": 0.87, - "hc-key": "gt", - "hc-a2": "GT", - name: "Guatemala", - labelrank: "3", - "country-abbrev": "Guat.", - subregion: "Central America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "GTM", - "iso-a2": "GT", - "woe-id": "23424834", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.44, + 'hc-middle-y': 0.87, + 'hc-key': 'gt', + 'hc-a2': 'GT', + name: 'Guatemala', + labelrank: '3', + 'country-abbrev': 'Guat.', + subregion: 'Central America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'GTM', + 'iso-a2': 'GT', + 'woe-id': '23424834', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1565, 6951], @@ -12882,26 +12882,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BA", + type: 'Feature', + id: 'BA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.48, - "hc-key": "ba", - "hc-a2": "BA", - name: "Bosnia and Herzegovina", - labelrank: "5", - "country-abbrev": "B.H.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "BIH", - "iso-a2": "BA", - "woe-id": "23424761", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.48, + 'hc-key': 'ba', + 'hc-a2': 'BA', + name: 'Bosnia and Herzegovina', + labelrank: '5', + 'country-abbrev': 'B.H.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'BIH', + 'iso-a2': 'BA', + 'woe-id': '23424761', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4728, 7828], @@ -12922,26 +12922,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "JO", + type: 'Feature', + id: 'JO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.85, - "hc-key": "jo", - "hc-a2": "JO", - name: "Jordan", - labelrank: "4", - "country-abbrev": "Jord.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "JOR", - "iso-a2": "JO", - "woe-id": "23424860", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.85, + 'hc-key': 'jo', + 'hc-a2': 'JO', + name: 'Jordan', + labelrank: '4', + 'country-abbrev': 'Jord.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'JOR', + 'iso-a2': 'JO', + 'woe-id': '23424860', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5255, 7426], @@ -12970,26 +12970,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SY", + type: 'Feature', + id: 'SY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.25, - "hc-middle-y": 0.54, - "hc-key": "sy", - "hc-a2": "SY", - name: "Syria", - labelrank: "3", - "country-abbrev": "Syria", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "SYR", - "iso-a2": "SY", - "woe-id": "23424956", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.25, + 'hc-middle-y': 0.54, + 'hc-key': 'sy', + 'hc-a2': 'SY', + name: 'Syria', + labelrank: '3', + 'country-abbrev': 'Syria', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'SYR', + 'iso-a2': 'SY', + 'woe-id': '23424956', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5355, 7501], @@ -13015,26 +13015,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MC", + type: 'Feature', + id: 'MC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.67, - "hc-key": "mc", - "hc-a2": "MC", - name: "Monaco", - labelrank: "6", - "country-abbrev": "Mco.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "MCO", - "iso-a2": "MC", - "woe-id": "23424892", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.67, + 'hc-key': 'mc', + 'hc-a2': 'MC', + name: 'Monaco', + labelrank: '6', + 'country-abbrev': 'Mco.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'MCO', + 'iso-a2': 'MC', + 'woe-id': '23424892', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4425, 7859], @@ -13047,26 +13047,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AL", + type: 'Feature', + id: 'AL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.49, - "hc-key": "al", - "hc-a2": "AL", - name: "Albania", - labelrank: "6", - "country-abbrev": "Alb.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "ALB", - "iso-a2": "AL", - "woe-id": "23424742", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.49, + 'hc-key': 'al', + 'hc-a2': 'AL', + name: 'Albania', + labelrank: '6', + 'country-abbrev': 'Alb.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ALB', + 'iso-a2': 'AL', + 'woe-id': '23424742', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -13120,26 +13120,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "UY", + type: 'Feature', + id: 'UY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.81, - "hc-middle-y": 0.63, - "hc-key": "uy", - "hc-a2": "UY", - name: "Uruguay", - labelrank: "4", - "country-abbrev": "Ury.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "URY", - "iso-a2": "UY", - "woe-id": "23424979", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.81, + 'hc-middle-y': 0.63, + 'hc-key': 'uy', + 'hc-a2': 'UY', + name: 'Uruguay', + labelrank: '4', + 'country-abbrev': 'Ury.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'URY', + 'iso-a2': 'UY', + 'woe-id': '23424979', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2626, 5480], @@ -13164,26 +13164,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CNM", + type: 'Feature', + id: 'CNM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.11, - "hc-key": "cnm", - "hc-a2": "CN", - name: "Cyprus No Mans Area", - labelrank: "9", - "country-abbrev": null, - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "-99", - "iso-a2": null, - "woe-id": "-99", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.11, + 'hc-key': 'cnm', + 'hc-a2': 'CN', + name: 'Cyprus No Mans Area', + labelrank: '9', + 'country-abbrev': null, + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': '-99', + 'iso-a2': null, + 'woe-id': '-99', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -13232,26 +13232,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MN", + type: 'Feature', + id: 'MN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.53, - "hc-key": "mn", - "hc-a2": "MN", - name: "Mongolia", - labelrank: "3", - "country-abbrev": "Mong.", - subregion: "Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "MNG", - "iso-a2": "MN", - "woe-id": "23424887", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.53, + 'hc-key': 'mn', + 'hc-a2': 'MN', + name: 'Mongolia', + labelrank: '3', + 'country-abbrev': 'Mong.', + subregion: 'Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'MNG', + 'iso-a2': 'MN', + 'woe-id': '23424887', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7691, 8008], @@ -13309,26 +13309,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "RW", + type: 'Feature', + id: 'RW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.56, - "hc-key": "rw", - "hc-a2": "RW", - name: "Rwanda", - labelrank: "3", - "country-abbrev": "Rwa.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "RWA", - "iso-a2": "RW", - "woe-id": "23424937", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.56, + 'hc-key': 'rw', + 'hc-a2': 'RW', + name: 'Rwanda', + labelrank: '3', + 'country-abbrev': 'Rwa.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'RWA', + 'iso-a2': 'RW', + 'woe-id': '23424937', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5065, 6398], @@ -13349,26 +13349,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SO", + type: 'Feature', + id: 'SO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.74, - "hc-key": "so", - "hc-a2": "SO", - name: "Somalia", - labelrank: "6", - "country-abbrev": "Som.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SOM", - "iso-a2": "SO", - "woe-id": "-90", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.74, + 'hc-key': 'so', + 'hc-a2': 'SO', + name: 'Somalia', + labelrank: '6', + 'country-abbrev': 'Som.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SOM', + 'iso-a2': 'SO', + 'woe-id': '-90', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5447, 6596], @@ -13391,26 +13391,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BO", + type: 'Feature', + id: 'BO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.59, - "hc-key": "bo", - "hc-a2": "BO", - name: "Bolivia", - labelrank: "3", - "country-abbrev": "Bolivia", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "BOL", - "iso-a2": "BO", - "woe-id": "23424762", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.59, + 'hc-key': 'bo', + 'hc-a2': 'BO', + name: 'Bolivia', + labelrank: '3', + 'country-abbrev': 'Bolivia', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'BOL', + 'iso-a2': 'BO', + 'woe-id': '23424762', + continent: 'South America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -13466,26 +13466,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CM", + type: 'Feature', + id: 'CM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.81, - "hc-key": "cm", - "hc-a2": "CM", - name: "Cameroon", - labelrank: "3", - "country-abbrev": "Cam.", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "CMR", - "iso-a2": "CM", - "woe-id": "23424785", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.81, + 'hc-key': 'cm', + 'hc-a2': 'CM', + name: 'Cameroon', + labelrank: '3', + 'country-abbrev': 'Cam.', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'CMR', + 'iso-a2': 'CM', + 'woe-id': '23424785', + continent: 'Africa', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -13533,26 +13533,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CG", + type: 'Feature', + id: 'CG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.15, - "hc-middle-y": 0.78, - "hc-key": "cg", - "hc-a2": "CG", - name: "Republic of Congo", - labelrank: "4", - "country-abbrev": "Rep. Congo", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "COG", - "iso-a2": "CG", - "woe-id": "23424779", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.15, + 'hc-middle-y': 0.78, + 'hc-key': 'cg', + 'hc-a2': 'CG', + name: 'Republic of Congo', + labelrank: '4', + 'country-abbrev': 'Rep. Congo', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'COG', + 'iso-a2': 'CG', + 'woe-id': '23424779', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4599, 6542], @@ -13587,26 +13587,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "EH", + type: 'Feature', + id: 'EH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.41, - "hc-middle-y": 0.71, - "hc-key": "eh", - "hc-a2": "EH", - name: "Western Sahara", - labelrank: "7", - "country-abbrev": "W. Sah.", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "ESH", - "iso-a2": "EH", - "woe-id": "23424990", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.41, + 'hc-middle-y': 0.71, + 'hc-key': 'eh', + 'hc-a2': 'EH', + name: 'Western Sahara', + labelrank: '7', + 'country-abbrev': 'W. Sah.', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'ESH', + 'iso-a2': 'EH', + 'woe-id': '23424990', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3698, 7100], @@ -13634,26 +13634,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "RS", + type: 'Feature', + id: 'RS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.42, - "hc-middle-y": 0.52, - "hc-key": "rs", - "hc-a2": "RS", - name: "Republic of Serbia", - labelrank: "5", - "country-abbrev": "Serb.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "SRB", - "iso-a2": "RS", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.42, + 'hc-middle-y': 0.52, + 'hc-key': 'rs', + 'hc-a2': 'RS', + name: 'Republic of Serbia', + labelrank: '5', + 'country-abbrev': 'Serb.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'SRB', + 'iso-a2': 'RS', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4774, 7851], @@ -13681,26 +13681,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ME", + type: 'Feature', + id: 'ME', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.42, - "hc-middle-y": 0.47, - "hc-key": "me", - "hc-a2": "ME", - name: "Montenegro", - labelrank: "6", - "country-abbrev": "Mont.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "MNE", - "iso-a2": "ME", - "woe-id": "20069817", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.42, + 'hc-middle-y': 0.47, + 'hc-key': 'me', + 'hc-a2': 'ME', + name: 'Montenegro', + labelrank: '6', + 'country-abbrev': 'Mont.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'MNE', + 'iso-a2': 'ME', + 'woe-id': '20069817', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4774, 7851], @@ -13727,26 +13727,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TG", + type: 'Feature', + id: 'TG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.76, - "hc-middle-y": 0.81, - "hc-key": "tg", - "hc-a2": "TG", - name: "Togo", - labelrank: "6", - "country-abbrev": "Togo", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "TGO", - "iso-a2": "TG", - "woe-id": "23424965", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.76, + 'hc-middle-y': 0.81, + 'hc-key': 'tg', + 'hc-a2': 'TG', + name: 'Togo', + labelrank: '6', + 'country-abbrev': 'Togo', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'TGO', + 'iso-a2': 'TG', + 'woe-id': '23424965', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4231, 6804], @@ -13764,26 +13764,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LA", + type: 'Feature', + id: 'LA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.88, - "hc-middle-y": 0.79, - "hc-key": "la", - "hc-a2": "LA", - name: "Laos", - labelrank: "4", - "country-abbrev": "Laos", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "LAO", - "iso-a2": "LA", - "woe-id": "23424872", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.88, + 'hc-middle-y': 0.79, + 'hc-key': 'la', + 'hc-a2': 'LA', + name: 'Laos', + labelrank: '4', + 'country-abbrev': 'Laos', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'LAO', + 'iso-a2': 'LA', + 'woe-id': '23424872', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [7395, 6915], @@ -13819,26 +13819,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AF", + type: 'Feature', + id: 'AF', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.37, - "hc-middle-y": 0.52, - "hc-key": "af", - "hc-a2": "AF", - name: "Afghanistan", - labelrank: "3", - "country-abbrev": "Afg.", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "AFG", - "iso-a2": "AF", - "woe-id": "23424739", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.37, + 'hc-middle-y': 0.52, + 'hc-key': 'af', + 'hc-a2': 'AF', + name: 'Afghanistan', + labelrank: '3', + 'country-abbrev': 'Afg.', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'AFG', + 'iso-a2': 'AF', + 'woe-id': '23424739', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6426, 7631], @@ -13882,26 +13882,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "UA", + type: 'Feature', + id: 'UA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.7, - "hc-middle-y": 0.46, - "hc-key": "ua", - "hc-a2": "UA", - name: "Ukraine", - labelrank: "3", - "country-abbrev": "Ukr.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "UKR", - "iso-a2": "UA", - "woe-id": "23424976", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.7, + 'hc-middle-y': 0.46, + 'hc-key': 'ua', + 'hc-a2': 'UA', + name: 'Ukraine', + labelrank: '3', + 'country-abbrev': 'Ukr.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'UKR', + 'iso-a2': 'UA', + 'woe-id': '23424976', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4861, 8032], @@ -13971,26 +13971,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SK", + type: 'Feature', + id: 'SK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.21, - "hc-middle-y": 0.52, - "hc-key": "sk", - "hc-a2": "SK", - name: "Slovakia", - labelrank: "6", - "country-abbrev": "Svk.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "SVK", - "iso-a2": "SK", - "woe-id": "23424877", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.21, + 'hc-middle-y': 0.52, + 'hc-key': 'sk', + 'hc-a2': 'SK', + name: 'Slovakia', + labelrank: '6', + 'country-abbrev': 'Svk.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'SVK', + 'iso-a2': 'SK', + 'woe-id': '23424877', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4873, 8057], @@ -14011,26 +14011,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "JK", + type: 'Feature', + id: 'JK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.4, - "hc-middle-y": 0.63, - "hc-key": "jk", - "hc-a2": "JK", - name: "Siachen Glacier", - labelrank: "5", - "country-abbrev": "Siachen", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "-99", - "iso-a2": "JK", - "woe-id": "23424928", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.4, + 'hc-middle-y': 0.63, + 'hc-key': 'jk', + 'hc-a2': 'JK', + name: 'Siachen Glacier', + labelrank: '5', + 'country-abbrev': 'Siachen', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': '-99', + 'iso-a2': 'JK', + 'woe-id': '23424928', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6513, 7572], @@ -14043,26 +14043,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BG", + type: 'Feature', + id: 'BG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.76, - "hc-middle-y": 0.51, - "hc-key": "bg", - "hc-a2": "BG", - name: "Bulgaria", - labelrank: "4", - "country-abbrev": "Bulg.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "BGR", - "iso-a2": "BG", - "woe-id": "23424771", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.76, + 'hc-middle-y': 0.51, + 'hc-key': 'bg', + 'hc-a2': 'BG', + name: 'Bulgaria', + labelrank: '4', + 'country-abbrev': 'Bulg.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'BGR', + 'iso-a2': 'BG', + 'woe-id': '23424771', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5052, 7859], @@ -14087,26 +14087,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "QA", + type: 'Feature', + id: 'QA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.36, - "hc-middle-y": 0.46, - "hc-key": "qa", - "hc-a2": "QA", - name: "Qatar", - labelrank: "5", - "country-abbrev": "Qatar", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "QAT", - "iso-a2": "QA", - "woe-id": "23424930", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.36, + 'hc-middle-y': 0.46, + 'hc-key': 'qa', + 'hc-a2': 'QA', + name: 'Qatar', + labelrank: '5', + 'country-abbrev': 'Qatar', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'QAT', + 'iso-a2': 'QA', + 'woe-id': '23424930', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5712, 7224], @@ -14120,26 +14120,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LI", + type: 'Feature', + id: 'LI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.61, - "hc-middle-y": 0.53, - "hc-key": "li", - "hc-a2": "LI", - name: "Liechtenstein", - labelrank: "6", - "country-abbrev": "Liech.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "LIE", - "iso-a2": "LI", - "woe-id": "23424879", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.61, + 'hc-middle-y': 0.53, + 'hc-key': 'li', + 'hc-a2': 'LI', + name: 'Liechtenstein', + labelrank: '6', + 'country-abbrev': 'Liech.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'LIE', + 'iso-a2': 'LI', + 'woe-id': '23424879', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4487, 7989], @@ -14152,26 +14152,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AT", + type: 'Feature', + id: 'AT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.62, - "hc-key": "at", - "hc-a2": "AT", - name: "Austria", - labelrank: "4", - "country-abbrev": "Aust.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "AUT", - "iso-a2": "AT", - "woe-id": "23424750", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.62, + 'hc-key': 'at', + 'hc-a2': 'AT', + name: 'Austria', + labelrank: '4', + 'country-abbrev': 'Aust.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'AUT', + 'iso-a2': 'AT', + 'woe-id': '23424750', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4488, 7981], @@ -14205,26 +14205,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SZ", + type: 'Feature', + id: 'SZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.51, - "hc-middle-y": 0.45, - "hc-key": "sz", - "hc-a2": "SZ", - name: "Swaziland", - labelrank: "4", - "country-abbrev": "Swz.", - subregion: "Southern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SWZ", - "iso-a2": "SZ", - "woe-id": "23424993", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.51, + 'hc-middle-y': 0.45, + 'hc-key': 'sz', + 'hc-a2': 'SZ', + name: 'Swaziland', + labelrank: '4', + 'country-abbrev': 'Swz.', + subregion: 'Southern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SWZ', + 'iso-a2': 'SZ', + 'woe-id': '23424993', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5152, 5696], @@ -14239,26 +14239,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "HU", + type: 'Feature', + id: 'HU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.27, - "hc-middle-y": 0.61, - "hc-key": "hu", - "hc-a2": "HU", - name: "Hungary", - labelrank: "5", - "country-abbrev": "Hun.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "HUN", - "iso-a2": "HU", - "woe-id": "23424844", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.27, + 'hc-middle-y': 0.61, + 'hc-key': 'hu', + 'hc-a2': 'HU', + name: 'Hungary', + labelrank: '5', + 'country-abbrev': 'Hun.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'HUN', + 'iso-a2': 'HU', + 'woe-id': '23424844', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4861, 8032], @@ -14284,26 +14284,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "RO", + type: 'Feature', + id: 'RO', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.67, - "hc-middle-y": 0.5, - "hc-key": "ro", - "hc-a2": "RO", - name: "Romania", - labelrank: "3", - "country-abbrev": "Rom.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "ROU", - "iso-a2": "RO", - "woe-id": "23424933", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.67, + 'hc-middle-y': 0.5, + 'hc-key': 'ro', + 'hc-a2': 'RO', + name: 'Romania', + labelrank: '3', + 'country-abbrev': 'Rom.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ROU', + 'iso-a2': 'RO', + 'woe-id': '23424933', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4877, 7877], @@ -14331,26 +14331,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NE", + type: 'Feature', + id: 'NE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.64, - "hc-middle-y": 0.53, - "hc-key": "ne", - "hc-a2": "NE", - name: "Niger", - labelrank: "3", - "country-abbrev": "Niger", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "NER", - "iso-a2": "NE", - "woe-id": "23424906", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.64, + 'hc-middle-y': 0.53, + 'hc-key': 'ne', + 'hc-a2': 'NE', + name: 'Niger', + labelrank: '3', + 'country-abbrev': 'Niger', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'NER', + 'iso-a2': 'NE', + 'woe-id': '23424906', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4311, 6825], @@ -14389,26 +14389,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LU", + type: 'Feature', + id: 'LU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.6, - "hc-key": "lu", - "hc-a2": "LU", - name: "Luxembourg", - labelrank: "6", - "country-abbrev": "Lux.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "LUX", - "iso-a2": "LU", - "woe-id": "23424881", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.6, + 'hc-key': 'lu', + 'hc-a2': 'LU', + name: 'Luxembourg', + labelrank: '6', + 'country-abbrev': 'Lux.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'LUX', + 'iso-a2': 'LU', + 'woe-id': '23424881', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4392, 8072], @@ -14423,26 +14423,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AD", + type: 'Feature', + id: 'AD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.58, - "hc-middle-y": 0.28, - "hc-key": "ad", - "hc-a2": "AD", - name: "Andorra", - labelrank: "6", - "country-abbrev": "And.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "AND", - "iso-a2": "AD", - "woe-id": "23424744", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.58, + 'hc-middle-y': 0.28, + 'hc-key': 'ad', + 'hc-a2': 'AD', + name: 'Andorra', + labelrank: '6', + 'country-abbrev': 'And.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'AND', + 'iso-a2': 'AD', + 'woe-id': '23424744', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4246, 7818], @@ -14455,26 +14455,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CI", + type: 'Feature', + id: 'CI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.48, - "hc-key": "ci", - "hc-a2": "CI", - name: "Ivory Coast", - labelrank: "3", - "country-abbrev": "I.C.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "CIV", - "iso-a2": "CI", - "woe-id": "23424854", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.48, + 'hc-key': 'ci', + 'hc-a2': 'CI', + name: 'Ivory Coast', + labelrank: '3', + 'country-abbrev': 'I.C.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'CIV', + 'iso-a2': 'CI', + 'woe-id': '23424854', + continent: 'Africa', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -14508,26 +14508,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LR", + type: 'Feature', + id: 'LR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.96, - "hc-middle-y": 0.75, - "hc-key": "lr", - "hc-a2": "LR", - name: "Liberia", - labelrank: "4", - "country-abbrev": "Liberia", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "LBR", - "iso-a2": "LR", - "woe-id": "23424876", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.96, + 'hc-middle-y': 0.75, + 'hc-key': 'lr', + 'hc-a2': 'LR', + name: 'Liberia', + labelrank: '4', + 'country-abbrev': 'Liberia', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'LBR', + 'iso-a2': 'LR', + 'woe-id': '23424876', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3952, 6702], @@ -14546,26 +14546,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BN", + type: 'Feature', + id: 'BN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.32, - "hc-middle-y": 0.34, - "hc-key": "bn", - "hc-a2": "BN", - name: "Brunei", - labelrank: "6", - "country-abbrev": "Brunei", - subregion: "South-Eastern Asia", - "region-wb": "East Asia & Pacific", - "iso-a3": "BRN", - "iso-a2": "BN", - "woe-id": "23424773", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.32, + 'hc-middle-y': 0.34, + 'hc-key': 'bn', + 'hc-a2': 'BN', + name: 'Brunei', + labelrank: '6', + 'country-abbrev': 'Brunei', + subregion: 'South-Eastern Asia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'BRN', + 'iso-a2': 'BN', + 'woe-id': '23424773', + continent: 'Asia', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -14589,26 +14589,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IQ", + type: 'Feature', + id: 'IQ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.46, - "hc-middle-y": 0.44, - "hc-key": "iq", - "hc-a2": "IQ", - name: "Iraq", - labelrank: "3", - "country-abbrev": "Iraq", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "IRQ", - "iso-a2": "IQ", - "woe-id": "23424855", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.46, + 'hc-middle-y': 0.44, + 'hc-key': 'iq', + 'hc-a2': 'IQ', + name: 'Iraq', + labelrank: '3', + 'country-abbrev': 'Iraq', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'IRQ', + 'iso-a2': 'IQ', + 'woe-id': '23424855', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5644, 7390], @@ -14641,26 +14641,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GE", + type: 'Feature', + id: 'GE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.99, - "hc-middle-y": 0.82, - "hc-key": "ge", - "hc-a2": "GE", - name: "Georgia", - labelrank: "5", - "country-abbrev": "Geo.", - subregion: "Western Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "GEO", - "iso-a2": "GE", - "woe-id": "23424823", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.99, + 'hc-middle-y': 0.82, + 'hc-key': 'ge', + 'hc-a2': 'GE', + name: 'Georgia', + labelrank: '5', + 'country-abbrev': 'Geo.', + subregion: 'Western Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'GEO', + 'iso-a2': 'GE', + 'woe-id': '23424823', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5539, 7771], @@ -14681,26 +14681,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GM", + type: 'Feature', + id: 'GM', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.51, - "hc-middle-y": 0.51, - "hc-key": "gm", - "hc-a2": "GM", - name: "Gambia", - labelrank: "6", - "country-abbrev": "Gambia", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GMB", - "iso-a2": "GM", - "woe-id": "23424821", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.51, + 'hc-middle-y': 0.51, + 'hc-key': 'gm', + 'hc-a2': 'GM', + name: 'Gambia', + labelrank: '6', + 'country-abbrev': 'Gambia', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GMB', + 'iso-a2': 'GM', + 'woe-id': '23424821', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3707, 6866], @@ -14714,26 +14714,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CH", + type: 'Feature', + id: 'CH', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.12, - "hc-middle-y": 0.55, - "hc-key": "ch", - "hc-a2": "CH", - name: "Switzerland", - labelrank: "4", - "country-abbrev": "Switz.", - subregion: "Western Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "CHE", - "iso-a2": "CH", - "woe-id": "23424957", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.12, + 'hc-middle-y': 0.55, + 'hc-key': 'ch', + 'hc-a2': 'CH', + name: 'Switzerland', + labelrank: '4', + 'country-abbrev': 'Switz.', + subregion: 'Western Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'CHE', + 'iso-a2': 'CH', + 'woe-id': '23424957', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4477, 8004], @@ -14766,26 +14766,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TD", + type: 'Feature', + id: 'TD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.47, - "hc-middle-y": 0.63, - "hc-key": "td", - "hc-a2": "TD", - name: "Chad", - labelrank: "3", - "country-abbrev": "Chad", - subregion: "Middle Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "TCD", - "iso-a2": "TD", - "woe-id": "23424777", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.47, + 'hc-middle-y': 0.63, + 'hc-key': 'td', + 'hc-a2': 'TD', + name: 'Chad', + labelrank: '3', + 'country-abbrev': 'Chad', + subregion: 'Middle Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'TCD', + 'iso-a2': 'TD', + 'woe-id': '23424777', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4634, 6863], @@ -14828,26 +14828,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KV", + type: 'Feature', + id: 'KV', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.52, - "hc-key": "kv", - "hc-a2": "KV", - name: "Kosovo", - labelrank: "6", - "country-abbrev": "Kos.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "-99", - "iso-a2": "KV", - "woe-id": "-90", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.52, + 'hc-key': 'kv', + 'hc-a2': 'KV', + name: 'Kosovo', + labelrank: '6', + 'country-abbrev': 'Kos.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': '-99', + 'iso-a2': 'KV', + 'woe-id': '-90', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4814, 7792], @@ -14865,26 +14865,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LB", + type: 'Feature', + id: 'LB', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.39, - "hc-middle-y": 0.57, - "hc-key": "lb", - "hc-a2": "LB", - name: "Lebanon", - labelrank: "5", - "country-abbrev": "Leb.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "LBN", - "iso-a2": "LB", - "woe-id": "23424873", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.39, + 'hc-middle-y': 0.57, + 'hc-key': 'lb', + 'hc-a2': 'LB', + name: 'Lebanon', + labelrank: '5', + 'country-abbrev': 'Leb.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'LBN', + 'iso-a2': 'LB', + 'woe-id': '23424873', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5246, 7492], @@ -14899,26 +14899,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "DJ", + type: 'Feature', + id: 'DJ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.56, - "hc-middle-y": 0.55, - "hc-key": "dj", - "hc-a2": "DJ", - name: "Djibouti", - labelrank: "5", - "country-abbrev": "Dji.", - subregion: "Eastern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "DJI", - "iso-a2": "DJ", - "woe-id": "23424797", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.56, + 'hc-middle-y': 0.55, + 'hc-key': 'dj', + 'hc-a2': 'DJ', + name: 'Djibouti', + labelrank: '5', + 'country-abbrev': 'Dji.', + subregion: 'Eastern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'DJI', + 'iso-a2': 'DJ', + 'woe-id': '23424797', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5478, 6804], @@ -14938,26 +14938,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BI", + type: 'Feature', + id: 'BI', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.57, - "hc-middle-y": 0.47, - "hc-key": "bi", - "hc-a2": "BI", - name: "Burundi", - labelrank: "6", - "country-abbrev": "Bur.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "BDI", - "iso-a2": "BI", - "woe-id": "23424774", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.57, + 'hc-middle-y': 0.47, + 'hc-key': 'bi', + 'hc-a2': 'BI', + name: 'Burundi', + labelrank: '6', + 'country-abbrev': 'Bur.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'BDI', + 'iso-a2': 'BI', + 'woe-id': '23424774', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5084, 6347], @@ -14974,26 +14974,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SR", + type: 'Feature', + id: 'SR', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.91, - "hc-middle-y": 0.09, - "hc-key": "sr", - "hc-a2": "SR", - name: "Suriname", - labelrank: "4", - "country-abbrev": "Sur.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "SUR", - "iso-a2": "SR", - "woe-id": "23424913", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.91, + 'hc-middle-y': 0.09, + 'hc-key': 'sr', + 'hc-a2': 'SR', + name: 'Suriname', + labelrank: '4', + 'country-abbrev': 'Sur.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'SUR', + 'iso-a2': 'SR', + 'woe-id': '23424913', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2583, 6547], @@ -15012,26 +15012,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IL", + type: 'Feature', + id: 'IL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.68, - "hc-middle-y": 0.1, - "hc-key": "il", - "hc-a2": "IL", - name: "Israel", - labelrank: "4", - "country-abbrev": "Isr.", - subregion: "Western Asia", - "region-wb": "Middle East & North Africa", - "iso-a3": "ISR", - "iso-a2": "IL", - "woe-id": "23424852", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.68, + 'hc-middle-y': 0.1, + 'hc-key': 'il', + 'hc-a2': 'IL', + name: 'Israel', + labelrank: '4', + 'country-abbrev': 'Isr.', + subregion: 'Western Asia', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'ISR', + 'iso-a2': 'IL', + 'woe-id': '23424852', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5219, 7433], @@ -15060,26 +15060,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ML", + type: 'Feature', + id: 'ML', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.59, - "hc-middle-y": 0.38, - "hc-key": "ml", - "hc-a2": "ML", - name: "Mali", - labelrank: "3", - "country-abbrev": "Mali", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MLI", - "iso-a2": "ML", - "woe-id": "23424891", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.59, + 'hc-middle-y': 0.38, + 'hc-key': 'ml', + 'hc-a2': 'ML', + name: 'Mali', + labelrank: '3', + 'country-abbrev': 'Mali', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MLI', + 'iso-a2': 'ML', + 'woe-id': '23424891', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4040, 6787], @@ -15118,26 +15118,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SN", + type: 'Feature', + id: 'SN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.2, - "hc-middle-y": 0.55, - "hc-key": "sn", - "hc-a2": "SN", - name: "Senegal", - labelrank: "3", - "country-abbrev": "Sen.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SEN", - "iso-a2": "SN", - "woe-id": "23424943", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.2, + 'hc-middle-y': 0.55, + 'hc-key': 'sn', + 'hc-a2': 'SN', + name: 'Senegal', + labelrank: '3', + 'country-abbrev': 'Sen.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SEN', + 'iso-a2': 'SN', + 'woe-id': '23424943', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3708, 6844], @@ -15162,26 +15162,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "GN", + type: 'Feature', + id: 'GN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.24, - "hc-middle-y": 0.51, - "hc-key": "gn", - "hc-a2": "GN", - name: "Guinea", - labelrank: "3", - "country-abbrev": "Gin.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "GIN", - "iso-a2": "GN", - "woe-id": "23424835", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.24, + 'hc-middle-y': 0.51, + 'hc-key': 'gn', + 'hc-a2': 'GN', + name: 'Guinea', + labelrank: '3', + 'country-abbrev': 'Gin.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'GIN', + 'iso-a2': 'GN', + 'woe-id': '23424835', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3866, 6846], @@ -15209,26 +15209,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "ZW", + type: 'Feature', + id: 'ZW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.81, - "hc-middle-y": 0.42, - "hc-key": "zw", - "hc-a2": "ZW", - name: "Zimbabwe", - labelrank: "3", - "country-abbrev": "Zimb.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "ZWE", - "iso-a2": "ZW", - "woe-id": "23425004", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.81, + 'hc-middle-y': 0.42, + 'hc-key': 'zw', + 'hc-a2': 'ZW', + name: 'Zimbabwe', + labelrank: '3', + 'country-abbrev': 'Zimb.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'ZWE', + 'iso-a2': 'ZW', + 'woe-id': '23425004', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4954, 5949], @@ -15256,26 +15256,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PL", + type: 'Feature', + id: 'PL', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.48, - "hc-key": "pl", - "hc-a2": "PL", - name: "Poland", - labelrank: "3", - "country-abbrev": "Pol.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "POL", - "iso-a2": "PL", - "woe-id": "23424923", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.48, + 'hc-key': 'pl', + 'hc-a2': 'PL', + name: 'Poland', + labelrank: '3', + 'country-abbrev': 'Pol.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'POL', + 'iso-a2': 'PL', + 'woe-id': '23424923', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4786, 8270], @@ -15314,26 +15314,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MK", + type: 'Feature', + id: 'MK', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.44, - "hc-key": "mk", - "hc-a2": "MK", - name: "Macedonia", - labelrank: "6", - "country-abbrev": "Mkd.", - subregion: "Southern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "MKD", - "iso-a2": "MK", - "woe-id": "23424890", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.44, + 'hc-key': 'mk', + 'hc-a2': 'MK', + name: 'Macedonia', + labelrank: '6', + 'country-abbrev': 'Mkd.', + subregion: 'Southern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'MKD', + 'iso-a2': 'MK', + 'woe-id': '23424890', + continent: 'Europe', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -15370,26 +15370,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "PY", + type: 'Feature', + id: 'PY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.35, - "hc-middle-y": 0.36, - "hc-key": "py", - "hc-a2": "PY", - name: "Paraguay", - labelrank: "4", - "country-abbrev": "Para.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "PRY", - "iso-a2": "PY", - "woe-id": "23424917", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.35, + 'hc-middle-y': 0.36, + 'hc-key': 'py', + 'hc-a2': 'PY', + name: 'Paraguay', + labelrank: '4', + 'country-abbrev': 'Para.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'PRY', + 'iso-a2': 'PY', + 'woe-id': '23424917', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2594, 5755], @@ -15419,26 +15419,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BY", + type: 'Feature', + id: 'BY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "by", - "hc-a2": "BY", - name: "Belarus", - labelrank: "4", - "country-abbrev": "Bela.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "BLR", - "iso-a2": "BY", - "woe-id": "23424765", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'by', + 'hc-a2': 'BY', + name: 'Belarus', + labelrank: '4', + 'country-abbrev': 'Bela.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'BLR', + 'iso-a2': 'BY', + 'woe-id': '23424765', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4905, 8152], @@ -15469,26 +15469,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CZ", + type: 'Feature', + id: 'CZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.56, - "hc-key": "cz", - "hc-a2": "CZ", - name: "Czech Republic", - labelrank: "5", - "country-abbrev": "Cz. Rep.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "CZE", - "iso-a2": "CZ", - "woe-id": "23424810", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.56, + 'hc-key': 'cz', + 'hc-a2': 'CZ', + name: 'Czech Republic', + labelrank: '5', + 'country-abbrev': 'Cz. Rep.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'CZE', + 'iso-a2': 'CZ', + 'woe-id': '23424810', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4763, 8074], @@ -15508,26 +15508,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BF", + type: 'Feature', + id: 'BF', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.54, - "hc-key": "bf", - "hc-a2": "BF", - name: "Burkina Faso", - labelrank: "3", - "country-abbrev": "B.F.", - subregion: "Western Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "BFA", - "iso-a2": "BF", - "woe-id": "23424978", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.54, + 'hc-key': 'bf', + 'hc-a2': 'BF', + name: 'Burkina Faso', + labelrank: '3', + 'country-abbrev': 'B.F.', + subregion: 'Western Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'BFA', + 'iso-a2': 'BF', + 'woe-id': '23424978', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4231, 6804], @@ -15556,26 +15556,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NA", + type: 'Feature', + id: 'NA', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.33, - "hc-middle-y": 0.37, - "hc-key": "na", - "hc-a2": "NA", - name: "Namibia", - labelrank: "3", - "country-abbrev": "Nam.", - subregion: "Southern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "NAM", - "iso-a2": "NA", - "woe-id": "23424987", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.33, + 'hc-middle-y': 0.37, + 'hc-key': 'na', + 'hc-a2': 'NA', + name: 'Namibia', + labelrank: '3', + 'country-abbrev': 'Nam.', + subregion: 'Southern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'NAM', + 'iso-a2': 'NA', + 'woe-id': '23424987', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4898, 5953], @@ -15610,26 +15610,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "LY", + type: 'Feature', + id: 'LY', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.51, - "hc-middle-y": 0.38, - "hc-key": "ly", - "hc-a2": "LY", - name: "Libya", - labelrank: "3", - "country-abbrev": "Libya", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "LBY", - "iso-a2": "LY", - "woe-id": "23424882", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.51, + 'hc-middle-y': 0.38, + 'hc-key': 'ly', + 'hc-a2': 'LY', + name: 'Libya', + labelrank: '3', + 'country-abbrev': 'Libya', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'LBY', + 'iso-a2': 'LY', + 'woe-id': '23424882', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4649, 7169], @@ -15673,26 +15673,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "TN", + type: 'Feature', + id: 'TN', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.53, - "hc-middle-y": 0.03, - "hc-key": "tn", - "hc-a2": "TN", - name: "Tunisia", - labelrank: "3", - "country-abbrev": "Tun.", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "TUN", - "iso-a2": "TN", - "woe-id": "23424967", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.53, + 'hc-middle-y': 0.03, + 'hc-key': 'tn', + 'hc-a2': 'TN', + name: 'Tunisia', + labelrank: '3', + 'country-abbrev': 'Tun.', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'TUN', + 'iso-a2': 'TN', + 'woe-id': '23424967', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4545, 7495], @@ -15717,26 +15717,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BT", + type: 'Feature', + id: 'BT', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.48, - "hc-key": "bt", - "hc-a2": "BT", - name: "Bhutan", - labelrank: "5", - "country-abbrev": "Bhutan", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "BTN", - "iso-a2": "BT", - "woe-id": "23424770", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.48, + 'hc-key': 'bt', + 'hc-a2': 'BT', + name: 'Bhutan', + labelrank: '5', + 'country-abbrev': 'Bhutan', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'BTN', + 'iso-a2': 'BT', + 'woe-id': '23424770', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6842, 7305], @@ -15750,26 +15750,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MD", + type: 'Feature', + id: 'MD', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.42, - "hc-key": "md", - "hc-a2": "MD", - name: "Moldova", - labelrank: "6", - "country-abbrev": "Mda.", - subregion: "Eastern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "MDA", - "iso-a2": "MD", - "woe-id": "23424885", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.42, + 'hc-key': 'md', + 'hc-a2': 'MD', + name: 'Moldova', + labelrank: '6', + 'country-abbrev': 'Mda.', + subregion: 'Eastern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'MDA', + 'iso-a2': 'MD', + 'woe-id': '23424885', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5041, 7922], @@ -15787,26 +15787,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SS", + type: 'Feature', + id: 'SS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.58, - "hc-key": "ss", - "hc-a2": "SS", - name: "South Sudan", - labelrank: "3", - "country-abbrev": "S. Sud.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "SSD", - "iso-a2": "SS", - "woe-id": "-99", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.58, + 'hc-key': 'ss', + 'hc-a2': 'SS', + name: 'South Sudan', + labelrank: '3', + 'country-abbrev': 'S. Sud.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'SSD', + 'iso-a2': 'SS', + 'woe-id': '-99', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5212, 6603], @@ -15843,26 +15843,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BW", + type: 'Feature', + id: 'BW', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.49, - "hc-middle-y": 0.6, - "hc-key": "bw", - "hc-a2": "BW", - name: "Botswana", - labelrank: "4", - "country-abbrev": "Bwa.", - subregion: "Southern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "BWA", - "iso-a2": "BW", - "woe-id": "23424755", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.49, + 'hc-middle-y': 0.6, + 'hc-key': 'bw', + 'hc-a2': 'BW', + name: 'Botswana', + labelrank: '4', + 'country-abbrev': 'Bwa.', + subregion: 'Southern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'BWA', + 'iso-a2': 'BW', + 'woe-id': '23424755', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [4954, 5949], @@ -15893,26 +15893,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "BS", + type: 'Feature', + id: 'BS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.8, - "hc-middle-y": 0.92, - "hc-key": "bs", - "hc-a2": "BS", - name: "The Bahamas", - labelrank: "4", - "country-abbrev": "Bhs.", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "BHS", - "iso-a2": "BS", - "woe-id": "23424758", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.8, + 'hc-middle-y': 0.92, + 'hc-key': 'bs', + 'hc-a2': 'BS', + name: 'The Bahamas', + labelrank: '4', + 'country-abbrev': 'Bhs.', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'BHS', + 'iso-a2': 'BS', + 'woe-id': '23424758', + continent: 'North America', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -15956,26 +15956,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NZ", + type: 'Feature', + id: 'NZ', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.25, - "hc-middle-y": 0.81, - "hc-key": "nz", - "hc-a2": "NZ", - name: "New Zealand", - labelrank: "2", - "country-abbrev": "N.Z.", - subregion: "Australia and New Zealand", - "region-wb": "East Asia & Pacific", - "iso-a3": "NZL", - "iso-a2": "NZ", - "woe-id": "23424916", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.25, + 'hc-middle-y': 0.81, + 'hc-key': 'nz', + 'hc-a2': 'NZ', + name: 'New Zealand', + labelrank: '2', + 'country-abbrev': 'N.Z.', + subregion: 'Australia and New Zealand', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'NZL', + 'iso-a2': 'NZ', + 'woe-id': '23424916', + continent: 'Oceania', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -16026,26 +16026,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "CU", + type: 'Feature', + id: 'CU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.67, - "hc-middle-y": 0.64, - "hc-key": "cu", - "hc-a2": "CU", - name: "Cuba", - labelrank: "3", - "country-abbrev": "Cuba", - subregion: "Caribbean", - "region-wb": "Latin America & Caribbean", - "iso-a3": "CUB", - "iso-a2": "CU", - "woe-id": "23424793", - continent: "North America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.67, + 'hc-middle-y': 0.64, + 'hc-key': 'cu', + 'hc-a2': 'CU', + name: 'Cuba', + labelrank: '3', + 'country-abbrev': 'Cuba', + subregion: 'Caribbean', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'CUB', + 'iso-a2': 'CU', + 'woe-id': '23424793', + continent: 'North America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1916, 7091], @@ -16073,26 +16073,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "EC", + type: 'Feature', + id: 'EC', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.16, - "hc-middle-y": 0.37, - "hc-key": "ec", - "hc-a2": "EC", - name: "Ecuador", - labelrank: "3", - "country-abbrev": "Ecu.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "ECU", - "iso-a2": "EC", - "woe-id": "23424801", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.16, + 'hc-middle-y': 0.37, + 'hc-key': 'ec', + 'hc-a2': 'EC', + name: 'Ecuador', + labelrank: '3', + 'country-abbrev': 'Ecu.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'ECU', + 'iso-a2': 'EC', + 'woe-id': '23424801', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [1820, 6379], @@ -16116,26 +16116,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "AU", + type: 'Feature', + id: 'AU', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.53, - "hc-middle-y": 0.39, - "hc-key": "au", - "hc-a2": "AU", - name: "Australia", - labelrank: "2", - "country-abbrev": "Auz.", - subregion: "Australia and New Zealand", - "region-wb": "East Asia & Pacific", - "iso-a3": "AUS", - "iso-a2": "AU", - "woe-id": "-90", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.53, + 'hc-middle-y': 0.39, + 'hc-key': 'au', + 'hc-a2': 'AU', + name: 'Australia', + labelrank: '2', + 'country-abbrev': 'Auz.', + subregion: 'Australia and New Zealand', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'AUS', + 'iso-a2': 'AU', + 'woe-id': '-90', + continent: 'Oceania', }, geometry: { - type: "MultiPolygon", + type: 'MultiPolygon', coordinates: [ [ [ @@ -16264,26 +16264,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "VE", + type: 'Feature', + id: 'VE', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.33, - "hc-key": "ve", - "hc-a2": "VE", - name: "Venezuela", - labelrank: "3", - "country-abbrev": "Ven.", - subregion: "South America", - "region-wb": "Latin America & Caribbean", - "iso-a3": "VEN", - "iso-a2": "VE", - "woe-id": "23424982", - continent: "South America", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.33, + 'hc-key': 've', + 'hc-a2': 'VE', + name: 'Venezuela', + labelrank: '3', + 'country-abbrev': 'Ven.', + subregion: 'South America', + 'region-wb': 'Latin America & Caribbean', + 'iso-a3': 'VEN', + 'iso-a2': 'VE', + 'woe-id': '23424982', + continent: 'South America', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [2087, 6830], @@ -16334,26 +16334,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "SB", + type: 'Feature', + id: 'SB', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.13, - "hc-middle-y": 0.24, - "hc-key": "sb", - "hc-a2": "SB", - name: "Solomon Islands", - labelrank: "3", - "country-abbrev": "S. Is.", - subregion: "Melanesia", - "region-wb": "East Asia & Pacific", - "iso-a3": "SLB", - "iso-a2": "SB", - "woe-id": "23424766", - continent: "Oceania", + 'hc-group': 'admin0', + 'hc-middle-x': 0.13, + 'hc-middle-y': 0.24, + 'hc-key': 'sb', + 'hc-a2': 'SB', + name: 'Solomon Islands', + labelrank: '3', + 'country-abbrev': 'S. Is.', + subregion: 'Melanesia', + 'region-wb': 'East Asia & Pacific', + 'iso-a3': 'SLB', + 'iso-a2': 'SB', + 'woe-id': '23424766', + continent: 'Oceania', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [8977, 6187], @@ -16374,26 +16374,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "MG", + type: 'Feature', + id: 'MG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.45, - "hc-middle-y": 0.48, - "hc-key": "mg", - "hc-a2": "MG", - name: "Madagascar", - labelrank: "3", - "country-abbrev": "Mad.", - subregion: "Eastern Africa", - "region-wb": "Sub-Saharan Africa", - "iso-a3": "MDG", - "iso-a2": "MG", - "woe-id": "23424883", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.45, + 'hc-middle-y': 0.48, + 'hc-key': 'mg', + 'hc-a2': 'MG', + name: 'Madagascar', + labelrank: '3', + 'country-abbrev': 'Mad.', + subregion: 'Eastern Africa', + 'region-wb': 'Sub-Saharan Africa', + 'iso-a3': 'MDG', + 'iso-a2': 'MG', + 'woe-id': '23424883', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5683, 5987], @@ -16421,26 +16421,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "IS", + type: 'Feature', + id: 'IS', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.5, - "hc-key": "is", - "hc-a2": "IS", - name: "Iceland", - labelrank: "3", - "country-abbrev": "Iceland", - subregion: "Northern Europe", - "region-wb": "Europe & Central Asia", - "iso-a3": "ISL", - "iso-a2": "IS", - "woe-id": "23424845", - continent: "Europe", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.5, + 'hc-key': 'is', + 'hc-a2': 'IS', + name: 'Iceland', + labelrank: '3', + 'country-abbrev': 'Iceland', + subregion: 'Northern Europe', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'ISL', + 'iso-a2': 'IS', + 'woe-id': '23424845', + continent: 'Europe', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [3490, 8732], @@ -16478,26 +16478,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "EG", + type: 'Feature', + id: 'EG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.5, - "hc-middle-y": 0.66, - "hc-key": "eg", - "hc-a2": "EG", - name: "Egypt", - labelrank: "2", - "country-abbrev": "Egypt", - subregion: "Northern Africa", - "region-wb": "Middle East & North Africa", - "iso-a3": "EGY", - "iso-a2": "EG", - "woe-id": "23424802", - continent: "Africa", + 'hc-group': 'admin0', + 'hc-middle-x': 0.5, + 'hc-middle-y': 0.66, + 'hc-key': 'eg', + 'hc-a2': 'EG', + name: 'Egypt', + labelrank: '2', + 'country-abbrev': 'Egypt', + subregion: 'Northern Africa', + 'region-wb': 'Middle East & North Africa', + 'iso-a3': 'EGY', + 'iso-a2': 'EG', + 'woe-id': '23424802', + continent: 'Africa', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [5239, 7374], @@ -16528,26 +16528,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "KG", + type: 'Feature', + id: 'KG', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.48, - "hc-middle-y": 0.43, - "hc-key": "kg", - "hc-a2": "KG", - name: "Kyrgyzstan", - labelrank: "4", - "country-abbrev": "Kgz.", - subregion: "Central Asia", - "region-wb": "Europe & Central Asia", - "iso-a3": "KGZ", - "iso-a2": "KG", - "woe-id": "23424864", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.48, + 'hc-middle-y': 0.43, + 'hc-key': 'kg', + 'hc-a2': 'KG', + name: 'Kyrgyzstan', + labelrank: '4', + 'country-abbrev': 'Kgz.', + subregion: 'Central Asia', + 'region-wb': 'Europe & Central Asia', + 'iso-a3': 'KGZ', + 'iso-a2': 'KG', + 'woe-id': '23424864', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6389, 7707], @@ -16601,26 +16601,26 @@ export const mapWorld = { }, }, { - type: "Feature", - id: "NP", + type: 'Feature', + id: 'NP', properties: { - "hc-group": "admin0", - "hc-middle-x": 0.52, - "hc-middle-y": 0.54, - "hc-key": "np", - "hc-a2": "NP", - name: "Nepal", - labelrank: "3", - "country-abbrev": "Nepal", - subregion: "Southern Asia", - "region-wb": "South Asia", - "iso-a3": "NPL", - "iso-a2": "NP", - "woe-id": "23424911", - continent: "Asia", + 'hc-group': 'admin0', + 'hc-middle-x': 0.52, + 'hc-middle-y': 0.54, + 'hc-key': 'np', + 'hc-a2': 'NP', + name: 'Nepal', + labelrank: '3', + 'country-abbrev': 'Nepal', + subregion: 'Southern Asia', + 'region-wb': 'South Asia', + 'iso-a3': 'NPL', + 'iso-a2': 'NP', + 'woe-id': '23424911', + continent: 'Asia', }, geometry: { - type: "Polygon", + type: 'Polygon', coordinates: [ [ [6819, 7322], @@ -16644,4 +16644,4 @@ export const mapWorld = { }, }, ], -}; +} diff --git a/webapp/src/components/ContractActionForm/index.js b/webapp/src/components/ContractActionForm/index.js index fe2a2a6b..18c2cc54 100644 --- a/webapp/src/components/ContractActionForm/index.js +++ b/webapp/src/components/ContractActionForm/index.js @@ -254,17 +254,14 @@ const ContractActionForm = ({ accountName, action, abi, onSubmitAction }) => { return renderField(field, label) })} + {action && ( - )} + ) } diff --git a/webapp/src/components/ContractActions/index.js b/webapp/src/components/ContractActions/index.js index 2b308bd7..4838ec26 100644 --- a/webapp/src/components/ContractActions/index.js +++ b/webapp/src/components/ContractActions/index.js @@ -6,7 +6,6 @@ import MenuItem from '@mui/material/MenuItem' import Select from '@mui/material/Select' import FormControl from '@mui/material/FormControl' import InputLabel from '@mui/material/InputLabel' -import Box from '@mui/material/Box' import ContractActionForm from '../ContractActionForm' @@ -31,7 +30,7 @@ const ContractActions = ({ accountName, abi, onSubmitAction }) => { }, [abi]) return ( - +
{t('action')} { - setScope(event.target.value)} - /> - - setLowerBound(event.target.value)} - /> - - setUpperBound(event.target.value)} - /> - - - setLimit( - isNaN(event.target.value) - ? 100 - : parseInt(event.target.value || 0) - ) - } - /> + {formFields.map(({ name, type }, index) => ( + handleOnChange(event)} + /> + ))} {table && ( - )}
- {tableData && ( - - - - - {fields.map((field) => ( - - {field.name} - - ))} - - - - {(tableData?.rows || []).map((row, index) => ( - - {fields.map((field) => ( - - {typeof row[field.name] === 'object' - ? JSON.stringify(row[field.name]) - : row[field.name]} - - ))} - - ))} - {tableData?.rows < 1 && ( - - - {t('emptyTable')} - - - )} - -
- {tableData?.more && ( - - - - )} -
- )} -
+ + ) } @@ -216,7 +179,8 @@ ContractTables.propTypes = { accountName: PropTypes.string, abi: PropTypes.any, tableData: PropTypes.any, - onGetTableRows: PropTypes.func + tableName: PropTypes.string, + onGetTableRows: PropTypes.func, } ContractTables.defaultProps = {} diff --git a/webapp/src/components/ContractTables/styles.js b/webapp/src/components/ContractTables/styles.js index b1e66966..6b09248f 100644 --- a/webapp/src/components/ContractTables/styles.js +++ b/webapp/src/components/ContractTables/styles.js @@ -3,18 +3,28 @@ export default (theme) => ({ marginBottom: theme.spacing(2), display: 'flex', alignItems: 'center', - flexWrap: 'wrap' + flexWrap: 'wrap', }, formControl: { + display: 'block', width: '100%', minWidth: '180px', marginBottom: theme.spacing(2), [theme.breakpoints.up('sm')]: { - width: 'initial', - marginRight: theme.spacing(2) - } + width: '15%', + marginRight: theme.spacing(2), + }, }, tableCell: { - borderBottom: '1px solid rgba(0, 0, 0, 0.12)' - } + borderBottom: '1px solid rgba(0, 0, 0, 0.12)', + }, + loadMore: { + display: 'flex', + justifyContent: 'center', + padding: theme.spacing(2), + }, + tableEmpty: { + width: '150px !important', + display: 'inline-block', + }, }) diff --git a/webapp/src/components/CountryFlag/index.js b/webapp/src/components/CountryFlag/index.js index ed09b677..990eecea 100644 --- a/webapp/src/components/CountryFlag/index.js +++ b/webapp/src/components/CountryFlag/index.js @@ -1,7 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' import { makeStyles } from '@mui/styles' -import 'flag-icon-css/css/flag-icon.min.css' +import 'flag-icon-css/css/flag-icons.css' import UnknowFlagIcon from '../UnknowFlagIcon' diff --git a/webapp/src/components/Footer/index.js b/webapp/src/components/Footer/index.js index e590a6bc..0d844938 100644 --- a/webapp/src/components/Footer/index.js +++ b/webapp/src/components/Footer/index.js @@ -1,13 +1,7 @@ import React from 'react' import { makeStyles } from '@mui/styles' -import { - Grid, - List, - ListItemText, - ListItem, - Box, - Typography -} from '@mui/material' +import { List, ListItemText, ListItem, Link } from '@mui/material' +import { useTranslation } from 'react-i18next' import { generalConfig } from '../../config' @@ -15,12 +9,15 @@ import styles from './styles' const useStyles = makeStyles(styles) +const handleLinkClick = () => {} + const Footer = () => { const classes = useStyles() + const { t } = useTranslation('translations') return (
- +
{generalConfig.footerLinks.map((link, index) => ( @@ -34,32 +31,54 @@ const Footer = () => { ))} - - - - - - - An open source project by - - - edenia - - Edenia - - - - - - +
+ +
+
+
{t('footer1')}
+ handleLinkClick()} + target="_blank" + rel="noreferrer" + > +
{t('footer2')}
+ +
+
+ +
+
+ handleLinkClick()} + target="_blank" + rel="noreferrer" + > +
+ {generalConfig.appVersion.split('-').pop()} +
+ +
+ +
+ + handleLinkClick()} + target="_blank" + rel="noreferrer" + > + {t('bugRequest')} + + +
+
) } diff --git a/webapp/src/components/Footer/styles.js b/webapp/src/components/Footer/styles.js index e9e9299f..dc1320c7 100644 --- a/webapp/src/components/Footer/styles.js +++ b/webapp/src/components/Footer/styles.js @@ -1,9 +1,13 @@ export default (theme) => ({ wrapper: { display: 'flex', - padding: `1px ${theme.spacing(4)}`, + flexBasis: 'auto', + flexWrap: 'wrap', + padding: `1px ${theme.spacing(1)}`, background: theme.palette.common.white, - position: 'relative' + alignItems: 'center', + boxShadow: '0px 0px 14px rgba(53, 64, 82, 0.25)', + justifyContent: 'space-between', }, listItem: { display: 'inline-block', @@ -11,15 +15,15 @@ export default (theme) => ({ paddingLeft: `${theme.spacing(2)} !important`, paddingRight: `${theme.spacing(2)} !important`, '&, &:hover, &:active': { - color: theme.palette.common.black + color: theme.palette.common.black, }, '& a': { color: theme.sidebar.footer.color, lineHeight: '20px', textAlign: 'center', letterSpacing: '0.1px', - textDecoration: 'none' - } + textDecoration: 'none', + }, }, sidebarFooter: { backgroundColor: `${theme.sidebar.footer.background} !important`, @@ -27,20 +31,21 @@ export default (theme) => ({ minHeight: 61, display: 'flex', justifyContent: 'center', - alignItems: 'center' + alignItems: 'center', }, sidebarFooterText: { color: theme.sidebar.footer.color, - fontSize: 14, lineHeight: '20px', textAlign: 'center', - letterSpacing: '0.1px' + letterSpacing: '0.1px', + display: 'flex !important', + justifyContent: 'center !important' }, sidebarFooterSubText: { color: theme.sidebar.footer.color, fontSize: '0.725rem', display: 'block', - padding: 1 + padding: 1, }, footerBoxLink: { display: 'flex', @@ -52,19 +57,61 @@ export default (theme) => ({ textAlign: 'center', letterSpacing: '0.1px', textDecoration: 'none', - marginTop: 3 - } + marginTop: 3, + }, }, gridFooter: { - flexDirection: 'row', - justifyContent: 'flex-end' + display: 'flex', }, footerImg: { width: 24, - marginRight: theme.spacing(1) + marginRight: theme.spacing(1), }, footerMenuWrapper: { display: 'flex', - flexDirection: 'row' + flexDirection: 'row', + position: 'absolute', + bottom: 0, + }, + + linkBadge: { + fontSize: '11px !important', + fontWeight: theme.typography.fontWeightBold, + height: '20px !important', + alignItems: 'center', + padding: '2px 6px', + color: '#FFFF', + justifyContent: 'center', + borderRadius: '10px', + textAlign: 'center', + backgroundColor: `${theme.palette.secondary.main} !important`, + + '& span.MuiChip-label, & span.MuiChip-label:hover': { + cursor: 'pointer', + color: theme.sidebar.badge.color, + paddingleft: theme.spacing(2), + paddingRight: theme.spacing(2), + }, + }, + footerAlign: { + display: 'flex', + justifyContent: 'flex-end', + flexDirection: 'row', + flexGrow: 1, + flexBasis: 0 + }, + left: { + flexGrow: 1, + flexBasis: 0, + }, + noUnderline: { + textDecoration: 'none !important', + }, + lineFooter: { + textDecoration: 'underline !important' + }, + midText: { + display: 'flex !important', + justifyContent: 'center !important' } }) diff --git a/webapp/src/components/Header/index.js b/webapp/src/components/Header/index.js index 0d51afd9..8d2f76b6 100644 --- a/webapp/src/components/Header/index.js +++ b/webapp/src/components/Header/index.js @@ -1,9 +1,7 @@ import React, { useEffect, useState } from 'react' import PropTypes from 'prop-types' -import useMediaQuery from '@mui/material/useMediaQuery' -import { useTheme, makeStyles } from '@mui/styles' -import { Grid, Hidden, Menu, MenuItem, AppBar, IconButton } from '@mui/material' -import Box from '@mui/material/Box' +import { makeStyles } from '@mui/styles' +import { Hidden, Menu, MenuItem, AppBar, IconButton, Link } from '@mui/material' import Button from '@mui/material/Button' import Toolbar from '@mui/material/Toolbar' import MenuIcon from '@mui/icons-material/Menu' @@ -22,14 +20,29 @@ const useStyles = makeStyles(styles) const languages = [ { value: 'en', - label: 'EN' + label: 'EN', }, { value: 'es', - label: 'ES' - } + label: 'ES', + }, ] +const HeaderLogo = () => { + const classes = useStyles() + return ( +
+ + eosio dashboard + +
+ ) +} + const LanguageMenu = () => { const classes = useStyles() const [anchorMenu, setAnchorMenu] = useState(null) @@ -55,7 +68,7 @@ const LanguageMenu = () => { }, [i18n.language]) return ( - +
) } @@ -95,7 +108,7 @@ const UserMenu = ({ ual }) => { } return ( - +
{ual.activeUser && ( <> )} - +
) } UserMenu.propTypes = { - ual: PropTypes.any + ual: PropTypes.any, } const Header = ({ ual, onDrawerToggle }) => { - const theme = useTheme() const classes = useStyles() - const isDesktop = useMediaQuery(theme.breakpoints.up('md')) return ( - + - - {!isDesktop && ( - <> - - - - - - - - - eosio dashboard - - - )} - -
- - -
-
-
+ + + + + +
+
+ +
+
+ + +
+
) @@ -173,7 +172,7 @@ const Header = ({ ual, onDrawerToggle }) => { Header.propTypes = { ual: PropTypes.any, - onDrawerToggle: PropTypes.func + onDrawerToggle: PropTypes.func, } export default Header diff --git a/webapp/src/components/Header/styles.js b/webapp/src/components/Header/styles.js index effcf9fd..f2b44c4d 100644 --- a/webapp/src/components/Header/styles.js +++ b/webapp/src/components/Header/styles.js @@ -1,4 +1,12 @@ export default (theme) => ({ + wrapper: { + flexDirection: 'row', + padding: `1px ${theme.spacing(4)}`, + background: theme.palette.common.white, + position: 'relative', + alignItems: 'stretch', + + }, btnLogin: { textTransform: 'capitalize !important', fontWeight: '600 !important' @@ -7,13 +15,15 @@ export default (theme) => ({ fontWeight: '600 !important' }, imgHeaderLogo: { - width: '90px', - marginLeft: '15px' + width: '104px', + height: '45px', + }, appBar: { backgroundColor: '#fff !important', color: theme.header.color, - boxShadow: theme.shadows[1] + boxShadow: '0px 0px 14px rgba(53, 64, 82, 0.25) !important', + }, iconButton: { '& svg': { @@ -24,11 +34,14 @@ export default (theme) => ({ }, userBox: { display: 'flex', - float: 'right', - justifyContent: 'center', alignItems: 'center', '& button': { color: '#757575' } + }, + iconsHeader: { + display: 'flex', + justifyContent: 'space-between', + width: '100%' } }) diff --git a/webapp/src/components/InformationCard/Endpoints.js b/webapp/src/components/InformationCard/Endpoints.js index 9bccd1e9..ded22dec 100644 --- a/webapp/src/components/InformationCard/Endpoints.js +++ b/webapp/src/components/InformationCard/Endpoints.js @@ -2,7 +2,6 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' import clsx from 'clsx' -import Box from '@mui/material/Box' import Link from '@mui/material/Link' const Endpoints = ({ endpoints, classes, type, t }) => { @@ -12,18 +11,18 @@ const Endpoints = ({ endpoints, classes, type, t }) => { if (!items.length) return ( - +
Endpoints - +
{t('noData')} - - +
+
) return ( - +
Endpoints - +
{items.map((endpoint, i) => ( {`${endpoint.toUpperCase()}:`} @@ -36,8 +35,8 @@ const Endpoints = ({ endpoints, classes, type, t }) => { ))} - - +
+
) } diff --git a/webapp/src/components/InformationCard/Information.js b/webapp/src/components/InformationCard/Information.js index bbeb7b3a..38de0d45 100644 --- a/webapp/src/components/InformationCard/Information.js +++ b/webapp/src/components/InformationCard/Information.js @@ -1,133 +1,56 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' -import clsx from 'clsx' import Link from '@mui/material/Link' import Typography from '@mui/material/Typography' -import Box from '@mui/material/Box' import CountryFlag from '../CountryFlag' +import NodeInformation from './NodeInformation' const Information = ({ info, classes, type, t }) => { - if (type === 'node') { - return ( - - - - {`${t('version')}: ${info?.version || '- -'}`} - - - - - {`${t('features')}:`} - - - {!!info?.features?.length ? ( - info.features.map((feature) => ( - - {feature} - - )) - ) : ( - - - - )} - - - {!!info?.keys ? ( - - {Object.keys(info.keys).map((key, i) => ( - - - {`${t(key)}:`} - - - - {info.keys[key]} - - - - ))} - - ) : ( - - {`${t('keys')}: - -`} - - )} - - ) - } + if (type === 'node') + return - return ( - - - - {`${t('location')}: ${info?.location || '- -'} `} - - - - - - {`${t('website')}: `} - - {info?.website || 'N/A'} - - - - - - {`${t('email')}: `} - {!!info?.email ? ( - - {info.email} - - ) : ( - 'N/A' - )} - - - + const RowUrl = ({ title, value, href }) => { + return ( +
- {`${t('ownershipDisclosure')}: `} - {!!info?.ownership ? ( + {`${title}: `} + {!!value ? ( - {info.ownership} + {value} ) : ( 'N/A' )} - - - - {`${t('chainResources')}: `} - {info?.chain ? ( - - {info.chain} - - ) : ( - 'N/A' - )} - - +
+ ) + } + + return ( +
+
+ {info?.location && info?.location !== 'N/A' && ( + + {`${t('location')}: ${info?.location} `} + + + )} +
+ + + + {!!info?.otherResources?.length && ( - +
{t('otherResources')}: @@ -140,9 +63,9 @@ const Information = ({ info, classes, type, t }) => { ))} - +
)} -
+
) } @@ -150,13 +73,13 @@ Information.propTypes = { type: PropTypes.string, info: PropTypes.object, classes: PropTypes.object, - t: PropTypes.func + t: PropTypes.func, } Information.defaultProps = { type: '', info: {}, - classes: {} + classes: {}, } export default memo(Information) diff --git a/webapp/src/components/InformationCard/Media.js b/webapp/src/components/InformationCard/Media.js index 9fbe58e3..afb9123b 100644 --- a/webapp/src/components/InformationCard/Media.js +++ b/webapp/src/components/InformationCard/Media.js @@ -2,29 +2,24 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' -import { generalConfig } from '../../config' -import { onImgError } from '../../utils' +import ProducerAvatar from '../ProducerAvatar' const Media = ({ media }) => { return ( <> - avatar + {media.name} - {media.account} + {media.account?.toString()} ) } Media.propTypes = { - media: PropTypes.object + media: PropTypes.object, } Media.defaultProps = { - media: {} + media: {}, } export default memo(Media) diff --git a/webapp/src/components/InformationCard/NodeInformation.js b/webapp/src/components/InformationCard/NodeInformation.js new file mode 100644 index 00000000..6726d27e --- /dev/null +++ b/webapp/src/components/InformationCard/NodeInformation.js @@ -0,0 +1,67 @@ +import React from 'react' +import PropTypes from 'prop-types' +import clsx from 'clsx' +import Typography from '@mui/material/Typography' + +const NodeInformation = ({ info, classes, t }) => { + return ( +
+
+ + {`${t('version')}: ${info?.version || '- -'}`} + +
+
+
+ {`${t('features')}:`} +
+
+ {Array.isArray(info?.features) && info.features.length > 0 ? ( + info.features.map((feature) => ( + + {feature} + + )) + ) : ( + - - + )} +
+
+ {!!info?.keys && ( +
+ {Object.keys(info.keys).map((key, i) => ( +
+
+ {`${t(key)}:`} +
+
+ + {info.keys[key]} + +
+
+ ))} +
+ )} +
+ ) +} + +NodeInformation.propTypes = { + info: PropTypes.object, + classes: PropTypes.object, + t: PropTypes.func, +} + +NodeInformation.defaultProps = { + info: {}, + classes: {}, +} + +export default NodeInformation diff --git a/webapp/src/components/InformationCard/Nodes.js b/webapp/src/components/InformationCard/Nodes.js index fce13218..6a85cd91 100644 --- a/webapp/src/components/InformationCard/Nodes.js +++ b/webapp/src/components/InformationCard/Nodes.js @@ -1,7 +1,6 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' -import Box from '@mui/material/Box' import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined' const Nodes = ({ nodes, producer, onNodeClick, t, type, classes }) => { @@ -9,30 +8,30 @@ const Nodes = ({ nodes, producer, onNodeClick, t, type, classes }) => { if (!nodes?.length) return ( - +
{t('nodes')} - +
{t('noData')} - - +
+
) return ( - +
{t('nodes')} - - +
+
{nodes.map((node, i) => ( - +
- {node.name || node.node_type}{' '} + {node.name || node.node_type.toString()}{' '} - +
))} -
- - +
+
+
) } diff --git a/webapp/src/components/InformationCard/Social.js b/webapp/src/components/InformationCard/Social.js index 2ca0ff20..69664377 100644 --- a/webapp/src/components/InformationCard/Social.js +++ b/webapp/src/components/InformationCard/Social.js @@ -1,7 +1,6 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' -import Box from '@mui/material/Box' import ProducerSocialLinks from '../ProducerSocialLinks' @@ -9,12 +8,12 @@ const Social = ({ social, type, t, classes }) => { if (type === 'node') return <> return ( - +
{t('social')} - +
- - +
+
) } diff --git a/webapp/src/components/InformationCard/Stats.js b/webapp/src/components/InformationCard/Stats.js index 39ff3f0c..b68a0501 100644 --- a/webapp/src/components/InformationCard/Stats.js +++ b/webapp/src/components/InformationCard/Stats.js @@ -1,7 +1,6 @@ import React, { memo } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' -import Box from '@mui/material/Box' import { eosConfig, generalConfig } from '../../config' @@ -9,21 +8,21 @@ const Stats = ({ missedBlocks, t, classes, votes, rewards, type }) => { if (eosConfig.networkName === 'lacchain' || type === 'node') return <> return ( - +
{t('stats')} - - +
+
{`${t('votes')}: ${votes}`} - +
- +
{`${t('rewards')}: ${rewards} ${ eosConfig.tokenSymbol }`} - +
{!!generalConfig.historyEnabled && ( - +
{`${t('missedBlocks')}: `} {missedBlocks.reduce( @@ -31,10 +30,10 @@ const Stats = ({ missedBlocks, t, classes, votes, rewards, type }) => { 0 )} - +
)} -
-
+
+
) } diff --git a/webapp/src/components/InformationCard/index.js b/webapp/src/components/InformationCard/index.js index 32b5b499..fc8f8eb2 100644 --- a/webapp/src/components/InformationCard/index.js +++ b/webapp/src/components/InformationCard/index.js @@ -9,11 +9,10 @@ import CardHeader from '@mui/material/CardHeader' import CardActions from '@mui/material/CardActions' import Collapse from '@mui/material/Collapse' import { useTranslation } from 'react-i18next' -import Box from '@mui/material/Box' import Typography from '@mui/material/Typography' import Button from '@mui/material/Button' import useMediaQuery from '@mui/material/useMediaQuery' -import 'flag-icon-css/css/flag-icon.min.css' +import 'flag-icon-css/css/flag-icons.css' import { formatData, formatWithThousandSeparator } from '../../utils' import { eosConfig } from '../../config' @@ -47,7 +46,7 @@ const InformationCard = ({ producer, rank, onNodeClick, type }) => { if (type !== 'node' || nodeType !== 'validator') return <> return ( - +
{`${t('missedBlocks')}: `} {(producer.missed_blocks || []).reduce( @@ -55,7 +54,7 @@ const InformationCard = ({ producer, rank, onNodeClick, type }) => { 0 )} - +
) } @@ -84,18 +83,18 @@ const InformationCard = ({ producer, rank, onNodeClick, type }) => { return ( - - +
+
- +
- - +
+
{t('info')} { t={t} type={type} /> - +
{ type={type} classes={classes} /> - +
{t('health')} - +
{missedBlock(producer, producerOrg?.media?.account, type)} { : { health_status: [] } } /> - - +
+
-
+
- - - - - - +
+ {!matches && ( + +
+ +
+
+ )}
) } @@ -176,7 +177,7 @@ InformationCard.propTypes = { InformationCard.defaultProps = { producer: {}, rank: 0, - onNodeClick: () => {}, + onNodeClick: () => { }, type: '' } diff --git a/webapp/src/components/InformationCard/styles.js b/webapp/src/components/InformationCard/styles.js index 1fdbddc5..3c18651b 100644 --- a/webapp/src/components/InformationCard/styles.js +++ b/webapp/src/components/InformationCard/styles.js @@ -95,13 +95,13 @@ export default (theme) => ({ }, entity: { [theme.breakpoints.up('lg')]: { - width: 350, + width: 260, marginBottom: 0 } }, node: { [theme.breakpoints.up('lg')]: { - width: 400, + width: 260, marginBottom: 0 } }, @@ -158,7 +158,7 @@ export default (theme) => ({ fontSize: 15 }, [theme.breakpoints.up('lg')]: { - width: 150 + width: 140 } }, rowWrapper: { diff --git a/webapp/src/components/NetworkSelector/styles.js b/webapp/src/components/NetworkSelector/styles.js index 4d085f1a..f57171d3 100644 --- a/webapp/src/components/NetworkSelector/styles.js +++ b/webapp/src/components/NetworkSelector/styles.js @@ -7,16 +7,16 @@ export default (theme) => ({ width: 45, height: 45, borderRadius: 15, - backgroundColor: theme.palette.primary.contrastText + backgroundColor: theme.palette.primary.contrastText, }, [theme.breakpoints.up('sm')]: { marginTop: 0, width: 'auto', - minWidth: 200 + minWidth: 200, }, '&:hover': { - cursor: 'pointer' - } + cursor: 'pointer', + }, }, list: { transition: 'max-height .6s ease-out', @@ -40,7 +40,7 @@ export default (theme) => ({ width: '50%', height: 50, borderLeft: '1px solid #EEEEEE', - borderBottom: '1px solid #EEEEEE' + borderBottom: '1px solid #EEEEEE', }, '& .titlesBoxLeft': { paddingLeft: theme.spacing(2), @@ -48,37 +48,37 @@ export default (theme) => ({ alignItems: 'center', height: 50, width: '50%', - borderBottom: '1px solid #EEEEEE' + borderBottom: '1px solid #EEEEEE', }, '& p': { fontWeight: 'bold', fontSize: 14, lineHeight: '21px', - letterSpacing: '0.07875px' - } + letterSpacing: '0.07875px', + }, }, '& .lists': { display: 'flex', '& ul': { padding: 0, - margin: 0 + margin: 0, }, '& .listsBoxRight': { width: '50%', - borderLeft: '1px solid #EEEEEE' + borderLeft: '1px solid #EEEEEE', }, '& .listsBoxLeft': { - width: '50%' - } + width: '50%', + }, }, [theme.breakpoints.up('sm')]: { left: -189, - width: 320 - } + width: 320, + }, }, listActive: { maxHeight: 1000, - opacity: 1 + opacity: 1, }, listItem: { height: 50, @@ -94,14 +94,14 @@ export default (theme) => ({ display: 'flex', alignItems: 'center', textDecoration: 'none', - color: theme.palette.common.black + color: theme.palette.common.black, }, '&:hover': { - background: '#f4f4f4' - } + background: '#f4f4f4', + }, }, listItemActive: { - background: theme.palette.primary.contrastText + background: theme.palette.primary.contrastText, }, toggle: { display: 'flex', @@ -114,8 +114,8 @@ export default (theme) => ({ paddingLeft: 22, borderRadius: theme.spacing(2, 4, 4, 2), justifyContent: 'flex-start', - marginRight: 65 - } + marginRight: 65, + }, }, networkLogo: { border: `2px solid ${theme.palette.primary.main}`, @@ -132,58 +132,58 @@ export default (theme) => ({ backgroundColor: theme.palette.common.white, [theme.breakpoints.up('sm')]: { right: 0, - top: -3 - } + top: -3, + }, }, expandIcon: { marginTop: theme.spacing(1), marginRight: 0, - color: theme.palette.text.hint + color: theme.palette.text.hint, }, jungleImg: { width: '15px !important', height: '22px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, telosImg: { width: '15px !important', height: '15px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, waxImg: { width: '21px !important', height: '21px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, lacchainImg: { width: '24px !important', height: '24px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, protonImg: { width: '16px !important', height: '16px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, eosImg: { width: '24px !important', height: '24px !important', marginRight: theme.spacing(1), - marginLeft: -3 + marginLeft: -3, }, airwireImg: { width: '24px !important', height: '24px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, libreImg: { width: '24px !important', height: '24px !important', - marginRight: theme.spacing(2) + marginRight: theme.spacing(2), }, ultraImg: { width: '24px !important', height: '24px !important', - marginRight: theme.spacing(2) - } -}) \ No newline at end of file + marginRight: theme.spacing(2), + }, +}) diff --git a/webapp/src/components/NoResults/index.js b/webapp/src/components/NoResults/index.js new file mode 100644 index 00000000..9b9ea85c --- /dev/null +++ b/webapp/src/components/NoResults/index.js @@ -0,0 +1,22 @@ +import React from 'react' +import { makeStyles } from '@mui/styles' +import Card from '@mui/material/Card' +import CardHeader from '@mui/material/CardHeader' +import { useTranslation } from 'react-i18next' + +import styles from './styles' + +const useStyles = makeStyles(styles) + +const NoResults = () => { + const classes = useStyles() + const { t } = useTranslation('noResultsComponent') + + return ( + + + + ) +} + +export default NoResults diff --git a/webapp/src/components/NoResults/styles.js b/webapp/src/components/NoResults/styles.js new file mode 100644 index 00000000..ca2bc707 --- /dev/null +++ b/webapp/src/components/NoResults/styles.js @@ -0,0 +1,10 @@ +export default (theme) => ({ + root: { + display: 'flex', + flexDirection: 'column', + width: '100%', + marginBottom: theme.spacing(2), + padding: theme.spacing(2), + alignItems: 'center', + }, +}) diff --git a/webapp/src/components/NodeCard/index.js b/webapp/src/components/NodeCard/index.js index 5583849c..1747e5e2 100644 --- a/webapp/src/components/NodeCard/index.js +++ b/webapp/src/components/NodeCard/index.js @@ -8,13 +8,12 @@ import CardHeader from '@mui/material/CardHeader' import CardContent from '@mui/material/CardContent' import CardActions from '@mui/material/CardActions' import { useQuery } from '@apollo/client' -import 'flag-icon-css/css/flag-icon.min.css' +import 'flag-icon-css/css/flag-icons.css' -import { generalConfig } from '../../config' -import { onImgError } from '../../utils' import { NODE_CPU_BENCHMARK } from '../../gql' import CountryFlag from '../CountryFlag' +import ProducerAvatar from '../ProducerAvatar' import ProducerHealthIndicators from '../ProducerHealthIndicators' import styles from './styles' @@ -24,31 +23,43 @@ const useStyles = makeStyles(styles) const NodeCard = ({ producer, node }) => { const classes = useStyles() const { data: { cpu } = {} } = useQuery(NODE_CPU_BENCHMARK, { - variables: { account: node?.name || producer.owner } + variables: { account: node?.name || producer.owner }, }) const { t } = useTranslation('nodeCardComponent') const [producerOrg, setProducerOrg] = useState({}) + const ShowInfo = ({ cond, title, value }) => { + if (!cond && !value) return <> + + return ( + <> +
{title}
+
{value}
+ + ) + } + const Endpoints = () => { + if (!node?.p2p_endpoint && !node?.api_endpoint && !node?.ssl_endpoint) { + return <> + } + + const endpoints = [ + { key: 'p2p_endpoint', value: 'P2P' }, + { key: 'api_endpoint', value: 'API' }, + { key: 'ssl_endpoint', value: 'SSL' }, + ] + return ( <> - {(node?.p2p_endpoint || node?.api_endpoint || node?.ssl_endpoint) && ( -
{t('endpoints')}
- )} - {node?.p2p_endpoint && ( -
- P2P: {node.p2p_endpoint} -
- )} - {node?.api_endpoint && ( -
- API: {node.api_endpoint} -
- )} - {node?.ssl_endpoint && ( -
- SSL: {node.ssl_endpoint} -
+
{t('endpoints')}
+ {endpoints.map( + ({ key, value }, index) => + node[key]?.length && ( +
+ {value}: {node[key]} +
+ ), )} ) @@ -120,70 +131,58 @@ const NodeCard = ({ producer, node }) => { setProducerOrg(producer.bp_json?.org || {}) }, [producer]) + const title = + producerOrg.candidate_name || + producerOrg.organization_name || + producer.owner + return ( } - title={ - producerOrg.candidate_name || - producerOrg.organization_name || - producer.owner - } + title={title} subheader={ <> - - {producerOrg.location?.name || 'N/A'} + {node.location?.name || 'N/A'} + } />
- {!node && ( + {!node ? ( <>
{t('emptyNode')}
- )} - - {node?.name && ( + ) : ( <> -
{t('nodeName')}
-
{node?.name}
+ + + + + + + + + + )} - - {node?.node_type && ( - <> -
{t('nodeType')}
-
{node?.node_type}
- - )} - - {node?.server_version_string && ( - <> -
{t('nodeVersion')}
-
{node?.server_version_string}
- - )} - - - - - -
@@ -193,6 +192,6 @@ const NodeCard = ({ producer, node }) => { NodeCard.propTypes = { producer: PropTypes.any, - node: PropTypes.any + node: PropTypes.any, } export default NodeCard diff --git a/webapp/src/components/NodeCard/styles.js b/webapp/src/components/NodeCard/styles.js index 2a0eed96..e73c0e9d 100644 --- a/webapp/src/components/NodeCard/styles.js +++ b/webapp/src/components/NodeCard/styles.js @@ -2,23 +2,25 @@ export default (theme) => ({ root: { height: '100%', display: 'flex', - flexFlow: 'column' + flexFlow: 'column', }, content: { - flex: 1 + flex: 1, }, avatar: { + width: 30, + height: 30, borderRadius: '100%', - backgroundColor: theme.palette.primary.contrastText + backgroundColor: theme.palette.primary.contrastText, }, dl: { marginTop: -16, - marginBottom: -16 + marginBottom: -16, }, bold: { - fontWeight: 'bold' + fontWeight: 'bold', }, breakLine: { - wordBreak: 'break-word' - } + wordBreak: 'break-word', + }, }) diff --git a/webapp/src/components/NodeSearch/index.js b/webapp/src/components/NodeSearch/index.js deleted file mode 100644 index 6d7fdae3..00000000 --- a/webapp/src/components/NodeSearch/index.js +++ /dev/null @@ -1,121 +0,0 @@ -/* eslint camelcase: 0 */ -import React, { memo, useEffect, useState } from 'react' -import PropTypes from 'prop-types' -import clsx from 'clsx' -import { useTranslation } from 'react-i18next' -import { makeStyles } from '@mui/styles' -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Grid from '@mui/material/Grid' -import Box from '@mui/material/Box' -import Chip from '@mui/material/Chip' -import IconButton from '@mui/material/IconButton' -import InputAdornment from '@mui/material/InputAdornment' -import TextField from '@mui/material/TextField' -import Typography from '@mui/material/Typography' -import SearchOutlinedIcon from '@mui/icons-material/SearchOutlined' -import 'flag-icon-css/css/flag-icon.min.css' - -import { eosConfig } from '../../config' - -import styles from './styles' - -const useStyles = makeStyles((theme) => styles(theme, eosConfig)) - -const NodeSearch = ({ filters: parentFilters, onChange }) => { - const classes = useStyles() - const { t } = useTranslation('nodeSearchComponent') - const [nodeSelected, setNodeSelected] = useState('all') - const [filters, setFilters] = useState({}) - - const handleOnChange = (key) => (event) => { - setFilters({ ...filters, [key]: event.target.value }) - } - - const handleOnClickChip = (nodeName) => { - setNodeSelected(nodeName) - onChange({ ...filters, nodeType: nodeName }) - } - - const handleOnClick = () => { - onChange(filters) - } - - const handleOnKeyDown = (event) => { - if (event.keyCode !== 13) { - return - } - - onChange(filters) - } - - useEffect(() => { - setFilters(parentFilters || {}) - }, [parentFilters]) - - return ( - - - - - {`${t( - 'title' - )}:`} - - - - - - ) - }} - onKeyDown={handleOnKeyDown} - onChange={handleOnChange('owner')} - /> - - handleOnClickChip('all')} - className={clsx({ [classes.selected]: nodeSelected === 'all' })} - /> - - {eosConfig.nodeTypes.map((nodeType, index) => ( - handleOnClickChip(nodeType.name)} - className={clsx({ - [classes.selected]: nodeSelected === nodeType.name - })} - /> - ))} - - - - - - ) -} - -NodeSearch.propTypes = { - filters: PropTypes.any, - onChange: PropTypes.func -} - -NodeSearch.defaultProps = { - onChange: () => {} -} - -export default memo(NodeSearch) diff --git a/webapp/src/components/NodeSearch/styles.js b/webapp/src/components/NodeSearch/styles.js deleted file mode 100644 index 57936ba0..00000000 --- a/webapp/src/components/NodeSearch/styles.js +++ /dev/null @@ -1,85 +0,0 @@ -export default (theme, eosConfig) => ({ - formControl: { - width: '100%' - }, - colorWrapper: { - display: 'flex', - flexWrap: 'wrap' - }, - colorItem: { - display: 'flex', - alignItems: 'center', - width: '50%', - cursor: 'pointer', - fontWeight: 'bold' - }, - [eosConfig.nodeTypes[0].name]: { - backgroundColor: eosConfig.nodeTypes[0].color, - width: 16, - height: 16, - borderRadius: 4, - marginRight: 4 - }, - [eosConfig.nodeTypes[1].name]: { - backgroundColor: eosConfig.nodeTypes[1].color, - width: 16, - height: 16, - borderRadius: 4, - marginRight: 4 - }, - [eosConfig.nodeTypes[2].name]: { - backgroundColor: eosConfig.nodeTypes[2].color, - width: 16, - height: 16, - borderRadius: 4, - marginRight: 4 - }, - [eosConfig.nodeTypes[3].name]: { - backgroundColor: eosConfig.nodeTypes[3].color, - width: 16, - height: 16, - borderRadius: 4, - marginRight: 4 - }, - logo: { - marginRight: theme.spacing(1), - display: 'inline-block', - borderRadius: '500rem' - }, - capitalize: { - textTransform: 'capitalize' - }, - centerVertically: { - display: 'flex', - alignItems: 'center' - }, - bold: { - fontWeight: 'bold', - paddingRight: 4 - }, - cardContent: { - padding: `${theme.spacing(2)} !important` - }, - nodeSearchWrapper: { - marginBottom: theme.spacing(2) - }, - chipWrapper: { - marginTop: theme.spacing(2), - '& .MuiChip-root': { - marginRight: theme.spacing(2) - }, - textTransform: 'capitalize' - }, - selected: { - backgroundColor: `${theme.palette.primary.main} !important`, - color: `${theme.palette.common.white} !important` - }, - title: { - fontSize: '17px !important', - fontWeight: '600 !important', - lineHeight: '1.2 !important !important', - letterSpacing: '0.06px', - textAlign: 'left !important', - marginBottom: '2px !important' - } -}) diff --git a/webapp/src/components/ProducerAvatar/index.js b/webapp/src/components/ProducerAvatar/index.js new file mode 100644 index 00000000..ec384052 --- /dev/null +++ b/webapp/src/components/ProducerAvatar/index.js @@ -0,0 +1,30 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { generalConfig } from '../../config' +import { onImgError } from '../../utils' +import isLogoValid from '../../utils/validate-image' + +const ProducerAvatar = ({ logo, name, classes }) => { + return ( + {`${name} + ) +} + +ProducerAvatar.propTypes = { + logo: PropTypes.string, + name: PropTypes.string, + classes: PropTypes.object, +} + +ProducerAvatar.defaultProps = { + clases: {}, +} + +export default ProducerAvatar diff --git a/webapp/src/components/ProducerCard/index.js b/webapp/src/components/ProducerCard/index.js index 81500c6d..d958f761 100644 --- a/webapp/src/components/ProducerCard/index.js +++ b/webapp/src/components/ProducerCard/index.js @@ -35,11 +35,13 @@ const ProducerCard = ({ producer, onNodeClick, rank }) => { }, [producer]) const Avatar = () => { + const logo = producerOrg.branding?.logo_256 + return ( avatar, github: , reddit: , - telegram: + telegram: , } const ProducerSocialLinks = ({ items, message }) => { - const itemsArray = Object.keys(items) + const itemsArray = Object.keys(items).filter((key) => !!items[key]) - if (!itemsArray.length) return {message} + if (!itemsArray?.length) return {message} - return itemsArray - .filter((key) => !!items[key]) - .map((key, i) => ( - - {icons[key] || } {key} - - )) + return itemsArray.map((key, i) => ( + + {icons[key] || } {key} + + )) } ProducerSocialLinks.propTypes = { items: PropTypes.object, - message: PropTypes.string + message: PropTypes.string, } export default ProducerSocialLinks diff --git a/webapp/src/components/RicardianContract/index.js b/webapp/src/components/RicardianContract/index.js index 6e83ad45..71a01224 100644 --- a/webapp/src/components/RicardianContract/index.js +++ b/webapp/src/components/RicardianContract/index.js @@ -1,7 +1,6 @@ import React, { useState, useEffect, useCallback } from 'react' import PropTypes from 'prop-types' import Typography from '@mui/material/Typography' -import Box from '@mui/material/Box' import Divider from '@mui/material/Divider' import { makeStyles } from '@mui/styles' @@ -28,30 +27,30 @@ const RicardianContract = ({ abi, hash }) => { const [summary, _icon] = (content2 || '').split('\nicon: ') return ( - - +
+
icon - +
{_title || name} {version} - - +
+
{summary || 'Empty Ricardian Clause'} - +
) }, - [classes] + [classes], ) useEffect(() => { @@ -59,11 +58,11 @@ const RicardianContract = ({ abi, hash }) => { const actions = abi.actions.map( ({ ricardian_contract: ricardianContract, name }) => - formatRicardianClause(ricardianContract, name) + formatRicardianClause(ricardianContract, name), ) const clauses = abi.ricardian_clauses.map(({ body }) => - formatRicardianClause(body) + formatRicardianClause(body), ) setActions(actions) @@ -71,7 +70,7 @@ const RicardianContract = ({ abi, hash }) => { }, [abi, formatRicardianClause]) return ( - +
Hash: {hash || 'N/A'} @@ -83,13 +82,13 @@ const RicardianContract = ({ abi, hash }) => { {actions.map((item) => item)} {clauses.map((clause) => clause)} - +
) } RicardianContract.propTypes = { abi: PropTypes.any, - hash: PropTypes.string + hash: PropTypes.string, } RicardianContract.defaultProps = {} diff --git a/webapp/src/components/ProducerSearch/index.js b/webapp/src/components/SearchBar/index.js similarity index 62% rename from webapp/src/components/ProducerSearch/index.js rename to webapp/src/components/SearchBar/index.js index b407da69..dc02f78d 100644 --- a/webapp/src/components/ProducerSearch/index.js +++ b/webapp/src/components/SearchBar/index.js @@ -4,56 +4,42 @@ import PropTypes from 'prop-types' import clsx from 'clsx' import { useTranslation } from 'react-i18next' import { makeStyles } from '@mui/styles' -import SearchOutlinedIcon from '@mui/icons-material/SearchOutlined' -import Chip from '@mui/material/Chip' -import Box from '@mui/material/Box' import Card from '@mui/material/Card' import CardContent from '@mui/material/CardContent' +import Chip from '@mui/material/Chip' +import Grid from '@mui/material/Grid' import IconButton from '@mui/material/IconButton' import InputAdornment from '@mui/material/InputAdornment' import TextField from '@mui/material/TextField' -import Grid from '@mui/material/Grid' import Typography from '@mui/material/Typography' +import SearchOutlinedIcon from '@mui/icons-material/SearchOutlined' import styles from './styles' const useStyles = makeStyles(styles) -const CHIPS = { - lacchain: [ - { value: 'all', label: 'all' }, - { value: 1, label: 'partners' }, - { value: 2, label: 'nonPartners' } - ], - net: [ - { value: 'all', label: 'allBPs' }, - { value: 1, label: 'top21' }, - { value: 2, label: 'paidStandby' }, - { value: 3, label: 'nonPaidStandby' } - ] -} -const ProducerSearch = ({ +const SearchBar = ({ filters: rootFilters, - onSearch, onChange, - networkName + chips, + translationScope }) => { const classes = useStyles() - const { t } = useTranslation('producerSearchComponent') - const [selected, setSelected] = useState('all') + const { t } = useTranslation(translationScope) + const [selected, setSelected] = useState(chips[0]?.name ?? '') const [filters, setFilters] = useState({}) const handleOnChange = (key) => (event) => { setFilters({ ...filters, [key]: event.target.value }) } - const handleOnSearch = () => { - onSearch(filters) + const handleOnClick = () => { + onChange(filters) } const handleOnClickChip = (value) => { setSelected(value) - onChange(value) + onChange({ ...filters, name: value }) } const handleOnKeyDown = (event) => { @@ -61,7 +47,7 @@ const ProducerSearch = ({ return } - onSearch(filters) + onChange(filters) } useEffect(() => { @@ -73,11 +59,11 @@ const ProducerSearch = ({ - {`${t( - 'title' - )}:`} + + {`${t('title')}:`} + @@ -97,19 +83,19 @@ const ProducerSearch = ({ onKeyDown={handleOnKeyDown} onChange={handleOnChange('owner')} /> - - {(CHIPS[networkName] || CHIPS.net).map((chip) => ( + + {chips.map((chip, index) => ( handleOnClickChip(chip.value)} + onClick={() => handleOnClickChip(chip.name)} className={clsx({ - [classes.selected]: selected === chip.value + [classes.selected]: selected === chip.name })} /> ))} - +
@@ -117,18 +103,16 @@ const ProducerSearch = ({ ) } -ProducerSearch.propTypes = { +SearchBar.propTypes = { filters: PropTypes.any, - onSearch: PropTypes.func, onChange: PropTypes.func, - networkName: PropTypes.string + translationScope: PropTypes.string, + chips: PropTypes.array } -ProducerSearch.defaultProps = { - filters: {}, - onSearch: () => {}, +SearchBar.defaultProps = { onChange: () => {}, - networkName: '' + chips: [] } -export default memo(ProducerSearch) +export default memo(SearchBar) diff --git a/webapp/src/components/ProducerSearch/styles.js b/webapp/src/components/SearchBar/styles.js similarity index 100% rename from webapp/src/components/ProducerSearch/styles.js rename to webapp/src/components/SearchBar/styles.js diff --git a/webapp/src/components/Sidebar/ExternalLink.js b/webapp/src/components/Sidebar/ExternalLink.js new file mode 100644 index 00000000..64678565 --- /dev/null +++ b/webapp/src/components/Sidebar/ExternalLink.js @@ -0,0 +1,27 @@ +import React, { forwardRef } from 'react' +import PropTypes from 'prop-types' + +const ExternalLink = forwardRef(function ExternalLink( + { to, children, className }, + ref, +) { + return ( + + {children} + + ) +}) + +ExternalLink.propTypes = { + to: PropTypes.string, + children: PropTypes.node, + className: PropTypes.string, +} + +export default ExternalLink diff --git a/webapp/src/components/Sidebar/NavLink.js b/webapp/src/components/Sidebar/NavLink.js new file mode 100644 index 00000000..10f40047 --- /dev/null +++ b/webapp/src/components/Sidebar/NavLink.js @@ -0,0 +1,8 @@ +import React, { forwardRef } from 'react' +import { NavLink as RouterNavLink } from 'react-router-dom' + +const NavLink = forwardRef(function NavLink(props, ref) { + return +}) + +export default NavLink diff --git a/webapp/src/components/Sidebar/SidebarCategory.js b/webapp/src/components/Sidebar/SidebarCategory.js new file mode 100644 index 00000000..124d5eb8 --- /dev/null +++ b/webapp/src/components/Sidebar/SidebarCategory.js @@ -0,0 +1,75 @@ +import React from 'react' +import PropTypes from 'prop-types' +import clsx from 'clsx' +import { ExpandLess, ExpandMore } from '@mui/icons-material' +import { Chip, ListItem as MuiListItem, ListItemText } from '@mui/material' +import styled from 'styled-components' +import { darken } from 'polished' + +const Category = styled(MuiListItem)` + font-weight: ${(props) => props.theme.typography.fontWeightRegular}; + color: ${(props) => props.theme.sidebar.color}; + display: flex; + flex-direction: row; + svg { + opacity: 0.5; + object-fit: contain; + font-size: 20px; + width: 20px; + height: 20px; + } + &:hover, + &.${(props) => props.activeclassname} { + background-color: ${(props) => + darken(0.05, props.theme.sidebar.background)}; + svg { + opacity: 1; + } + } +` + +const SidebarCategory = ({ + name, + icon, + classes, + isOpen, + isCollapsable, + badge, + showOnlyIcons, + ...rest +}) => { + if (showOnlyIcons) return {icon} + + return ( + + {icon} + {name} + {isCollapsable ? ( + isOpen ? ( + + ) : ( + + ) + ) : null} + {badge ? ( + + ) : ( + '' + )} + + ) +} + +SidebarCategory.propTypes = { + name: PropTypes.string, + icon: PropTypes.node, + classes: PropTypes.any, + isOpen: PropTypes.bool, + isCollapsable: PropTypes.bool, + badge: PropTypes.string, +} + +export default SidebarCategory diff --git a/webapp/src/components/Sidebar/SidebarLink.js b/webapp/src/components/Sidebar/SidebarLink.js new file mode 100644 index 00000000..5263baed --- /dev/null +++ b/webapp/src/components/Sidebar/SidebarLink.js @@ -0,0 +1,50 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { Chip, ListItem as MuiListItem, ListItemText } from '@mui/material' +import { rgba, darken } from 'polished' +import styled from 'styled-components' + +import NavLink from './NavLink' + +const Link = styled(MuiListItem)` + span { + color: ${(props) => rgba(props.theme.sidebar.color, 0.7)}; + } + &:hover span { + color: ${(props) => rgba(props.theme.sidebar.color, 0.9)}; + } + &.${(props) => props.activeclassname} { + background-color: ${(props) => + darken(0.06, props.theme.sidebar.background)}; + span { + color: ${(props) => props.theme.sidebar.color}; + } + } +` + +const SidebarLink = ({ name, icon, to, badge, classes }) => ( + + {icon} + {name} + {badge ? : ''} + +) + +SidebarLink.propTypes = { + icon: PropTypes.node, + name: PropTypes.string, + to: PropTypes.string, + badge: PropTypes.string, + classes: PropTypes.any, +} + +export default SidebarLink diff --git a/webapp/src/components/Sidebar/index.js b/webapp/src/components/Sidebar/index.js index 22a6f847..beffb8ef 100644 --- a/webapp/src/components/Sidebar/index.js +++ b/webapp/src/components/Sidebar/index.js @@ -1,196 +1,35 @@ -import React, { useState, forwardRef } from 'react' +import React, { useState } from 'react' import PropTypes from 'prop-types' -import clsx from 'clsx' -import { ExpandLess, ExpandMore } from '@mui/icons-material' import { - Box, - Chip, Collapse, Drawer as MuiDrawer, List as MuiList, ListItem as MuiListItem, - ListItemText, - Typography + Typography, + IconButton, + Tooltip, } from '@mui/material' -import styled from 'styled-components' +import MenuIcon from '@mui/icons-material/Menu' import { makeStyles } from '@mui/styles' -import { rgba, darken } from 'polished' -import { NavLink as RouterNavLink, withRouter } from 'react-router-dom' +import { rgba } from 'polished' +import { useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import PerfectScrollbar from 'react-perfect-scrollbar' import 'react-perfect-scrollbar/dist/css/styles.css' import routes from '../../routes' -import { eosConfig } from '../../config' import styles from './styles' +import NavLink from './NavLink' +import ExternalLink from './ExternalLink' +import SidebarCategory from './SidebarCategory' +import SidebarLink from './SidebarLink' const useStyles = makeStyles((theme) => styles(theme, rgba)) -const NavLink = forwardRef(function NavLink(props, ref) { - return -}) - -const ExternalLink = forwardRef(function ExternalLink( - { to, children, className }, - ref -) { - return ( - - {children} - - ) -}) - -ExternalLink.propTypes = { - to: PropTypes.string, - children: PropTypes.node, - className: PropTypes.string -} - -const DashboardIcon = ({ className }) => { - if (eosConfig.networkName.toLowerCase().includes('airwire')) { - return ( - EOS Costa Rica - Open Source Projects - ) - } - - return ( - EOS Costa Rica - Open Source Projects - ) -} - -const Category = styled(MuiListItem)` - padding-top: ${(props) => props.theme.spacing(3)}px; - padding-bottom: ${(props) => props.theme.spacing(3)}px; - padding-left: ${(props) => props.theme.spacing(6)}px; - padding-right: ${(props) => props.theme.spacing(5)}px; - font-weight: ${(props) => props.theme.typography.fontWeightRegular}; - color: ${(props) => props.theme.sidebar.color}; - display: flex; - flex-direction: row; - - svg { - opacity: 0.5; - font-size: 20px; - width: 20px; - height: 20px; - } - - &:hover, - &.${(props) => props.activeClassName} { - background-color: ${(props) => - darken(0.05, props.theme.sidebar.background)}; - svg { - opacity: 1; - } - } -` - -const Link = styled(MuiListItem)` - padding-left: ${(props) => props.theme.spacing(15)}px; - padding-top: ${(props) => props.theme.spacing(2)}px; - padding-bottom: ${(props) => props.theme.spacing(2)}px; - - span { - color: ${(props) => rgba(props.theme.sidebar.color, 0.7)}; - } - - &:hover span { - color: ${(props) => rgba(props.theme.sidebar.color, 0.9)}; - } - - &.${(props) => props.activeClassName} { - background-color: ${(props) => - darken(0.06, props.theme.sidebar.background)}; - - span { - color: ${(props) => props.theme.sidebar.color}; - } - } -` - -const SidebarCategory = ({ - name, - icon, - classes, - isOpen, - isCollapsable, - badge, - ...rest -}) => { - return ( - - {icon} - {name} - {isCollapsable ? ( - isOpen ? ( - - ) : ( - - ) - ) : null} - {badge ? ( - - ) : ( - '' - )} - - ) -} - -SidebarCategory.propTypes = { - name: PropTypes.string, - icon: PropTypes.node, - classes: PropTypes.any, - isOpen: PropTypes.bool, - isCollapsable: PropTypes.bool, - badge: PropTypes.string -} - -const SidebarLink = ({ name, icon, to, badge, classes }) => ( - - {icon} - {name} - {badge ? : ''} - -) - -SidebarLink.propTypes = { - icon: PropTypes.node, - name: PropTypes.string, - to: PropTypes.string, - badge: PropTypes.string, - classes: PropTypes.any -} - -const Sidebar = ({ classes, staticContext, location, ...rest }) => { +const Sidebar = ({ classes, staticContext, onDrawerToggle, ...rest }) => { const { t } = useTranslation('routes') + const location = useLocation() const classesStyle = useStyles() const initOpenRoutes = () => { /* Open collapse element that matches current url */ @@ -204,7 +43,7 @@ const Sidebar = ({ classes, staticContext, location, ...rest }) => { const isHome = route.containsHome && pathName === '/' _routes = Object.assign({}, _routes, { - [index]: isActive || isOpen || isHome + [index]: isActive || isOpen || isHome, }) }) @@ -219,83 +58,125 @@ const Sidebar = ({ classes, staticContext, location, ...rest }) => { (item) => openRoutes[index] || setOpenRoutes((openRoutes) => - Object.assign({}, openRoutes, { [item]: false }) - ) + Object.assign({}, openRoutes, { [item]: false }), + ), ) // Toggle selected element setOpenRoutes((openRoutes) => - Object.assign({}, openRoutes, { [index]: !openRoutes[index] }) + Object.assign({}, openRoutes, { [index]: !openRoutes[index] }), ) } return ( - - - - + +
+ + + +
{routes .filter(({ name }) => !!name) .map((category, index) => ( - - {category.header ? ( - - {t(category.header)} - - ) : null} - - {category.children ? ( - - sidebar`)} - icon={category.icon} - onClick={() => toggle(index)} - isCollapsable - button - classes={classesStyle} - /> - - - {category.children.map((route, index) => ( - + {t(`${category.path}>sidebar`)} + + ) : ( + '' + ) + } + arrow + placement="left" + key={`category-${category.name}-${index}`} + > +
+ {category.header ? ( +
+ ) : null} + + + {category.header ? ( + <> + {rest.open && ( + + {t(category.header)} + + )} + + ) : null} + + {category.children ? ( +
+ sidebar`)} + icon={category.icon} + onClick={() => toggle(index)} + isCollapsable + button + showOnlyIcons={!rest.open} classes={classesStyle} /> - ))} - - - ) : ( - sidebar` + + + {category.children.map((route, index) => ( + + ))} + +
+ ) : ( + sidebar`, + )} + to={category.path} + activeclassname="active" + component={ + category.path.includes('http') + ? ExternalLink + : NavLink + } + icon={category.icon} + exact + badge={category.badge} + showOnlyIcons={!rest.open} + classes={classesStyle} + /> )} - to={category.path} - activeClassName="active" - component={ - category.path.includes('http') ? ExternalLink : NavLink - } - icon={category.icon} - exact - badge={category.badge} - classes={classesStyle} - /> - )} -
+ +
+ ))} +
@@ -305,7 +186,7 @@ const Sidebar = ({ classes, staticContext, location, ...rest }) => { Sidebar.propTypes = { classes: PropTypes.any, staticContext: PropTypes.any, - location: PropTypes.any + location: PropTypes.any, } -export default withRouter(Sidebar) +export default Sidebar diff --git a/webapp/src/components/Sidebar/styles.js b/webapp/src/components/Sidebar/styles.js index 8f774730..937a8ef5 100644 --- a/webapp/src/components/Sidebar/styles.js +++ b/webapp/src/components/Sidebar/styles.js @@ -1,22 +1,27 @@ export default (theme, rgba) => ({ drawer: { + minWidth: '70px', borderRight: 0, '& > div': { - borderRight: 0 - } + minWidth: '70px', + borderRight: 0, + [theme.breakpoints.up('md')]: { + maxWidth: '240px', + } + }, }, scrollbar: { - backgroundColor: theme.sidebar.background + backgroundColor: theme.sidebar.background, }, list: { - backgroundColor: theme.sidebar.background + backgroundColor: theme.sidebar.background, }, listItem: { - padding: '0 !important', + padding: '2px 6px 2px 6px !important', display: 'flex !important', flexDirection: 'column !important', alignItems: 'start !important', - justifyContent: 'center !important' + justifyContent: 'center !important', }, brand: { fontSize: theme.typography.h5.fontSize, @@ -30,20 +35,20 @@ export default (theme, rgba) => ({ cursor: 'default', paddingBottom: 16, [theme.breakpoints.up('sm')]: { - minHeight: 64 + minHeight: 64, }, '&:hover': { - backgroundColor: theme.sidebar.header.background - } + backgroundColor: theme.sidebar.header.background, + }, }, brandIcon: { width: 200, - height: 100 + height: 100, }, airWareIcon: { width: 200, height: 50, - margin: '25px 0' + margin: '25px 0', }, categoryText: { margin: 0, @@ -51,22 +56,22 @@ export default (theme, rgba) => ({ color: theme.sidebar.color, fontSize: theme.typography.body1.fontSize, fontWeight: theme.sidebar.category.fontWeight, - padding: theme.spacing(0, 4) - } + padding: theme.spacing(0, 4), + }, }, categoryIconLess: { - color: rgba(theme.sidebar.color, 0.5) + color: rgba(theme.sidebar.color, 0.5), }, categoryIconMore: { - color: rgba(theme.sidebar.color, 0.5) + color: rgba(theme.sidebar.color, 0.5), }, linkText: { color: theme.sidebar.color, '& span': { - fontSize: theme.typography.body1.fontSize + fontSize: theme.typography.body1.fontSize, }, marginTop: 0, - marginBottom: 0 + marginBottom: 0, }, linkBadge: { fontSize: '11px !important', @@ -80,17 +85,36 @@ export default (theme, rgba) => ({ cursor: 'pointer', color: theme.sidebar.badge.color, paddingleft: theme.spacing(2), - paddingRight: theme.spacing(2) - } + paddingRight: theme.spacing(2), + }, }, categoryBadge: { - top: 12 + top: 12, + }, + divider: { + height: '1px', + margin: theme.spacing(4), + backgroundColor: '#e0e0e0', }, sidebarSection: { color: theme.sidebar.color, - padding: theme.spacing(4, 6, 1), + padding: theme.spacing(0, 4), opacity: 0.9, display: 'block', - fontWeight: '600' + fontWeight: `${theme.typography.fontWeightBold} !important`, + }, + button: { + padding: '4px 10px 0px', + }, + iconButton: { + '& svg': { + width: 30, + height: 30, + color: 'rgba(0, 0, 0, 0.54)', + }, + }, + tooltip: { + padding: theme.spacing(1, 2), + fontSize: '1.2em', } }) diff --git a/webapp/src/config/eos.config.js b/webapp/src/config/eos.config.js index 9a9197c5..a68e317d 100644 --- a/webapp/src/config/eos.config.js +++ b/webapp/src/config/eos.config.js @@ -18,6 +18,7 @@ export const networkLogo = process.env.REACT_APP_EOS_API_NETWORK_LOGO export const tokenSymbol = process.env.REACT_APP_TOKEN_SYMBOL let _nodeTypes = null +let _producerTypes = null switch (networkName) { case 'lacchain': @@ -31,6 +32,7 @@ switch (networkName) { { name: 'writer', color: '#5484b3', description: 'Writer node' }, { name: 'observer', color: '#000', description: 'Observer node' } ] + _producerTypes = ['partners', 'nonPartners'] break default: _nodeTypes = [ @@ -55,10 +57,12 @@ switch (networkName) { description: 'Node that provides P2P and/or BNET to the public' } ] + _producerTypes = ['top21', 'paidStandby', 'nonPaidStandby'] break } export const nodeTypes = _nodeTypes +export const producerTypes = _producerTypes export const includeDefaultTransaction = process.env .REACT_APP_EOS_INCLUDE_TRANSACTION ? JSON.parse(process.env.REACT_APP_EOS_INCLUDE_TRANSACTION) diff --git a/webapp/src/config/general.js b/webapp/src/config/general.js index 0401ff1d..f66a7f90 100644 --- a/webapp/src/config/general.js +++ b/webapp/src/config/general.js @@ -7,13 +7,15 @@ export const eosRateLink = process.env.REACT_APP_EOS_RATE_LINK export const defaultProducerLogo = process.env.REACT_APP_DEFAULT_PRODUCER_LOGO || 'https://bloks.io/img/eosio.png' + export const footerLinks = process.env.REACT_APP_FOOTER_LINKS ? JSON.parse(process.env.REACT_APP_FOOTER_LINKS) : [] export const disabledMenuItems = JSON.parse( process.env.REACT_APP_DISABLED_MENU_ITEMS || '[]' ) -export const appVersion = process.env.REACT_APP_TAG || 'v1.0' +export const appVersion = + process.env.REACT_APP_VERSION.split('/').pop() || 'v1.0' export const appName = process.env.REACT_APP_NAME || 'eosiodashboard' export const networkLinks = process.env.REACT_APP_NETWORK_URL ? JSON.parse(process.env.REACT_APP_NETWORK_URL) diff --git a/webapp/src/hooks/customHooks/useBlockProducerState.js b/webapp/src/hooks/customHooks/useBlockProducerState.js new file mode 100644 index 00000000..d1121588 --- /dev/null +++ b/webapp/src/hooks/customHooks/useBlockProducerState.js @@ -0,0 +1,108 @@ +import { useState, useEffect } from 'react' +import { useSubscription } from '@apollo/client' + +import { PRODUCERS_QUERY, BLOCK_TRANSACTIONS_HISTORY } from '../../gql' +import { eosConfig } from '../../config' + +import useSearchState from './useSearchState' + +const CHIPS_FILTERS = [ + { offset: 0, where: null, limit: 28 }, + { + where: { total_rewards: { _neq: 0 }, rank: { _lte: 21 } }, + }, + { + where: { total_rewards: { _gte: 100 }, rank: { _gte: 22 } }, + }, + { + where: { total_rewards: { _eq: 0 } }, + }, +] + +const CHIPS_NAMES = ['all', ...eosConfig.producerTypes] + +const useBlockProducerState = () => { + const [ + { filters, pagination, loading, producers, info }, + { handleOnSearch, handleOnPageChange, setPagination }, + ] = useSearchState({ query: PRODUCERS_QUERY }) + const { data: dataHistory, loading: loadingHistory } = useSubscription( + BLOCK_TRANSACTIONS_HISTORY + ) + const [totalPages, setTotalPages] = useState(1) + const [current, setCurrent] = useState(null) + const [anchorEl, setAnchorEl] = useState(null) + const [items, setItems] = useState([]) + const [missedBlocks, setMissedBlocks] = useState({}) + + const chips = CHIPS_NAMES.map((e) => { + return { name: e } + }) + + const handlePopoverOpen = (node) => (event) => { + setCurrent(node) + setAnchorEl(event.currentTarget) + } + + const handlePopoverClose = () => { + setAnchorEl(null) + } + + useEffect(() => { + if (!info) return + + setTotalPages(Math.ceil(info.producers?.count / pagination.limit)) + }, [info, pagination.limit]) + + useEffect(() => { + if (eosConfig.networkName === 'lacchain') return + + const { where, ...filter } = + CHIPS_FILTERS[CHIPS_NAMES.indexOf(filters.name)] + + setPagination((prev) => ({ + ...prev, + page: 1, + ...filter, + where: { ...where, owner: prev.where?.owner }, + })) + }, [filters, setPagination]) + + useEffect(() => { + let newItems = producers ?? [] + + if (eosConfig.networkName === 'lacchain' && filters.name !== 'all') { + newItems = items.filter((producer) => producer.bp_json?.type === filters) + } + + setItems(newItems) + }, [filters, producers, items]) + + useEffect(() => { + if (dataHistory?.stats.length) { + setMissedBlocks(dataHistory?.stats[0].missed_blocks) + } + }, [dataHistory, loadingHistory]) + + return [ + { + anchorEl, + current, + filters, + chips, + items, + loading, + totalPages, + missedBlocks, + pagination, + }, + { + handlePopoverClose, + handleOnSearch, + handlePopoverOpen, + handleOnPageChange, + }, + ] +} + +export default useBlockProducerState diff --git a/webapp/src/hooks/customHooks/useDebounceState.js b/webapp/src/hooks/customHooks/useDebounceState.js new file mode 100644 index 00000000..47dc1257 --- /dev/null +++ b/webapp/src/hooks/customHooks/useDebounceState.js @@ -0,0 +1,19 @@ +import { useState, useEffect } from 'react' + +const useDebounceState = (value, delay) => { + const [debounceValue, setDebounceValue] = useState(value) + + useEffect(() => { + const handler = setTimeout(() => { + setDebounceValue(value) + }, delay) + + return () => { + clearTimeout(handler) + } + }, [value, delay]) + + return debounceValue +} + +export default useDebounceState diff --git a/webapp/src/hooks/customHooks/useNodeDistributionState.js b/webapp/src/hooks/customHooks/useNodeDistributionState.js new file mode 100644 index 00000000..b35bbecc --- /dev/null +++ b/webapp/src/hooks/customHooks/useNodeDistributionState.js @@ -0,0 +1,107 @@ +import { useState, useEffect } from 'react' +import { useLazyQuery } from '@apollo/client' + +import { ALL_NODES_QUERY } from '../../gql' +import { eosConfig } from '../../config' + +const useNodeDistributionState = () => { + const [loadProducers, { loading = true, data: { producers } = {} }] = + useLazyQuery(ALL_NODES_QUERY) + const [nodes, setNodes] = useState([]) + const [filters, setFilters] = useState({ name: 'all' }) + const [allNodes, setAllNodes] = useState([]) + + const chips = [{ name: 'all' }, ...eosConfig.nodeTypes] + + const handleOnFiltersChange = (newFilters) => { + setFilters(newFilters) + } + + useEffect(() => { + loadProducers({ + variables: { + where: {}, + }, + }) + // eslint-disable-next-line + }, []) + + useEffect(() => { + if (!producers?.length) { + return + } + + const items = [] + producers.forEach((producer) => { + if (!producer?.bp_json?.nodes) { + return + } + + producer.bp_json.nodes.forEach((node) => { + if (!node?.location?.latitude || !node?.location?.longitude) return + + items.push({ + node, + producer, + country: node?.location?.country || '', + type: node.node_type, + lat: parseFloat(node.location.latitude), + lon: parseFloat(node.location.longitude), + name: producer.owner, + }) + }) + }) + + const sortedItems = items + .sort((a, b) => + a.country > b.country ? 1 : b.country > a.country ? -1 : 0 + ) + .reduce( + (prev, current) => { + if (!prev.pibot) { + return { + ...prev, + pibot: current, + result: [...prev.result, current], + } + } + + if ( + prev.pibot.lat === current.lat && + prev.pibot.lon === current.lon + ) { + const newLat = current.lat + prev.increase + + return { + ...prev, + increase: prev.increase + 0.1, + result: [...prev.result, { ...current, lat: newLat }], + } + } + + return { + increase: 0.1, + pibot: current, + result: [...prev.result, current], + } + }, + { pibot: {}, result: [], increase: 0.1 } + ) + + setAllNodes(sortedItems.result || []) + }, [producers]) + + useEffect(() => { + let items = allNodes + + if (filters.name !== 'all') { + items = items.filter((current) => current.node.node_type === filters.name) + } + + setNodes(items) + }, [allNodes, filters]) + + return [{ filters, chips, nodes, loading }, { handleOnFiltersChange }] +} + +export default useNodeDistributionState diff --git a/webapp/src/hooks/customHooks/useNodeState.js b/webapp/src/hooks/customHooks/useNodeState.js new file mode 100644 index 00000000..65a30b72 --- /dev/null +++ b/webapp/src/hooks/customHooks/useNodeState.js @@ -0,0 +1,53 @@ +import { useState, useEffect } from 'react' + +import { NODES_QUERY } from '../../gql' +import { eosConfig } from '../../config' + +import useSearchState from './useSearchState' + +const useNodeState = () => { + const [ + { filters, pagination, loading, producers }, + { handleOnSearch, handleOnPageChange, setPagination }, + ] = useSearchState({ query: NODES_QUERY }) + const [items, setItems] = useState([]) + const [nodes, setNodes] = useState([]) + + const chips = [{ name: 'all' }, ...eosConfig.nodeTypes] + + useEffect(() => { + if (!nodes) return + + const index = (pagination.page - 1) * pagination.limit + + setItems(nodes.slice(index, index + pagination.limit)) + + setPagination((prev) => ({ + ...prev, + pages: Math.ceil((nodes?.length ?? 0) / pagination.limit), + })) + }, [nodes, pagination.page, pagination.limit, setPagination]) + + useEffect(() => { + if (!producers) return + + const nodesList = [] + + producers.forEach((producer) => { + (producer?.bp_json?.nodes ?? []).forEach((node) => { + if (filters.name === 'all' || node.node_type?.includes(filters.name)) { + nodesList.push({ node, producer }) + } + }) + }) + + setNodes(nodesList) + }, [filters.name, producers]) + + return [ + { filters, chips, loading, items, pagination }, + { handleOnSearch, handleOnPageChange }, + ] +} + +export default useNodeState diff --git a/webapp/src/hooks/customHooks/useSearchState.js b/webapp/src/hooks/customHooks/useSearchState.js new file mode 100644 index 00000000..7cb746f9 --- /dev/null +++ b/webapp/src/hooks/customHooks/useSearchState.js @@ -0,0 +1,77 @@ +import { useState, useEffect } from 'react' +import { useLazyQuery } from '@apollo/client' +import { useLocation } from 'react-router-dom' +import queryString from 'query-string' + +const useSearchState = ({ query }) => { + const [loadProducers, { loading = true, data: { producers, info } = {} }] = + useLazyQuery(query) + const location = useLocation() + const [pagination, setPagination] = useState({ + page: 1, + pages: 1, + limit: 28, + where: null, + }) + const [filters, setFilters] = useState({ name: 'all', owner: '' }) + + const handleOnSearch = (newFilters) => { + setPagination((prev) => ({ + ...prev, + page: 1, + where: { + ...pagination.where, + owner: { _like: `%${newFilters?.owner ?? ''}%` }, + }, + })) + setFilters(newFilters) + } + + const handleOnPageChange = (_, page) => { + setPagination((prev) => ({ + ...prev, + page, + })) + } + + useEffect(() => { + loadProducers({ + variables: { + where: pagination.where, + offset: + pagination.offset === undefined + ? 0 + : (pagination.page - 1) * pagination.limit, + limit: pagination.limit, + }, + }) + // eslint-disable-next-line + }, [pagination.where, pagination.page, pagination.limit, pagination.offset]) + + useEffect(() => { + const params = queryString.parse(location.search) + + if (!params.owner) return + + setPagination((prev) => ({ + ...prev, + page: 1, + where: { owner: { _like: `%${params.owner}%` } }, + })) + + setFilters((prev) => ({ ...prev, owner: params.owner })) + }, [location.search]) + + return [ + { filters, pagination, loading, producers, info }, + { + handleOnSearch, + handleOnPageChange, + setFilters, + setPagination, + loadProducers, + }, + ] +} + +export default useSearchState diff --git a/webapp/src/language/en.json b/webapp/src/language/en.json index a2d62cbf..56d22341 100644 --- a/webapp/src/language/en.json +++ b/webapp/src/language/en.json @@ -30,12 +30,17 @@ "api": "HTTP", "ssl": "HTTPS", "p2p": "P2P", + "payer": "Payer", "nodes": "Nodes", "total": "Total", "missedBlocks": "Missed Blocks", "timeFrame": "Time frame", "net": "NET", - "cpu": "CPU" + "cpu": "CPU", + "footer1": "This app is open source", + "footer2": "Find out how to contribute", + "executeTransaction": "Execute Transaction", + "bugRequest": "Report a bug / Request a feature" }, "routes": { "/>sidebar": "Dashboard", @@ -154,7 +159,7 @@ "unknownError": "Unknown error processing action", "accountNotFound": "Account not found", "successMessage": "Success transaction", - "account": "Account or Contract Name", + "placeholder": "Account or Contract Name", "title": "Search for account information, view tables and execute actions for any contract." }, "bpJsonRoute": { @@ -190,9 +195,10 @@ }, "subtitle3": "Where Does the Data Come From?", "body3": { - "paragraph1": "EOSIO Dashboard provides a detailed and graphic visualization of relevant information of entities running nodes and blockchain infrastructure. We source data on-chain directly from the public blockchain tables and information provided by Block Producers in their bp.json files.", + "paragraph1": "EOSIO Dashboard provides a detailed and graphic visualization of relevant information of entities running nodes and blockchain infrastructure. We source data on-chain directly from the public blockchain tables and information provided by Block Producers in their bp.json files. ", "paragraph2": "For more information about EOSIO Dashboard, visit our GitHub repo or contact us on our Telegram group. Contact us and join our effort to make EOSIO chains even more transparent and easy to use." - } + }, + "bpjsonexample": "Bp.json example" }, "helpRoute": { "title": "Thank you for using EOS Network Monitor!", @@ -246,7 +252,8 @@ "endpoints": "Endpoints", "nodeVersion": "Version", "emptyNode": "Empty info for nodes", - "cpuBenchmark": "CPU Benchmark Average" + "cpuBenchmark": "CPU Benchmark Average", + "isFull":"Is full" }, "producerHealthIndicatorsComponent": { "hs_organization_name": "Name", @@ -272,7 +279,7 @@ "lowerBound": "Lower Bound", "upperBound": "Upper Bound", "limit": "Limit", - "getData": "Get Data", + "refreshData": "Refresh Data", "loadMore": "Load More", "emptyTable": "Empty Table" }, @@ -280,7 +287,8 @@ "action": "Action" }, "contractActionFormComponent": { - "executeTransaction": "Execute Transaction" + "executeTransaction": "Execute Transaction", + "owner": "Owner" }, "blockDistributionRoute": { "title": "Blocks generated by producer", @@ -312,10 +320,15 @@ "paidStandby": "Paid Standby", "nonPaidStandby": "Non-Paid Standby", "title": "Search Producer", - "producer": "Producer" + "producer": "Producer", + "placeholder": "Producer Name" }, "nodeSearchComponent": { - "title": "Search Producer", - "producer": "Producer" + "title": "Search Node", + "producer": "Producer", + "placeholder": "Node Name" + }, + "noResultsComponent": { + "noResultsFound": "No results found" } } diff --git a/webapp/src/language/es.json b/webapp/src/language/es.json index 3c999e07..d1e44c65 100644 --- a/webapp/src/language/es.json +++ b/webapp/src/language/es.json @@ -30,8 +30,10 @@ "api": "HTTP", "ssl": "HTTPS", "p2p": "P2P", + "payer" : "Pagador", "nodes": "Nodos", "total": "Total", + "executeTransaction": "Ejecutar Transacción", "missedBlocks": "Bloques perdidos", "timeFrame": "Periodo de tiempo", "3 Hours": "3 Horas", @@ -46,7 +48,10 @@ "2 Months": "2 Meses", "3 Months": "3 Meses", "6 Months": "6 Meses", - "1 Year": "1 Año" + "1 Year": "1 Año", + "footer1": "Esta aplicación es de código abierto", + "footer2": "Averigua cómo contribuir", + "bugRequest": "Reportar un problema / Solicitar una característica " }, "routes": { "/>sidebar": "Panel", @@ -91,7 +96,7 @@ "/help>sidebar": "Ayuda", "/help>title": "Ayuda - Panel", "/help>heading": "Ayuda", - "networkInformation": "Información de a red", + "networkInformation": "Información de la red", "tools": "Herramientas", "docs": "Documentación", "community": "Comunidad", @@ -159,7 +164,7 @@ "unknownError": "Error desconocido al procesar la acción", "accountNotFound": "Cuenta no encontrada", "successMessage": "Transacción exitosa", - "account": "Cuenta o Nombre del Contrato", + "placeholder": "Cuenta o Nombre del Contrato", "title": "Busque información de cuenta, vea tablas y ejecute acciones para cualquier contrato." }, "bpJsonRoute": { @@ -182,26 +187,31 @@ "title": "Acuerdo de Productor de Bloques" }, "aboutRoute": { + "body": { + "paragraph1": "EOSIO Dashboard recolecta datos y permite una visualización fácil del estado de los nodos y estadísticas de las blockchains de EOSIO. Esto también permite visualizar el método de consenso en tiempo real junto con información específica de la red, tales como la distribución de recompensas de los productores de bloques en la mainnet de EOS y una lista de entidades registradas en la red con permiso público LACChain. EOSIO Dashboard es una herramienta open-source para que la comunidad de EOSIO acceda a los datos, apoye las votaciones por los productores de bloques y afine su infraestructura." + }, "title": "EOSIO Tablero", - "subtitle1": "What is the EOSIO Dashboard", + "subtitle1": "¿Por qué usar EOSIO Dashboard?", "body1": { - "paragraph1": "EOSIO dashboard is an open source project for visualizing data on the EOS network infrastructure Block Producer Nodes and Rewards Distribution." + "paragraph1": "EOSIO Dashboard es una herramienta de código abierto impulsada por la comunidad y construida por desarrolladores de blockchain que creen que la transparencia es fundamental para el funcionamiento de las redes de blockchain. Pretendemos ofrecer una aplicación útil y sencilla para visualizar la información relevante de los productores de bloques para promover la transparencia y fiabilidad." }, - "subtitle2": "Why is it important?", + "subtitle2": "¿Por qué es importante?", "body2": { - "paragraph1": "Monitoring what is happening on the network is essential to improve it and measure node transparency the impact of solutions running on the network. The main objective of the monitoring tools is to produce decentralized and reliable information about each node and the activity of the network." + "paragraph1": "En la red EOS, los poseedores de tokens deben votar por los Productores de Bloques basándose en la información disponible. En las redes con permiso, como LACChain, los operadores de nodos son responsables de que la red funcione sin problemas. Creemos que la supervisión de la red es esencial para mejorar y medir la transparencia de los nodos. El objetivo principal de EOSIO Dashboard es ayudar a visualizar información objetiva y fiable sobre cada nodo y su actividad." }, - "subtitle3": "Where does the data come from?", + "subtitle3": "¿De dónde se obtienen los datos?", "body3": { - "paragraph1": "The dashboard is meant to allow the community to obtain a transparent, graphical view of block producer information. We source data directly from the blockchain and from information provided in their bp.json file. The bp.json file is essentially an info/configuration file that is provided by each block producer. You can see an example bp.json file here: https://eoscostarica.io/bp.json" - } + "paragraph1": "EOSIO Dashboard proporciona una visualización detallada y gráfica de la información relevante de las entidades que ejecutan los nodos y la infraestructura de la cadena de bloques. Obtenemos los datos on-chain directamente de las tablas públicas de blockchain y de la información proporcionada por los productores de bloques en sus archivos bp.json. ", + "paragraph2": "Para mayor información acerca EOSIO Dashboard, visite nuestro repositorio en GitHub o contáctenos en nuestro grupo de Telegram. Póngase en contacto con nosotros y únase a nuestro esfuerzo por hacer que las blockchains de EOSIO sean aún más transparentes y fáciles de usar." + }, + "bpjsonexample": "Ejemplo de bp.json" }, "helpRoute": { - "title": "Thank you for using EOS Network Dashboard!", - "paragraph": "EOSIO Dashboard is still work in progress. Please feel free to leave upgrade suggestions, log bugs, or use the code yourself. You can also find us on Telegram or visit our website.", + "title": "¡Gracias por usar EOS Network Dashboard!", + "paragraph": "El desarrollo de EOSIO Dashboard continúa en progreso. Por favor, siéntase libre de dejar sugerencias para actualizaciones, reporte de errores, o utilizar el código. También, puede encontrarnos en Telegram o visitar nuestro sitio web.", "githubEOSCR": "GitHub EOS Costa Rica", "telegramChannel": "Telegram Channel", - "websiteEOSCR": "Website EOS Costa Rica" + "websiteEOSCR": "Sitio web de EOS Costa Rica" }, "producerCardComponent": { "rank": "Rango", @@ -248,7 +258,8 @@ "endpoints": "Endpoints", "nodeVersion": "Versión", "emptyNode": "Sin información para nodos", - "cpuBenchmark": "Promedio del Benchmark de CPU" + "cpuBenchmark": "Promedio del Benchmark de CPU", + "isFull":"Es completo" }, "producerHealthIndicatorsComponent": { "hs_organization_name": "Nombre", @@ -275,16 +286,13 @@ "lowerBound": "Límite inferior", "upperBound": "Límite superior", "limit": "Límite", - "getData": "Obtener Datos", + "refreshData": "Actualizar Datos", "loadMore": "Carga Más", "emptyTable": "Table vacía" }, "contractActionsComponent": { "action": "Acción" }, - "contractActionFormComponent": { - "executeTransaction": "Ejecutar Transacción" - }, "blockDistributionRoute": { "title": "Bloques generados por productor", "blocksProduced": "Bloques producidos", @@ -315,10 +323,15 @@ "paidStandby": "Reserva con pago", "nonPaidStandby": "Reserva sin pago", "title": "Buscar Productor", - "producer": "Productor" + "producer": "Productor", + "placeholder": "Nombre del Productor" }, "nodeSearchComponent": { - "title": "Buscar Productor", - "producer": "Productor" + "title": "Buscar Nodo", + "producer": "Productor", + "placeholder": "Nombre del Nodo" + }, + "noResultsComponent": { + "noResultsFound": "No se encontraron resultados" } } diff --git a/webapp/src/layouts/Dashboard.js b/webapp/src/layouts/Dashboard.js index 51956f32..b706e10a 100644 --- a/webapp/src/layouts/Dashboard.js +++ b/webapp/src/layouts/Dashboard.js @@ -8,8 +8,6 @@ import CssBaseline from '@mui/material/CssBaseline' import Typography from '@mui/material/Typography' import { useTranslation } from 'react-i18next' import { useLocation } from 'react-router-dom' -import Grid from '@mui/material/Grid' -import useMediaQuery from '@mui/material/useMediaQuery' import Sidebar from '../components/Sidebar' import NetworkSelector from '../components/NetworkSelector' @@ -23,13 +21,14 @@ import routes from '../routes' import styles from './styles' -const drawerWidth = 260 +const drawerWidth = 70 +const openDrawerWidth = drawerWidth * (24 / 7) const INIT_VALUES = { dynamicTitle: '', networkTitle: '', - pathname: null + pathname: null, } -const useStyles = makeStyles((theme) => styles(theme, drawerWidth)) +const useStyles = makeStyles((theme) => styles(theme)) const GlobalStyle = createGlobalStyle` html, @@ -37,11 +36,9 @@ const GlobalStyle = createGlobalStyle` #root { height: 100%; } - body { background: ${(props) => props.theme.body.background}; } - .MuiCardHeader-action .MuiIconButton-root { padding: 4px; width: 28px; @@ -49,24 +46,18 @@ const GlobalStyle = createGlobalStyle` } ` -const Dashboard = ({ children, width, ual }) => { +const Dashboard = ({ children, ual }) => { const [mobileOpen, setMobileOpen] = useState(false) const classes = useStyles() const { t } = useTranslation('routes') const location = useLocation() const [lacchain] = useSharedState() const [routeName, setRouteName] = useState(INIT_VALUES) - const isTablet = useMediaQuery('(min-width:767px)') - const [xsSize, setXsSize] = useState(12) const handleDrawerToggle = () => { setMobileOpen(!mobileOpen) } - useEffect(() => { - isTablet ? setXsSize(6) : setXsSize(12) - }, [isTablet]) - useEffect(() => { if (routes.some((route) => route.path === location.pathname)) { const managementCardTitle = lacchain.dynamicTitle || '' @@ -78,7 +69,7 @@ const Dashboard = ({ children, width, ual }) => { : t(`${location.pathname}>heading`), networkTitle: location.pathname === '/' ? eosConfig.networkLabel : '', pathname: location.pathname, - pageTitle: `${location.pathname}>title` + pageTitle: `${location.pathname}>title`, }) } else { setRouteName(INIT_VALUES) @@ -91,17 +82,20 @@ const Dashboard = ({ children, width, ual }) => { -
+
- - + +
@@ -109,26 +103,20 @@ const Dashboard = ({ children, width, ual }) => {
- - - - {routeName.pathname - ? `${routeName.dynamicTitle} ${routeName.networkTitle}` - : ''} - - - - - {t(`${location.pathname}>moreDescription`)} - - - + + {routeName.pathname + ? `${routeName.dynamicTitle} ${routeName.networkTitle}` + : ''} + + + {t(`${location.pathname}>moreDescription`)} +
{ Dashboard.propTypes = { children: PropTypes.node, - width: PropTypes.any, - ual: PropTypes.any + ual: PropTypes.any, } export default Dashboard diff --git a/webapp/src/layouts/styles.js b/webapp/src/layouts/styles.js index 0b172bb5..480d2608 100644 --- a/webapp/src/layouts/styles.js +++ b/webapp/src/layouts/styles.js @@ -1,11 +1,11 @@ -export default (theme, drawerWidth) => ({ +export default (theme) => ({ root: { display: 'flex', minHeight: '100vh' }, drawer: { - [theme.breakpoints.up('md')]: { - width: drawerWidth, + [theme.breakpoints.down('md')]: { + width: '0 !important', flexShrink: 0 } }, @@ -17,7 +17,7 @@ export default (theme, drawerWidth) => ({ overflow: 'hidden' }, mainContent: { - padding: theme.spacing(4), + padding: theme.spacing(6), flex: 1, background: theme.body.background, '@media all and (-ms-high-contrast: none), (-ms-high-contrast: active)': { diff --git a/webapp/src/routes/About/index.js b/webapp/src/routes/About/index.js index a7ab3757..b56ec1e6 100644 --- a/webapp/src/routes/About/index.js +++ b/webapp/src/routes/About/index.js @@ -3,7 +3,6 @@ import Typography from '@mui/material/Typography' import { makeStyles } from '@mui/styles' import { useTranslation } from 'react-i18next' import Grid from '@mui/material/Grid' -import Box from '@mui/material/Box' import Card from '@mui/material/Card' import CardContent from '@mui/material/CardContent' @@ -17,50 +16,55 @@ const About = () => { const { t } = useTranslation('aboutRoute') return ( - - - - - - - - - {t('body.paragraph1')} - - + + + + +
+
+ + {t('body.paragraph1')} + +
- - {t('subtitle1')} - - {t('body1.paragraph1')} - - +
+ {t('subtitle1')} + + {t('body1.paragraph1')} + +
- - {t('subtitle2')} - - {t('body2.paragraph1')} - - +
+ {t('subtitle2')} + + {t('body2.paragraph1')} + +
- - {t('subtitle3')} - - {t('body3.paragraph1')} - - - {t('body3.paragraph2')} - - - - - - - +
+ {t('subtitle3')} + + {t('body3.paragraph1')} + + {t('bpjsonexample')} + + + + {t('body3.paragraph2')} + +
+
-
-
-
+ + + +
+
+
) } diff --git a/webapp/src/routes/Accounts/index.js b/webapp/src/routes/Accounts/index.js index 55d4b1f0..86e867e3 100644 --- a/webapp/src/routes/Accounts/index.js +++ b/webapp/src/routes/Accounts/index.js @@ -1,15 +1,9 @@ -import React, { lazy, useState, useEffect } from 'react' +import React, { lazy, useState, useEffect, useCallback } from 'react' import PropTypes from 'prop-types' import { useLocation } from 'react-router-dom' import { makeStyles } from '@mui/styles' -import Grid from '@mui/material/Grid' import LinearProgress from '@mui/material/LinearProgress' import { useTranslation } from 'react-i18next' -import TextField from '@mui/material/TextField' -import IconButton from '@mui/material/IconButton' -import InputAdornment from '@mui/material/InputAdornment' -import SearchOutlinedIcon from '@mui/icons-material/SearchOutlined' -import Typography from '@mui/material/Typography' import Card from '@mui/material/Card' import queryString from 'query-string' import CardContent from '@mui/material/CardContent' @@ -18,6 +12,7 @@ import { signTransaction } from '../../utils/eos' import eosApi from '../../utils/eosapi' import getTransactionUrl from '../../utils/get-transaction-url' import { useSnackbarMessageState } from '../../context/snackbar-message.context' +import SearchBar from '../../components/SearchBar' import styles from './styles' @@ -28,7 +23,7 @@ const useStyles = makeStyles(styles) const Accounts = ({ ual }) => { const classes = useStyles() const location = useLocation() - const [accountName, setAccountName] = useState(null) + const [filters, setFilters] = useState(null) const [account, setAccount] = useState(null) const [abi, setAbi] = useState(null) const [hash, setHash] = useState(null) @@ -41,7 +36,7 @@ const Accounts = ({ ual }) => { if (!ual.activeUser) { showMessage({ type: 'error', - content: t('loginBeforeUseAction') + content: t('loginBeforeUseAction'), }) return @@ -55,10 +50,10 @@ const Accounts = ({ ual }) => { authorization: [ { actor: ual.activeUser.accountName, - permission: 'active' - } + permission: 'active', + }, ], - ...action + ...action, }) const { trxId, explorerUrl } = getTransactionUrl(result.transactionId) @@ -68,19 +63,19 @@ const Accounts = ({ ual }) => { {t('successMessage')} {trxId} - ) + ), }) } catch (error) { showMessage({ type: 'error', - content: error?.cause?.message || error?.message || t('unknownError') + content: error?.cause?.message || error?.message || t('unknownError'), }) } setLoading(false) } - const handleGetTableRows = async ({ loadMore, ...payload }) => { + const handleGetTableRows = useCallback(async ({ loadMore, ...payload }) => { setLoading(true) try { const tableData = await eosApi.getTableRows(payload) @@ -89,7 +84,7 @@ const Accounts = ({ ual }) => { setTableData((prev) => ({ ...prev, ...tableData, - rows: prev.rows.concat(...tableData.rows) + rows: prev.rows.concat(...tableData.rows), })) return @@ -100,9 +95,11 @@ const Accounts = ({ ual }) => { console.log(error) } setLoading(false) - } + }, []) const handleOnSearch = async (valueAccount) => { + const accountName = valueAccount?.owner ?? '' + setAccount(null) setAbi(null) setHash(null) @@ -112,19 +109,22 @@ const Accounts = ({ ual }) => { await new Promise((resolve) => setTimeout(resolve, 500)) try { - const account = await eosApi.getAccount(valueAccount) + const account = await eosApi.getAccount(accountName) + setAccount(account) } catch (error) { showMessage({ type: 'error', - content: t('accountNotFound') + content: t('accountNotFound'), }) } try { - const { abi } = await eosApi.getAbi(valueAccount) + const { abi } = await eosApi.getAbi(accountName) + setAbi(abi) - const { code_hash: hash = '' } = await eosApi.getCodeHash(valueAccount) + const { code_hash: hash = '' } = await eosApi.getCodeHash(accountName) + setHash(hash) } catch (error) { console.log(error) @@ -133,60 +133,31 @@ const Accounts = ({ ual }) => { setLoading(false) } - const handleOnKeyDown = (event) => { - if (event.keyCode !== 13) return - - handleOnSearch(accountName) - } - useEffect(() => { const params = queryString.parse(location.search) - if (!params.account) { - setAccountName('eosio') - handleOnSearch('eosio') - - return - } + setFilters({ + owner: params?.account || 'eosio', + table: params?.table || 'producers', + }) + handleOnSearch({ owner: params?.account || 'eosio' }) - setAccountName(params.account) - handleOnSearch(params.account) // eslint-disable-next-line }, [location.search]) useEffect(() => { - handleOnSearch('eosio') + handleOnSearch({ owner: 'eosio' }) // eslint-disable-next-line }, []) - + return ( - +
- - {t('title')} - { - setAccountName(event.target.value) - }} - onKeyDown={handleOnKeyDown} - className={classes.field} - InputProps={{ - endAdornment: ( - - handleOnSearch(accountName)} - edge="end" - aria-label="search" - > - - - - ) - }} + + @@ -196,17 +167,18 @@ const Accounts = ({ ual }) => { account={account} abi={abi} hash={hash} + tableName={filters.table} onSubmitAction={handleSubmitAction} tableData={tableData} onGetTableRows={handleGetTableRows} /> )} - +
) } Accounts.propTypes = { - ual: PropTypes.object + ual: PropTypes.object, } export default Accounts diff --git a/webapp/src/routes/BPJson/index.js b/webapp/src/routes/BPJson/index.js index ca32360e..39eac4d7 100644 --- a/webapp/src/routes/BPJson/index.js +++ b/webapp/src/routes/BPJson/index.js @@ -4,7 +4,6 @@ import EosApi from 'eosjs-api' import axios from 'axios' import Card from '@mui/material/Card' import CardContent from '@mui/material/CardContent' -import Grid from '@mui/material/Grid' import LinearProgress from '@mui/material/LinearProgress' import { useTranslation } from 'react-i18next' import Typography from '@mui/material/Typography' @@ -16,7 +15,7 @@ import { eosConfig, ualConfig } from '../../config' const eosApi = EosApi({ httpEndpoint: eosConfig.endpoint, verbose: false, - fetchConfiguration: {} + fetchConfiguration: {}, }) const getBPJsonUrl = async (producer = {}) => { @@ -35,13 +34,13 @@ const getBPJsonUrl = async (producer = {}) => { const chainsUrl = `${producerUrl}/chains.json`.replace( /(?<=:\/\/.*)((\/\/))/, - '/' + '/', ) let chainUrl = '/bp.json' try { const { - data: { chains } + data: { chains }, } = await axios.get(chainsUrl) chainUrl = chains[ualConfig.network.chainId] || chainUrl } catch (error) {} @@ -55,7 +54,7 @@ const getBpJSONOffChain = async (producer) => { if (bpUrl === 'http:///bp.json') return undefined const { data: bpJson } = await axios.get(bpUrl, { - timeout: 5000 + timeout: 5000, }) return bpJson @@ -74,7 +73,7 @@ const getBpJSONChain = async (producer) => { reverse: false, lower_bound: producer, upper_bound: producer, - limit: 1 + limit: 1, }) if (producerjsonRow) return JSON.parse(producerjsonRow[0].json) @@ -104,13 +103,13 @@ const BPJson = ({ ual }) => { branding: { logo_256: '', logo_1024: '', - logo_svg: '' + logo_svg: '', }, location: { name: '', country: '', - latitude: null, - longitude: null + latitude: 0, + longitude: 0, }, social: { keybase: '', @@ -121,10 +120,12 @@ const BPJson = ({ ual }) => { facebook: '', hive: '', reddit: '', - wechat: '' - } + wechat: '', + medium: '', + discord: '', + }, }, - nodes: [] + nodes: [], } const handleOnSubmit = async (payload) => { @@ -141,23 +142,23 @@ const BPJson = ({ ual }) => { authorization: [ { actor: ual.activeUser.accountName, - permission: 'active' - } + permission: 'active', + }, ], data: { owner: ual.activeUser.accountName, - json: payload.bpJson - } - } - ] + json: payload.bpJson, + }, + }, + ], }, { - broadcast: true - } + broadcast: true, + }, ) } catch (error) { setError( - error?.cause?.message || error?.message || 'Unknown error on submit.' + error?.cause?.message || error?.message || 'Unknown error on submit.', ) setTimeout(() => { setError(null) @@ -173,10 +174,10 @@ const BPJson = ({ ual }) => { json: true, limit: 1, lower_bound: ual.activeUser.accountName, - upper_bound: ual.activeUser.accountName + upper_bound: ual.activeUser.accountName, }) const producer = rows.find( - (item) => item.owner === ual.activeUser.accountName + (item) => item.owner === ual.activeUser.accountName, ) if (producer) { @@ -206,34 +207,32 @@ const BPJson = ({ ual }) => { }, [ual.activeUser, t]) return ( - - - - {loading && ( - <> - - {t('loadText')} - - - - )} - {error && {error}} - {inconsistencyMessage && ( - {inconsistencyMessage} - )} - - - - + + + {loading && ( + <> + + {t('loadText')} + + + + )} + {error && {error}} + {inconsistencyMessage && ( + {inconsistencyMessage} + )} + + + ) } BPJson.propTypes = { - ual: PropTypes.object + ual: PropTypes.object, } export default BPJson diff --git a/webapp/src/routes/BlockProducers/index.js b/webapp/src/routes/BlockProducers/index.js index 0d1bf868..c49317cc 100644 --- a/webapp/src/routes/BlockProducers/index.js +++ b/webapp/src/routes/BlockProducers/index.js @@ -1,37 +1,20 @@ /* eslint camelcase: 0 */ -import React, { memo, useEffect, useState } from 'react' -import { useLazyQuery, useSubscription } from '@apollo/client' +import React, { memo } from 'react' import PropTypes from 'prop-types' import { makeStyles } from '@mui/styles' -import Grid from '@mui/material/Grid' import LinearProgress from '@mui/material/LinearProgress' -import Box from '@mui/material/Box' import Pagination from '@mui/material/Pagination' -import { useLocation } from 'react-router-dom' -import queryString from 'query-string' -import { PRODUCERS_QUERY, BLOCK_TRANSACTIONS_HISTORY } from '../../gql' -import ProducerSearch from '../../components/ProducerSearch' +import SearchBar from '../../components/SearchBar' import Tooltip from '../../components/Tooltip' import NodeCard from '../../components/NodeCard' import InformationCard from '../../components/InformationCard' -import { eosConfig } from '../../config' +import useBlockProducerState from '../../hooks/customHooks/useBlockProducerState' +import NoResults from '../../components/NoResults' import styles from './styles' const useStyles = makeStyles(styles) -const CHIPS_FILTERS = [ - { offset: 0, where: null, limit: 28 }, - { - where: { total_rewards: { _neq: 0 }, rank: { _lte: 21 } } - }, - { - where: { total_rewards: { _gte: 100 }, rank: { _gte: 22 } } - }, - { - where: { total_rewards: { _eq: 0 } } - } -] const PaginationWrapper = ({ classes, @@ -39,7 +22,6 @@ const PaginationWrapper = ({ page, onPageChange, loading, - chipFilter }) => { if (loading || !totalPages) return <> @@ -61,120 +43,32 @@ PaginationWrapper.propTypes = { page: PropTypes.number, onPageChange: PropTypes.func, loading: PropTypes.bool, - chipFilter: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) } const Producers = () => { const classes = useStyles() - const [loadProducers, { loading = true, data: { producers, info } = {} }] = - useLazyQuery(PRODUCERS_QUERY) - const { data: dataHistory, loading: loadingHistory } = useSubscription( - BLOCK_TRANSACTIONS_HISTORY - ) - const location = useLocation() - const [pagination, setPagination] = useState({ page: 1, limit: 28 }) - const [totalPages, setTotalPages] = useState(1) - const [current, setCurrent] = useState(null) - const [anchorEl, setAnchorEl] = useState(null) - const [items, setItems] = useState([]) - const [filters, setFilters] = useState({}) - const [chipFilter, setChipFilter] = useState('all') - const [missedBlocks, setMissedBlocks] = useState({}) - - const handlePopoverOpen = (node) => (event) => { - setCurrent(node) - setAnchorEl(event.currentTarget) - } - - const handlePopoverClose = () => { - setAnchorEl(null) - } - - const handleOnSearch = (filters) => { - if (!filters.owner) { - setPagination((prev) => ({ ...prev, page: 1, where: null })) - - return - } - - setPagination((prev) => ({ - ...prev, - page: 1, - where: { owner: { _like: `%${filters.owner}%` } } - })) - } - - const handleOnPageChange = (_, page) => { - setPagination((prev) => ({ - ...prev, - page - })) - } - - useEffect(() => { - loadProducers({ - variables: { - where: pagination.where, - offset: pagination.offset || (pagination.page - 1) * pagination.limit, - limit: pagination.limit - } - }) - - // eslint-disable-next-line - }, [pagination.where, pagination.page, pagination.limit]) - - useEffect(() => { - if (!info) return - - setTotalPages(Math.ceil(info.producers?.count / pagination.limit)) - }, [info, pagination.limit]) - - useEffect(() => { - const params = queryString.parse(location.search) - - if (!params.name) return - - setPagination((prev) => ({ - ...prev, - page: 1, - where: { owner: { _like: `%${params.name}%` } } - })) - - setFilters({ - owner: params.name - }) - }, [location.search]) - - useEffect(() => { - if (eosConfig.networkName === 'lacchain') return - - setPagination((prev) => ({ - ...prev, - page: 1, - ...CHIPS_FILTERS[chipFilter === 'all' ? 0 : chipFilter] - })) - }, [chipFilter]) - - useEffect(() => { - if (!producers?.length) return - - let items = producers || [] - - if (eosConfig.networkName === 'lacchain' && chipFilter !== 'all') { - items = items.filter((producer) => producer.bp_json?.type === chipFilter) - } - - setItems(items) - }, [chipFilter, producers]) - - useEffect(() => { - if (dataHistory?.stats.length) { - setMissedBlocks(dataHistory?.stats[0].missed_blocks) - } - }, [dataHistory, loadingHistory]) + const [ + { + anchorEl, + current, + filters, + chips, + items, + loading, + totalPages, + missedBlocks, + pagination, + }, + { + handlePopoverClose, + handleOnSearch, + handlePopoverOpen, + handleOnPageChange, + }, + ] = useBlockProducerState() return ( - +
{ > - - + - - {loading && } - - {(items || []).map((producer, index) => ( - - - - ))} - +
+ {loading ? ( + + ) : ( +
+ {!!items?.length ? ( + items.map((producer, index) => ( +
+ +
+ )) + ) : ( + + )} +
+ )} -
+
) } diff --git a/webapp/src/routes/BlockProducers/styles.js b/webapp/src/routes/BlockProducers/styles.js index 3929a0ec..31c9c4a8 100644 --- a/webapp/src/routes/BlockProducers/styles.js +++ b/webapp/src/routes/BlockProducers/styles.js @@ -1,14 +1,31 @@ export default (theme) => ({ + container: { + display: 'flex', + flexFlow: 'row wrap', + justifyContent: 'space-between', + }, + card: { + width: '100%', + display: 'flex', + marginRight: theme.spacing(2), + [theme.breakpoints.up('sm')]: { + justifyContent: 'center', + flex: 'content', + }, + [theme.breakpoints.down('sm')]: { + flex: 'auto', + }, + }, searchWrapper: { marginTop: theme.spacing(3), - marginBottom: theme.spacing(3) + marginBottom: theme.spacing(3), }, pagination: { padding: theme.spacing(3), display: 'flex', - justifyContent: 'center' + justifyContent: 'center', }, formControl: { - width: '100%' - } + width: '100%', + }, }) diff --git a/webapp/src/routes/Help/index.js b/webapp/src/routes/Help/index.js index 55b69218..cc1eff3d 100644 --- a/webapp/src/routes/Help/index.js +++ b/webapp/src/routes/Help/index.js @@ -2,8 +2,6 @@ import React from 'react' import Typography from '@mui/material/Typography' import { makeStyles } from '@mui/styles' import { useTranslation } from 'react-i18next' -import Grid from '@mui/material/Grid' -import Box from '@mui/material/Box' import Link from '@mui/material/Link' import HttpIcon from '@mui/icons-material/Http' import TelegramIcon from '@mui/icons-material/Telegram' @@ -20,57 +18,47 @@ const Help = () => { const { t } = useTranslation('helpRoute') return ( - - - - - - - - {t('title')} - - - {t('paragraph')} - + + + + {t('title')} + + + {t('paragraph')} + - - - - {t('githubEOSCR')} - - - - - - - {t('telegramChannel')} - - - - - - - {t('websiteEOSCR')} - - - - - - - - +
+ + + {t('githubEOSCR')} + +
+
+ + + {t('telegramChannel')} + +
+
+ + + {t('websiteEOSCR')} + +
+ + ) } diff --git a/webapp/src/routes/Nodes/index.js b/webapp/src/routes/Nodes/index.js index 874057b2..a5ec332e 100644 --- a/webapp/src/routes/Nodes/index.js +++ b/webapp/src/routes/Nodes/index.js @@ -1,25 +1,24 @@ /* eslint camelcase: 0 */ import React, { lazy, memo, useEffect, useState } from 'react' import PropTypes from 'prop-types' -import { useLazyQuery, useSubscription } from '@apollo/client' +import { useSubscription } from '@apollo/client' import { makeStyles } from '@mui/styles' -import { useLocation } from 'react-router-dom' -import queryString from 'query-string' -import { NODES_QUERY, BLOCK_TRANSACTIONS_HISTORY } from '../../gql' +import { BLOCK_TRANSACTIONS_HISTORY } from '../../gql' import styles from './styles' +import useNodeState from '../../hooks/customHooks/useNodeState' -const Box = lazy(() => import('@mui/material/Box')) -const Grid = lazy(() => import('@mui/material/Grid')) const LinearProgress = lazy(() => import('@mui/material/LinearProgress')) const Pagination = lazy(() => import('@mui/material/Pagination')) -const NodeSearch = lazy(() => import('../../components/NodeSearch')) +const SearchBar = lazy(() => import('../../components/SearchBar')) const InformationCard = lazy(() => import('../../components/InformationCard')) +const NoResults = lazy(() => import('../../components/NoResults')) const useStyles = makeStyles(styles) -const NodesCards = ({ item }) => { +const NodesCards = ({ node, producer }) => { + const classes = useStyles() const { data, loading } = useSubscription(BLOCK_TRANSACTIONS_HISTORY) const [missedBlocks, setMissedBlocks] = useState({}) @@ -29,142 +28,68 @@ const NodesCards = ({ item }) => { } }, [data, loading]) - if (!item.bp_json?.nodes) { - return ( - - - - ) - } - return ( - <> - {(item.bp_json?.nodes || []).map((node, index) => ( - - - - ))} - +
+ +
) } NodesCards.propTypes = { - item: PropTypes.object + item: PropTypes.object, } const Nodes = () => { - const [loadProducers, { loading = true, data: { producers, info } = {} }] = - useLazyQuery(NODES_QUERY) - const location = useLocation() - const [filters, setFilters] = useState({ nodeType: 'all' }) - const [pagination, setPagination] = useState({ page: 1, pages: 1, limit: 28 }) - const [items, setItems] = useState([]) const classes = useStyles() - - const handleOnFiltersChange = (newFilters) => { - if (!newFilters.owner && filters.owner) { - setPagination((prev) => ({ ...prev, page: 1, where: null })) - } - - if (newFilters.owner) { - setPagination((prev) => ({ - ...prev, - page: 1, - where: { owner: { _like: `%${newFilters.owner}%` } } - })) - } - - setFilters(newFilters) - } - - const handleOnPageChange = (_, page) => { - setPagination((prev) => ({ - ...prev, - page - })) - } - - useEffect(() => { - loadProducers({ - variables: { - where: pagination.where, - offset: (pagination.page - 1) * pagination.limit, - limit: pagination.limit - } - }) - // eslint-disable-next-line - }, [pagination.where, pagination.page, pagination.limit]) - - useEffect(() => { - if (!info) return - - setPagination((prev) => ({ - ...prev, - pages: Math.ceil(info.producers?.count / pagination.limit) - })) - }, [info, pagination.limit]) - - useEffect(() => { - const params = queryString.parse(location.search) - - if (!params.owner) return - - setPagination((prev) => ({ - ...prev, - page: 1, - where: { owner: { _like: `%${params.owner}%` } } - })) - - setFilters((prev) => ({ ...prev, owner: params.owner })) - }, [location.search]) - - useEffect(() => { - if (!producers?.length) return - - let items = producers || [] - - if (filters.nodeType !== 'all') { - items = items.map((producer) => { - const nodes = (producer.bp_json?.nodes || []).filter( - (node) => node.node_type === filters.nodeType - ) - - return { - ...producer, - bp_json: { - ...producer.bp_json, - nodes - } - } - }) - } - - setItems(items) - }, [filters, producers]) + const [ + { filters, chips, loading, items, pagination }, + { handleOnSearch, handleOnPageChange }, + ] = useNodeState() return ( - - - {loading && } - - {items.map((producer) => ( - - ))} - - {!loading && pagination.pages > 1 && ( - +
+ + {loading ? ( + + ) : ( + <> +
+ {!!items?.length ? ( + items.map(({ node, producer }, index) => ( + + )) + ) : ( + + )} +
+ {pagination.pages > 0 && ( + + )} + )} - +
) } diff --git a/webapp/src/routes/Nodes/styles.js b/webapp/src/routes/Nodes/styles.js index ef31beb6..4a529554 100644 --- a/webapp/src/routes/Nodes/styles.js +++ b/webapp/src/routes/Nodes/styles.js @@ -1,7 +1,25 @@ export default (theme) => ({ + container: { + display: 'flex', + flexFlow: 'row wrap', + justifyContent: 'space-between', + paddingTop: theme.spacing(2), + }, + card: { + width: '100%', + display: 'flex', + marginRight: theme.spacing(2), + [theme.breakpoints.up('sm')]: { + justifyContent: 'center', + flex: 'content', + }, + [theme.breakpoints.down('sm')]: { + flex: 'auto', + }, + }, pagination: { padding: theme.spacing(3), display: 'flex', - justifyContent: 'center' - } + justifyContent: 'center', + }, }) diff --git a/webapp/src/routes/NodesDistribution/index.js b/webapp/src/routes/NodesDistribution/index.js index 1d40c842..56906abd 100644 --- a/webapp/src/routes/NodesDistribution/index.js +++ b/webapp/src/routes/NodesDistribution/index.js @@ -1,121 +1,26 @@ /* eslint camelcase: 0 */ -import React, { useEffect, useState, lazy } from 'react' -import { useLazyQuery } from '@apollo/client' +import React, { lazy } from 'react' import LinearProgress from '@mui/material/LinearProgress' -import Box from '@mui/material/Box' -import { ALL_NODES_QUERY } from '../../gql' +import useNodeDistributionState from '../../hooks/customHooks/useNodeDistributionState' -const NodeSearch = lazy(() => import('../../components/NodeSearch')) +const SearchBar = lazy(() => import('../../components/SearchBar')) const GeoMap = lazy(() => import('../../components/GeoMap')) const Nodes = () => { - const [loadProducers, { loading = true, data: { producers } = {} }] = - useLazyQuery(ALL_NODES_QUERY) - const [nodes, setNodes] = useState([]) - const [filters, setFilters] = useState({ nodeType: 'all' }) - const [allNodes, setAllNodes] = useState([]) - - const handleOnFiltersChange = (newFilters) => { - setFilters(newFilters) - } - - useEffect(() => { - loadProducers({ - variables: { - where: {} - } - }) - // eslint-disable-next-line - }, []) - - useEffect(() => { - if (!producers?.length) { - return - } - - const items = [] - producers.forEach((producer) => { - if (!producer?.bp_json?.nodes) { - return - } - - producer.bp_json.nodes.forEach((node) => { - if (!node?.location?.latitude || !node?.location?.longitude) return - - items.push({ - node, - producer, - country: node?.location?.country || '', - type: node.node_type, - lat: parseFloat(node.location.latitude), - lon: parseFloat(node.location.longitude), - name: producer.owner - }) - }) - }) - - const sortedItems = items - .sort((a, b) => - a.country > b.country ? 1 : b.country > a.country ? -1 : 0 - ) - .reduce( - (prev, current) => { - if (!prev.pibot) { - return { - ...prev, - pibot: current, - result: [...prev.result, current] - } - } - - if ( - prev.pibot.lat === current.lat && - prev.pibot.lon === current.lon - ) { - const newLat = current.lat + prev.increase - - return { - ...prev, - increase: prev.increase + 0.1, - result: [...prev.result, { ...current, lat: newLat }] - } - } - - return { - increase: 0.1, - pibot: current, - result: [...prev.result, current] - } - }, - { pibot: {}, result: [], increase: 0.1 } - ) - - setAllNodes(sortedItems.result || []) - }, [producers]) - - useEffect(() => { - let items = allNodes - - if (filters.nodeType !== 'all') { - items = items.filter( - (current) => current.node.node_type === filters.nodeType - ) - } - - setNodes(items) - }, [allNodes, filters]) + const [{ filters, chips, nodes, loading }, { handleOnFiltersChange }] = useNodeDistributionState() return ( - - + {loading && } {!loading && } - +
) } diff --git a/webapp/src/routes/index.js b/webapp/src/routes/index.js index ef34d4ac..96f56eab 100644 --- a/webapp/src/routes/index.js +++ b/webapp/src/routes/index.js @@ -8,9 +8,6 @@ import { User as UserIcon, Info as InfoIcon, HelpCircle as HelpIcon, - GitMerge as GitMergeIcon, - GitHub as GitHubIcon, - Send as TelegramIcon, Inbox as InboxIcon, Cpu as CpuIcon } from 'react-feather' @@ -49,6 +46,7 @@ const LacchainNodeConfig = lazy(() => import('./Lacchain/LacchainNodeConfig')) const defaultRoutes = [ { + header: 'networkInformation', name: 'home', icon: , component: Home, @@ -254,24 +252,6 @@ const helpRoutes = [ path: '/help', exact: true }, - { - name: 'changelog', - badge: generalConfig.appVersion.split('-').pop(), - path: 'https://github.com/eoscostarica/eosio-dashboard/releases', - icon: , - exact: true - }, - { - header: 'community', - name: 'github', - path: 'https://github.com/eoscostarica/eosio-dashboard', - icon: - }, - { - name: 'telegram', - path: 'https://t.me/eoscr', - icon: - }, { component: Page404 } @@ -295,4 +275,4 @@ routes = routes.filter( (route) => !generalConfig.disabledMenuItems.includes(route.path) ) -export default routes +export default routes \ No newline at end of file diff --git a/webapp/src/theme/index.js b/webapp/src/theme/index.js index a593375b..095ca23d 100644 --- a/webapp/src/theme/index.js +++ b/webapp/src/theme/index.js @@ -1,32 +1,32 @@ -import { createTheme } from '@mui/material/styles' - -import variants from './variants' -import typography from './typography' -import overrides from './overrides' -import breakpoints from './breakpoints' -import props from './props' -import shadows from './shadows' - -const theme = (variant) => { - return createTheme( - { - spacing: 4, - breakpoints: breakpoints, - overrides: overrides, - props: props, - typography: typography, - shadows: shadows, - palette: variant.palette - }, - { - name: variant.name, - body: variant.body, - header: variant.header, - sidebar: variant.sidebar - } - ) -} - -const themes = variants.map((variant) => theme(variant)) - -export default themes +import { createTheme } from '@mui/material/styles' + +import variants from './variants' +import typography from './typography' +import overrides from './overrides' +import breakpoints from './breakpoints' +import props from './props' +import shadows from './shadows' + +const theme = (variant) => { + return createTheme( + { + spacing: 4, + breakpoints, + overrides, + props, + typography, + shadows, + palette: variant.palette + }, + { + name: variant.name, + body: variant.body, + header: variant.header, + sidebar: variant.sidebar + } + ) +} + +const themes = variants.map((variant) => theme(variant)) + +export default themes diff --git a/webapp/src/utils/formatData.js b/webapp/src/utils/formatData.js index f7986d0b..a12a67bb 100644 --- a/webapp/src/utils/formatData.js +++ b/webapp/src/utils/formatData.js @@ -4,6 +4,8 @@ import moment from 'moment' import { eosConfig } from '../config' +import isLogoValid from './validate-image' + export const formatData = ( { data, @@ -13,13 +15,12 @@ export const formatData = ( missedBlocks = [], nodes, healthStatus, - endpoints, dataType, node, - totalRewards + totalRewards, }, type, - t + t, ) => { let newData = { title: '', @@ -29,7 +30,7 @@ export const formatData = ( nodes: [], healthStatus: [], social: {}, - endpoints: {} + endpoints: {}, } const getSubTitle = () => { @@ -53,6 +54,10 @@ export const formatData = ( return missedBlocks[owner] || 0 } + if (!data?.social?.github && typeof data?.github_user === 'string') { + data.social.github = data.github_user + } + switch (type) { case 'entity': if (eosConfig.networkName === 'lacchain') { @@ -64,9 +69,11 @@ export const formatData = ( newData = { ...newData, media: { - logo: data.branding?.logo_256 || null, + logo: isLogoValid(data.branding?.logo_256) + ? data.branding?.logo_256 + : null, name: data.candidate_name || data.organization_name || owner, - account: getSubTitle() + account: getSubTitle(), }, info: { location: data.location?.name || 'N/A', @@ -77,17 +84,17 @@ export const formatData = ( bussinesContact: data.bussines_contact || null, technicalContact: data.technical_contact || null, chain: data?.chain_resources || null, - otherResources: data?.other_resources || [] + otherResources: data?.other_resources || [], }, stats: { votes: 'N/A', rewards: 0, lastChecked: moment(new Date()).diff(moment(updatedAt), 'seconds'), - missedBlocks: getEntitiesMissedBlocks() + missedBlocks: getEntitiesMissedBlocks(), }, nodes, healthStatus, - social: data.social + social: data.social, } break @@ -98,17 +105,17 @@ export const formatData = ( media: { logo: data.branding?.logo_256 || null, name: node?.name, - account: node?.node_type || null + account: node?.node_type || null, }, info: { version: node?.server_version_string || null, features: node?.features || [], - keys: node?.keys || null + keys: node?.keys || null, }, stats: { lastChecked: moment(new Date()).diff(moment(updatedAt), 'seconds'), missedBlocks: - node?.node_type === 'validator' ? missedBlocks[node?.name] : 0 + node?.node_type === 'validator' ? missedBlocks[node?.name] : 0, }, nodes: [], healthStatus: node?.health_status, @@ -116,8 +123,8 @@ export const formatData = ( endpoints: { p2p: node.p2p_endpoint, api: node.api_endpoint, - ssl: node.ssl_endpoint - } + ssl: node.ssl_endpoint, + }, } break diff --git a/webapp/src/utils/index.js b/webapp/src/utils/index.js index 5ef41026..3b626127 100644 --- a/webapp/src/utils/index.js +++ b/webapp/src/utils/index.js @@ -5,3 +5,4 @@ export * from './formatData' export * from './get-blocknum-url' export * from './get-range-options' export * from './get-transaction-url' +export * from './validate-image' diff --git a/webapp/src/utils/validate-image.js b/webapp/src/utils/validate-image.js new file mode 100644 index 00000000..acdd2815 --- /dev/null +++ b/webapp/src/utils/validate-image.js @@ -0,0 +1,9 @@ +const isLogoValid = (imgUrl) => { + const img = new Image() + + img.src = imgUrl + + return img.width >= 100 && img.height >= 100 +} + +export default isLogoValid diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 0b89a68a..4ecee7d4 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@adobe/css-tools@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" + integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== + "@ampproject/remapping@^2.1.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -35,17 +40,17 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.9.0": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.9.0": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" + integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== "@babel/core@7.6.0": version "7.6.0" @@ -90,32 +95,41 @@ source-map "^0.5.0" "@babel/core@^7.1.0", "@babel/core@^7.4.5": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59" - integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" + integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.9" + "@babel/generator" "^7.18.13" "@babel/helper-compilation-targets" "^7.18.9" "@babel/helper-module-transforms" "^7.18.9" "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.9" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/parser" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.13" + "@babel/types" "^7.18.13" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.9", "@babel/generator@^7.4.0", "@babel/generator@^7.6.0", "@babel/generator@^7.9.0": +"@babel/eslint-parser@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" - integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz#255a63796819a97b7578751bb08ab9f2a375a031" + integrity sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ== dependencies: - "@babel/types" "^7.18.9" + eslint-scope "^5.1.1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.18.13", "@babel/generator@^7.4.0", "@babel/generator@^7.6.0", "@babel/generator@^7.9.0": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" + integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== + dependencies: + "@babel/types" "^7.18.13" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -134,7 +148,7 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.8.7": +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.8.7": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== @@ -144,10 +158,10 @@ browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.8.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" - integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9", "@babel/helper-create-class-features-plugin@^7.8.3": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz#63e771187bd06d234f95fdf8bd5f8b6429de6298" + integrity sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -165,21 +179,19 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6", "@babel/helper-environment-visitor@^7.18.9": +"@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== @@ -213,7 +225,7 @@ dependencies: "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== @@ -241,12 +253,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== -"@babel/helper-remap-async-to-generator@^7.18.6": +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -288,6 +300,11 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" @@ -299,14 +316,14 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.9.tgz#ae1feddc6ebbaa2fd79346b77821c3bd73a39646" - integrity sha512-cG2ru3TRAL6a60tfQflpEfs4ldiPwF6YW3zfJiRgmoFVIaC1vGnBBgatfec+ZUziPHkHSaXAuEck3Cdkf3eRpQ== + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" + integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== dependencies: "@babel/helper-function-name" "^7.18.9" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.11" + "@babel/types" "^7.18.10" "@babel/helpers@^7.18.9", "@babel/helpers@^7.6.0", "@babel/helpers@^7.9.0": version "7.18.9" @@ -326,10 +343,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" - integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== +"@babel/parser@^7.1.0", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" + integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -347,14 +364,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-proposal-optional-chaining" "^7.18.9" -"@babel/plugin-proposal-async-generator-functions@^7.18.6", "@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" - integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== +"@babel/plugin-proposal-async-generator-functions@^7.18.10", "@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@7.8.3": @@ -580,7 +597,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.18.6": +"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== @@ -702,9 +719,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.18.9", "@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.8.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" - integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -845,9 +862,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-constant-elements@^7.0.0": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.9.tgz#ff6aeedd38f57ba6b41dcf824fcc8bcedb3e783f" - integrity sha512-IrTYh1I3YCEL1trjknnlLKTp5JggjzhKl/d3ibzPc97JhpFcDTr38Jdek/oX4cFbS6By0bXJcOkpRvJ5ZHK2wQ== + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" + integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -887,15 +904,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.18.6", "@babel/plugin-transform-react-jsx@^7.9.1": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff" - integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" + integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.10" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -967,20 +984,20 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.9.0": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz#303feb7a920e650f2213ef37b36bbf327e6fa5a0" - integrity sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA== + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz#712e9a71b9e00fde9f8c0238e0cceee86ab2f8fd" + integrity sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-typescript" "^7.18.6" -"@babel/plugin-transform-unicode-escapes@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" - integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-regex@^7.18.6", "@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.8.3": version "7.18.6" @@ -1112,9 +1129,9 @@ semver "^5.5.0" "@babel/preset-env@^7.4.5": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.9.tgz#9b3425140d724fbe590322017466580844c7eaff" - integrity sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: "@babel/compat-data" "^7.18.8" "@babel/helper-compilation-targets" "^7.18.9" @@ -1122,7 +1139,7 @@ "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.18.6" + "@babel/plugin-proposal-async-generator-functions" "^7.18.10" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" @@ -1182,13 +1199,13 @@ "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.6" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.9" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" + "@babel/types" "^7.18.10" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" core-js-compat "^3.22.1" semver "^6.3.0" @@ -1226,7 +1243,7 @@ "@babel/plugin-transform-react-jsx-self" "^7.9.0" "@babel/plugin-transform-react-jsx-source" "^7.9.0" -"@babel/preset-react@^7.0.0": +"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -1246,7 +1263,15 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-typescript" "^7.9.0" -"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.12.1": +"@babel/runtime-corejs3@^7.10.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz#0df75cb8e5ecba3ca9e658898694e5326d52397f" + integrity sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + +"@babel/runtime-corejs3@^7.12.1": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae" integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A== @@ -1268,43 +1293,51 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.2", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.18.6", "@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.8.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.8.6": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.9", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" - integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" + integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.9" + "@babel/generator" "^7.18.13" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.18.9" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/parser" "^7.18.13" + "@babel/types" "^7.18.13" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.7.0", "@babel/types@^7.9.0": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" - integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.7.0", "@babel/types@^7.9.0": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" + integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== dependencies: + "@babel/helper-string-parser" "^7.18.10" "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" @@ -1327,48 +1360,48 @@ integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== "@date-io/core@^2.10.6": - version "2.14.0" - resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.14.0.tgz#03e9b9b9fc8e4d561c32dd324df0f3ccd967ef14" - integrity sha512-qFN64hiFjmlDHJhu+9xMkdfDG2jLsggNxKXglnekUpXSq8faiqZgtHm2lsHCUuaPDTV6wuXHcCl8J1GQ5wLmPw== + version "2.15.0" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.15.0.tgz#8133860c8ce163b8d0cca3c1caed8d5d1fbfb14e" + integrity sha512-3CRvQUEK7aF87NUOwcTtmJ2Rc1kN0D4jFQUfRoanuAnE4o5HzHx4E2YenjaKjSPWeZYiWG6ZhDomx5hp1AaCJA== "@dvsl/zoomcharts@^1.19.0-1": version "1.19.0-1" resolved "https://registry.yarnpkg.com/@dvsl/zoomcharts/-/zoomcharts-1.19.0-1.tgz#c6211d218accd6f8209760c02293567b707488c8" integrity sha512-RVQZJQC1bwL79GLPlzP5EUAfyrqGnpON8tr6ythxp+TH8jY3AqU/Cwkfhqyf2AZE4jJr5Zvpe8ksT/drMO/+Jw== -"@emotion/babel-plugin@^11.7.1": - version "11.9.2" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95" - integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/runtime" "^7.13.10" - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.5" - "@emotion/serialize" "^1.0.2" - babel-plugin-macros "^2.6.1" +"@emotion/babel-plugin@^11.10.0": + version "11.10.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7" + integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.17.12" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.0" + babel-plugin-macros "^3.1.0" convert-source-map "^1.5.0" escape-string-regexp "^4.0.0" find-root "^1.1.0" source-map "^0.5.7" stylis "4.0.13" -"@emotion/cache@^11.9.3": - version "11.9.3" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.9.3.tgz#96638449f6929fd18062cfe04d79b29b44c0d6cb" - integrity sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg== +"@emotion/cache@^11.10.0", "@emotion/cache@^11.10.3": + version "11.10.3" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87" + integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ== dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.1.1" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" + "@emotion/memoize" "^0.8.0" + "@emotion/sheet" "^1.2.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" stylis "4.0.13" -"@emotion/hash@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" - integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== +"@emotion/hash@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" + integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== "@emotion/is-prop-valid@^0.8.1": version "0.8.8" @@ -1377,87 +1410,99 @@ dependencies: "@emotion/memoize" "0.7.4" -"@emotion/is-prop-valid@^1.1.0", "@emotion/is-prop-valid@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz#f0907a416368cf8df9e410117068e20fe87c0a3a" - integrity sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA== +"@emotion/is-prop-valid@^1.1.0", "@emotion/is-prop-valid@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== dependencies: - "@emotion/memoize" "^0.7.4" + "@emotion/memoize" "^0.8.0" "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" - integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== "@emotion/react@^11.9.3": - version "11.9.3" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.3.tgz#f4f4f34444f6654a2e550f5dab4f2d360c101df9" - integrity sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.7.1" - "@emotion/cache" "^11.9.3" - "@emotion/serialize" "^1.0.4" - "@emotion/utils" "^1.1.0" - "@emotion/weak-memoize" "^0.2.5" + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.4.tgz#9dc6bccbda5d70ff68fdb204746c0e8b13a79199" + integrity sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/cache" "^11.10.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.4.tgz#ff31fd11bb07999611199c2229e152faadc21a3c" - integrity sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg== +"@emotion/serialize@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8" + integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA== dependencies: - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.4" - "@emotion/unitless" "^0.7.5" - "@emotion/utils" "^1.0.0" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/unitless" "^0.8.0" + "@emotion/utils" "^1.2.0" csstype "^3.0.2" -"@emotion/sheet@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.1.tgz#015756e2a9a3c7c5f11d8ec22966a8dbfbfac787" - integrity sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA== +"@emotion/sheet@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5" + integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w== "@emotion/styled@^11.9.3": - version "11.9.3" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.9.3.tgz#47f0c71137fec7c57035bf3659b52fb536792340" - integrity sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA== + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.4.tgz#e93f84a4d54003c2acbde178c3f97b421fce1cd4" + integrity sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ== dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.7.1" - "@emotion/is-prop-valid" "^1.1.3" - "@emotion/serialize" "^1.0.4" - "@emotion/utils" "^1.1.0" + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/is-prop-valid" "^1.2.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" "@emotion/stylis@^0.8.4": version "0.8.5" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== -"@emotion/unitless@^0.7.0", "@emotion/unitless@^0.7.4", "@emotion/unitless@^0.7.5": +"@emotion/unitless@^0.7.0", "@emotion/unitless@^0.7.4": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" - integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ== +"@emotion/unitless@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" + integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== -"@emotion/weak-memoize@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" - integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== -"@eoscostarica/eoscr-components@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@eoscostarica/eoscr-components/-/eoscr-components-4.0.2.tgz#e2e7286fb6d2c5b0385139414592217f34d37353" - integrity sha512-Ka14gZQDMK/HotIWraE+a9zqrUkP/K/3/JT9I2MnhV3rBH6fy7eq24OWZ3UuXoeaxooeSrttPBT+49MbSH4rQA== +"@emotion/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" + integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== + +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== + +"@eoscostarica/eoscr-components@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@eoscostarica/eoscr-components/-/eoscr-components-4.0.5.tgz#39d1a1b81382da0f8ab4b567a1c0e1299821ca44" + integrity sha512-gnHET5Lc5guvREzJEBnaxP+1l63bR/09G26kXu9TwBCihqmFulNaYMZ4PktyvecRtLs8MO34XZQBaOeiYIJmWw== dependencies: "@babel/polyfill" "^7.12.1" "@emotion/react" "^11.9.3" @@ -1478,9 +1523,11 @@ react-file-download "^0.3.5" react-google-recaptcha "^2.1.0" react-identicons "^1.2.5" + react-image-file-resizer "^0.4.8" react-json-view "^1.21.3" react-virtualized "^9.22.3" sha256 "^0.2.0" + validator "^13.7.0" web-vitals "^1.0.1" optionalDependencies: "@types/node" "*" @@ -1508,9 +1555,9 @@ integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== "@greymass/eosio@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.6.1.tgz#2af601b6f38a37cb3c78b62d80fd293b80814f62" - integrity sha512-K9VmejZmXHczuLBdQzEQayzISEG/s1PQ9awNf3nMeiVOnmjC5jnw/qNatY1PDpVhXsu+FcW59EAoCEWpuKnrfA== + version "0.6.3" + resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.6.3.tgz#06d4d7979b4c538928c5cb6baba096ef26998f19" + integrity sha512-zzY1Wvcr15Q1UroomDJzeFz2MDo90TfY3BaEyZVrqDpWUrTY6mBqblGg/8jmzpSIOvjyTkClifdc2pZTZQdFCw== dependencies: bn.js "^4.11.9" brorand "^1.1.0" @@ -1610,6 +1657,13 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" +"@jest/expect-utils@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" + integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== + dependencies: + jest-get-type "^29.0.0" + "@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" @@ -1646,10 +1700,10 @@ source-map "^0.6.0" string-length "^2.0.0" -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== dependencies: "@sinclair/typebox" "^0.24.1" @@ -1723,6 +1777,18 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" + integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -1756,9 +1822,9 @@ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1817,124 +1883,130 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@mui/base@5.0.0-alpha.90": - version "5.0.0-alpha.90" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.90.tgz#73700ba74e5c75096ee5d0bfe3ba4a3b3b81beef" - integrity sha512-hNKwzr+RkiuGsGrakz8Q2i5ezr4Dz4b4Qsdipt9SiMrhuFAra/i501VSaEIzwec9LC4G+vtW4fE7yJBB0XaAYw== +"@mui/base@5.0.0-alpha.95": + version "5.0.0-alpha.95" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.95.tgz#eac88ddb6ded633a73cd3c19638241f0f9fa274f" + integrity sha512-fcxnDeO7rBwzP0buVdI5fn0aA7NQ/AeUV5RzIIH0kOXVVT21HB4JFf41Qhwd0PIq63PXxmc6Fs2mdlzMYuPo9g== dependencies: - "@babel/runtime" "^7.17.2" - "@emotion/is-prop-valid" "^1.1.3" - "@mui/types" "^7.1.4" - "@mui/utils" "^5.9.1" - "@popperjs/core" "^2.11.5" + "@babel/runtime" "^7.18.9" + "@emotion/is-prop-valid" "^1.2.0" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + "@popperjs/core" "^2.11.6" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" +"@mui/core-downloads-tracker@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.3.tgz#e17a3cd87c7814ff35592284b19ae39ad52b85ac" + integrity sha512-mX2S0d1oboKBbWQqWIgRmyALAEzh37yiknpD3mKx8bcoMKbp1VtqzIt0aeHP16Uhsd0eValDFILxLNHWi0oddQ== + "@mui/icons-material@^5.8.4": - version "5.8.4" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.8.4.tgz#3f2907c9f8f5ce4d754cb8fb4b68b5a1abf4d095" - integrity sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA== + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.3.tgz#33bd1d973c4727ab55d02928fc8973b7f16fff55" + integrity sha512-o0kbUlsWCBtCE0wP33cGKbyryCh7kpm2EECYMPDmWrLhbA+HUODXIdhiTFS26szp2xXo9HY1lEx0ufeJ+tddYw== dependencies: - "@babel/runtime" "^7.17.2" + "@babel/runtime" "^7.18.9" "@mui/lab@^5.0.0-alpha.90": - version "5.0.0-alpha.91" - resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.91.tgz#7884d5d921425f4717d1ddadb1749aada5d64165" - integrity sha512-46qnSPlK39hz5rtMjxHIkCeRzU+7/I27AyEI5mxtCCr2q4r4nC6IV2+2BhyM/FU09+v9tV5rByLZTkEmjy3dQQ== - dependencies: - "@babel/runtime" "^7.17.2" - "@mui/base" "5.0.0-alpha.90" - "@mui/system" "^5.9.1" - "@mui/utils" "^5.9.1" + version "5.0.0-alpha.97" + resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.97.tgz#00bc8588c6a0b706830bdfa93d2b7355eff67f77" + integrity sha512-0qIyXcNJg2PftzUjO5nsa9D2LEiyfA+Zg7EpJMZNtkjCTGjJmqw4cp2nJIFlZDzoFb8DsjhlFl3BWAAZqRRgTw== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/base" "5.0.0-alpha.95" + "@mui/system" "^5.10.3" + "@mui/utils" "^5.10.3" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" "@mui/material@^5.9.0": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.9.1.tgz#92990e6d4035792430dcf548b91db6f335aebdd3" - integrity sha512-c09SbaMm7Rl7Df9JRkXwPWNbnfrutmHERTJC46OJ9OMAM9+HGQihIbGln1k2Xj65jb3E+G498FZFAoSrrBDvwQ== - dependencies: - "@babel/runtime" "^7.17.2" - "@mui/base" "5.0.0-alpha.90" - "@mui/system" "^5.9.1" - "@mui/types" "^7.1.4" - "@mui/utils" "^5.9.1" + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.3.tgz#5497128ea7c8de1d40ba9bd95437d46d441fa1d1" + integrity sha512-g0lzHcqWHYeOEAxTzcwpM1I7b+wyiRTeXkEdRsspnOpZtb0H/1xg386tMFRGbxBJ4zfVGT+TWublofw7pyQkqw== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/base" "5.0.0-alpha.95" + "@mui/core-downloads-tracker" "^5.10.3" + "@mui/system" "^5.10.3" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" "@types/react-transition-group" "^4.4.5" clsx "^1.2.1" csstype "^3.1.0" prop-types "^15.8.1" react-is "^18.2.0" - react-transition-group "^4.4.2" + react-transition-group "^4.4.5" -"@mui/private-theming@^5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.9.1.tgz#4f714ed9ebd587373dc77b3fc69e9f3e720f0190" - integrity sha512-eIh2IZJInNTdgPLMo9cruzm8UDX5amBBxxsSoNre7lRj3wcsu3TG5OKjIbzkf4VxHHEhdPeNNQyt92k7L78u2A== +"@mui/private-theming@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.3.tgz#7325eef3e480caaaa2d866b9057943ec4fbcb8ce" + integrity sha512-LCYIKlkGz2BTSng2BFzzwSJBRZbChIUri2x2Nh8ryk2B1Ho7zpvE7ex6y39LlStG2Frf92NFC/V4YQbmMAjD5A== dependencies: - "@babel/runtime" "^7.17.2" - "@mui/utils" "^5.9.1" + "@babel/runtime" "^7.18.9" + "@mui/utils" "^5.10.3" prop-types "^15.8.1" -"@mui/styled-engine@^5.8.7": - version "5.8.7" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.8.7.tgz#63d0779c07677fe76d4705a02c7ae99f89b50780" - integrity sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg== +"@mui/styled-engine@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.3.tgz#c3e061548951568936b749a58531fb269af48948" + integrity sha512-9Uz7eB8xXoiDvpJ9qBxZ/2xGO8xKfA2T23dw4AsQ69SQtGatrOLAapzP2lNr0tfB9xvKucclPFhRO5aLhDFOVQ== dependencies: - "@babel/runtime" "^7.17.2" - "@emotion/cache" "^11.9.3" + "@babel/runtime" "^7.18.9" + "@emotion/cache" "^11.10.3" csstype "^3.1.0" prop-types "^15.8.1" "@mui/styles@^5.9.0": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.9.1.tgz#6147922e85d69f31bbf4de18831e10fe897bf1bd" - integrity sha512-E7HaRqEBYsXJIik8OUt/AZEjHKzcDn4tfscJYjiIsTVMgEwYeV+Ji17SJlSbzvR40zG4oRVDymMiOcmfupfGZg== - dependencies: - "@babel/runtime" "^7.17.2" - "@emotion/hash" "^0.8.0" - "@mui/private-theming" "^5.9.1" - "@mui/types" "^7.1.4" - "@mui/utils" "^5.9.1" + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.10.3.tgz#47d3016bcad0df5989a6a6fd3496dbaeee792f07" + integrity sha512-I9BYAKENJ6Ot+UEqsU+D2o5jVSeHAme+ZcPzBataTNmpjd7yrmdPeJgAyzju21KtSucBb283gvggcFqxLH1lOQ== + dependencies: + "@babel/runtime" "^7.18.9" + "@emotion/hash" "^0.9.0" + "@mui/private-theming" "^5.10.3" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" clsx "^1.2.1" csstype "^3.1.0" hoist-non-react-statics "^3.3.2" - jss "^10.8.2" - jss-plugin-camel-case "^10.8.2" - jss-plugin-default-unit "^10.8.2" - jss-plugin-global "^10.8.2" - jss-plugin-nested "^10.8.2" - jss-plugin-props-sort "^10.8.2" - jss-plugin-rule-value-function "^10.8.2" - jss-plugin-vendor-prefixer "^10.8.2" + jss "^10.9.2" + jss-plugin-camel-case "^10.9.2" + jss-plugin-default-unit "^10.9.2" + jss-plugin-global "^10.9.2" + jss-plugin-nested "^10.9.2" + jss-plugin-props-sort "^10.9.2" + jss-plugin-rule-value-function "^10.9.2" + jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.9.1.tgz#dadd1094b1582781cc524b112a0a126f60b23c25" - integrity sha512-ZixTmc2+sYp++avoYJ38eM70nfwwudN06vYCU4kfwa4nQPiH+bhLYZnfYkcXRKiDR/hfT0dptbOOfQGZqBYczQ== +"@mui/system@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.3.tgz#26f82e506af506f4fddde265c20e1100baaca03e" + integrity sha512-uLW/CIz3zk1jr5zH0ahOUqJIrpWP02Mv4emfrplh7Mh5JCb/oumhYaC/ALJJEjzUHKg9wwiyuM0pCwK/kSf1jQ== dependencies: - "@babel/runtime" "^7.17.2" - "@mui/private-theming" "^5.9.1" - "@mui/styled-engine" "^5.8.7" - "@mui/types" "^7.1.4" - "@mui/utils" "^5.9.1" + "@babel/runtime" "^7.18.9" + "@mui/private-theming" "^5.10.3" + "@mui/styled-engine" "^5.10.3" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" clsx "^1.2.1" csstype "^3.1.0" prop-types "^15.8.1" -"@mui/types@^7.1.4": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.4.tgz#4185c05d6df63ec673cda15feab80440abadc764" - integrity sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ== +"@mui/types@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.0.tgz#91380c2d42420f51f404120f7a9270eadd6f5c23" + integrity sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA== -"@mui/utils@^5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.9.1.tgz#2b2c9dadbf8ba6561e145b5688fb7df5ef15a934" - integrity sha512-8+4adOR3xusyJwvbnZxcjqcmbWvl7Og+260ZKIrSvwnFs0aLubL+8MhiceeDDGcmb0bTKxfUgRJ96j32Jb7P+A== +"@mui/utils@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.3.tgz#ce2a96f31de2a5e717f507b5383dbabbddbc4dfc" + integrity sha512-4jXMDPfx6bpMVuheLaOpKTjpzw39ogAZLeaLj5+RJec3E37/hAZMYjURfblLfTWMMoGoqkY03mNsZaEwNobBow== dependencies: - "@babel/runtime" "^7.17.2" + "@babel/runtime" "^7.18.9" "@types/prop-types" "^15.7.5" "@types/react-is" "^16.7.1 || ^17.0.0" prop-types "^15.8.1" @@ -1945,10 +2017,10 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@popperjs/core@^2.11.5": - version "2.11.5" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" - integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== +"@popperjs/core@^2.11.6": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== "@react-icons/all-files@^4.1.0": version "4.1.0" @@ -2004,9 +2076,9 @@ integrity sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw== "@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + version "0.24.40" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.40.tgz#00ee9b48537b147f6ffc80ebc28ab16d6016ed5c" + integrity sha512-Xint60L8rF0+nRy+6fCjW9jQMmu7fTpbwTBrXZiK6eq/RHDJS7LvWX/0oXC8O7fCePmrY/XdfaTv2HiUDeCq4g== "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" @@ -2126,15 +2198,15 @@ pretty-format "^26.6.2" "@testing-library/jest-dom@^5.11.4": - version "5.16.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz#938302d7b8b483963a3ae821f1c0808f872245cd" - integrity sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA== + version "5.16.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" + integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== dependencies: + "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" - css "^3.0.0" css.escape "^1.5.1" dom-accessibility-api "^0.5.6" lodash "^4.17.15" @@ -2187,16 +2259,16 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" + integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== dependencies: "@babel/types" "^7.3.0" "@types/bn.js@*": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== dependencies: "@types/node" "*" @@ -2256,12 +2328,12 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "28.1.6" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.6.tgz#d6a9cdd38967d2d746861fb5be6b120e38284dd4" - integrity sha512-0RbGAFMfcBJKOmqRazM8L98uokwuwD5F8rHrv/ZMbrZBwVOWZUyPG6VFNscjYr/vjM3Vu4fRrCPbOs42AfemaQ== + version "29.0.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.1.tgz#b5610ae1a1c5f6e0f6beb132941722da7c493c28" + integrity sha512-CAZrjLRZs4xEdIrfrdV74xK1Vo/BKQZwUcjJv3gp6gMeV3BsVxMnXTcgtYOKyphT4DPPo7jxVEVhuwJTQn3oPQ== dependencies: - jest-matcher-utils "^28.0.0" - pretty-format "^28.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": version "7.0.11" @@ -2274,14 +2346,19 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.1.tgz#b1429c0c016cd50e105f3166bf179f6918b7365f" + integrity sha512-v55NF6Dz0wrj14Rn8iEABTWrhYRmgkJYuokduunSiq++t3hZ9VZ6dvcDt+850Pm5sGJZk8RaHzkFCXPxVINZ+g== + +"@types/node@*": + version "18.7.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601" + integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg== -"@types/node@*", "@types/node@>=6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.6.tgz#0ba49ac517ad69abe7a1508bc9b3a5483df9d5d7" - integrity sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw== +"@types/node@>=6": + version "18.7.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.14.tgz#0fe081752a3333392d00586d815485a17c2cf3c9" + integrity sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2323,9 +2400,9 @@ "@types/react" "*" "@types/react@*": - version "18.0.15" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.15.tgz#d355644c26832dc27f3e6cbf0c4f4603fc4ab7fe" - integrity sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow== + version "18.0.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.18.tgz#9f16f33d57bc5d9dca848d12c3572110ff9429ac" + integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2341,6 +2418,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + "@types/testing-library__jest-dom@^5.9.1": version "5.14.5" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" @@ -2367,6 +2449,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^17.0.8": + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== + dependencies: + "@types/yargs-parser" "*" + "@types/zen-observable@0.8.3", "@types/zen-observable@^0.8.0": version "0.8.3" resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" @@ -2584,16 +2673,16 @@ tslib "^1.9.3" "@wry/equality@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" - integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== dependencies: tslib "^2.3.0" "@wry/trie@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" - integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== dependencies: tslib "^2.3.0" @@ -2934,9 +3023,9 @@ aria-query@^4.2.2: "@babel/runtime-corejs3" "^7.10.2" aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + version "5.0.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.2.tgz#0b8a744295271861e1d933f8feca13f9b70cfdc1" + integrity sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q== arity-n@^1.0.4: version "1.0.4" @@ -3107,7 +3196,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.6.2: +async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -3173,7 +3262,7 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-eslint@10.1.0, babel-eslint@^10.1.0: +babel-eslint@10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== @@ -3240,7 +3329,7 @@ babel-plugin-jest-hoist@^24.9.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-macros@2.8.0, babel-plugin-macros@^2.6.1: +babel-plugin-macros@2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -3249,34 +3338,43 @@ babel-plugin-macros@2.8.0, babel-plugin-macros@^2.6.1: cosmiconfig "^6.0.0" resolve "^1.12.0" +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + babel-plugin-named-asset-import@^0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" "babel-plugin-styled-components@>= 1", "babel-plugin-styled-components@>= 1.12.0": version "2.0.7" @@ -3628,15 +3726,15 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.2, browserslist@^4.3.4, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.9.1: - version "4.21.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf" - integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.3, browserslist@^4.3.4, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.9.1: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001366" - electron-to-chromium "^1.4.188" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" node-releases "^2.0.6" - update-browserslist-db "^1.0.4" + update-browserslist-db "^1.0.5" bs58@4.0.1, bs58@^4.0.1: version "4.0.1" @@ -3689,6 +3787,13 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + bytebuffer@5.0.1, bytebuffer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" @@ -3853,10 +3958,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001366: - version "1.0.30001367" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz#2b97fe472e8fa29c78c5970615d7cd2ee414108a" - integrity sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001370: + version "1.0.30001387" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001387.tgz#90d2b9bdfcc3ab9a5b9addee00a25ef86c9e2e1e" + integrity sha512-fKDH0F1KOJvR+mWSOvhj8lVRr/Q/mc5u5nabU2vi1/sgvlSqEsE8dOq0Hy/BqVbDkCYQPRRHB1WRjW6PGB/7PA== capture-exit@^2.0.0: version "2.0.0" @@ -3965,6 +4070,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.4.0.tgz#b28484fd436cbc267900364f096c9dc185efb251" + integrity sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -4166,11 +4276,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -4312,17 +4417,17 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1, core-js-compat@^3.6.2: - version "3.23.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.5.tgz#11edce2f1c4f69a96d30ce77c805ce118909cd5b" - integrity sha512-fHYozIFIxd+91IIbXJgWd/igXIc8Mf9is0fusswjnGIWVG96y2cwyUdlCkGOw6rMLHKAxg7xtCIVaHsyOUnJIg== + version "3.25.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.0.tgz#489affbfbf9cb3fa56192fe2dd9ebaee985a66c5" + integrity sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow== dependencies: - browserslist "^4.21.2" + browserslist "^4.21.3" semver "7.0.0" core-js-pure@^3.20.2: - version "3.23.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.5.tgz#23daaa9af9230e50f10b0fa4b8e6b87402be4c33" - integrity sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw== + version "3.25.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.1.tgz#79546518ae87cc362c991d9c2d211f45107991ee" + integrity sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A== core-js@^2.4.0, core-js@^2.6.10, core-js@^2.6.5: version "2.6.12" @@ -4330,9 +4435,9 @@ core-js@^2.4.0, core-js@^2.6.10, core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.18.2, core-js@^3.5.0: - version "3.23.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.5.tgz#1f82b0de5eece800827a2f59d597509c67650475" - integrity sha512-7Vh11tujtAZy82da4duVreQysIoO2EvVrur7y6IzZkH1IHPSekuDi8Vuw1+YKjkbfWLRD7Nc9ICQ/sIUDutcyg== + version "3.25.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.0.tgz#be71d9e0dd648ffd70c44a7ec2319d039357eceb" + integrity sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA== core-util-is@1.0.2: version "1.0.2" @@ -4365,6 +4470,17 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" +cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -4627,15 +4743,6 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" -css@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" - integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== - dependencies: - inherits "^2.0.4" - source-map "^0.6.1" - source-map-resolve "^0.6.0" - cssdb@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" @@ -4998,7 +5105,7 @@ debug@=3.1.0: dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.5, debug@^3.2.7: +debug@^3.2.5, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -5151,10 +5258,10 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== diffie-hellman@^5.0.0: version "5.0.3" @@ -5383,10 +5490,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.3.378, electron-to-chromium@^1.4.188: - version "1.4.195" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.195.tgz#139b2d95a42a3f17df217589723a1deac71d1473" - integrity sha512-vefjEh0sk871xNmR5whJf9TEngX+KTKS3hOHpjoMpauKkwlGwtMz1H8IaIjAT/GNnX0TbGwAdmVoXCAzXf+PPg== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.4.202: + version "1.4.237" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.237.tgz#c695c5fedc3bb48f04ba1b39470c5aef2aaafd84" + integrity sha512-vxVyGJcsgArNOVUJcXm+7iY3PJAfmSapEszQD1HbyPLl0qoCmNQ1o/EX3RI7Et5/88In9oLxX3SGF8J3orkUgA== elliptic@6.5.0: version "6.5.0" @@ -5657,9 +5764,9 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.61" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" - integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: es6-iterator "^2.0.3" es6-symbol "^3.1.3" @@ -5750,10 +5857,10 @@ eslint-config-standard-react@^9.2.0: dependencies: eslint-config-standard-jsx "^8.0.0" -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== +eslint-config-standard@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" + integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.6: version "0.3.6" @@ -5775,12 +5882,11 @@ eslint-loader@3.0.3: schema-utils "^2.6.1" eslint-module-utils@^2.4.1, eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" eslint-plugin-es@^3.0.0: version "3.0.1" @@ -5790,6 +5896,14 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + eslint-plugin-flowtype@4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz#82b2bd6f21770e0e5deede0228e456cb35308451" @@ -5815,7 +5929,7 @@ eslint-plugin-import@2.20.1: read-pkg-up "^2.0.0" resolve "^1.12.0" -eslint-plugin-import@^2.22.1: +eslint-plugin-import@^2.25.2: version "2.26.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== @@ -5849,6 +5963,20 @@ eslint-plugin-jsx-a11y@6.2.3: has "^1.0.3" jsx-ast-utils "^2.2.1" +eslint-plugin-n@^15.0.0: + version "15.2.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.5.tgz#aa7ff8d45bb8bf2df8ea3b7d3774ae570cb794b8" + integrity sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g== + dependencies: + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" + ignore "^5.1.1" + is-core-module "^2.10.0" + minimatch "^3.1.2" + resolve "^1.22.1" + semver "^7.3.7" + eslint-plugin-node@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" @@ -5868,10 +5996,10 @@ eslint-plugin-prettier@^3.1.4: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" - integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== +eslint-plugin-promise@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz#a8cddf96a67c4059bdabf4d724a29572188ae423" + integrity sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw== eslint-plugin-react-hooks@^1.6.1: version "1.7.0" @@ -5896,10 +6024,10 @@ eslint-plugin-react@7.19.0: string.prototype.matchall "^4.0.2" xregexp "^4.3.0" -eslint-plugin-react@^7.21.4: - version "7.30.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" - integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== +eslint-plugin-react@^7.31.1: + version "7.31.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz#d29793ed27743f3ed8a473c347b1bf5a0a8fb9af" + integrity sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg== dependencies: array-includes "^3.1.5" array.prototype.flatmap "^1.3.0" @@ -5929,7 +6057,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5951,11 +6079,23 @@ eslint-utils@^2.0.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + eslint@^6.6.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" @@ -6138,6 +6278,17 @@ expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" +expect@^29.0.0: + version "29.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" + integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== + dependencies: + "@jest/expect-utils" "^29.0.3" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + express@^4.17.1: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" @@ -6176,11 +6327,11 @@ express@^4.17.1: vary "~1.1.2" ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: - type "^2.5.0" + type "^2.7.2" extend-shallow@^2.0.1: version "2.0.1" @@ -6442,7 +6593,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== @@ -6456,17 +6607,10 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== - dependencies: - semver-regex "^2.0.0" - -flag-icon-css@^3.4.6: - version "3.5.0" - resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" - integrity sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew== +flag-icon-css@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-4.1.7.tgz#5471197f9ab965a3603b3e0face31dd513fec289" + integrity sha512-AFjSU+fv98XbU0vnTQ32vcLj89UEr1MhwDFcooQv14qWJCjg9fGZzfh9BVyDhAhIOZW/pGmJmq38RqpgPaeybQ== flat-cache@^2.0.1: version "2.0.1" @@ -6851,7 +6995,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -7208,21 +7352,10 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -husky@~4.2.3: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^6.0.0" - find-versions "^3.2.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" +husky@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== hyphenate-style-name@^1.0.3: version "1.0.4" @@ -7326,7 +7459,7 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -7579,10 +7712,10 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.10.0, is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -8005,15 +8138,15 @@ jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== +jest-diff@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" + integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== dependencies: chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.3" jest-docblock@^24.3.0: version "24.9.0" @@ -8073,10 +8206,10 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== jest-haste-map@^24.9.0: version "24.9.0" @@ -8137,15 +8270,15 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-matcher-utils@^28.0.0: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== +jest-matcher-utils@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" + integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== dependencies: chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-diff "^29.0.3" + jest-get-type "^29.0.0" + pretty-format "^29.0.3" jest-message-util@^24.9.0: version "24.9.0" @@ -8161,6 +8294,21 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" + integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^24.0.0, jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -8294,6 +8442,18 @@ jest-util@^24.0.0, jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" +jest-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" + integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== + dependencies: + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-validate@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" @@ -8534,70 +8694,70 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -jss-plugin-camel-case@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz#4921b568b38d893f39736ee8c4c5f1c64670aaf7" - integrity sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww== +jss-plugin-camel-case@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.2.tgz#76dddfa32f9e62d17daa4e3504991fd0933b89e1" + integrity sha512-wgBPlL3WS0WDJ1lPJcgjux/SHnDuu7opmgQKSraKs4z8dCCyYMx9IDPFKBXQ8Q5dVYij1FFV0WdxyhuOOAXuTg== dependencies: "@babel/runtime" "^7.3.1" hyphenate-style-name "^1.0.3" - jss "10.9.0" + jss "10.9.2" -jss-plugin-default-unit@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz#bb23a48f075bc0ce852b4b4d3f7582bc002df991" - integrity sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w== +jss-plugin-default-unit@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.2.tgz#3e7f4a1506b18d8fe231554fd982439feb2a9c53" + integrity sha512-pYg0QX3bBEFtTnmeSI3l7ad1vtHU42YEEpgW7pmIh+9pkWNWb5dwS/4onSfAaI0kq+dOZHzz4dWe+8vWnanoSg== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.9.2" -jss-plugin-global@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz#fc07a0086ac97aca174e37edb480b69277f3931f" - integrity sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ== +jss-plugin-global@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.2.tgz#e7f2ad4a5e8e674fb703b04b57a570b8c3e5c2c2" + integrity sha512-GcX0aE8Ef6AtlasVrafg1DItlL/tWHoC4cGir4r3gegbWwF5ZOBYhx04gurPvWHC8F873aEGqge7C17xpwmp2g== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.9.2" -jss-plugin-nested@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz#cc1c7d63ad542c3ccc6e2c66c8328c6b6b00f4b3" - integrity sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA== +jss-plugin-nested@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.2.tgz#3aa2502816089ecf3981e1a07c49b276d67dca63" + integrity sha512-VgiOWIC6bvgDaAL97XCxGD0BxOKM0K0zeB/ECyNaVF6FqvdGB9KBBWRdy2STYAss4VVA7i5TbxFZN+WSX1kfQA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.9.2" tiny-warning "^1.0.2" -jss-plugin-props-sort@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz#30e9567ef9479043feb6e5e59db09b4de687c47d" - integrity sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw== +jss-plugin-props-sort@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.2.tgz#645f6c8f179309667b3e6212f66b59a32fb3f01f" + integrity sha512-AP1AyUTbi2szylgr+O0OB7gkIxEGzySLITZ2GpsaoX72YMCGI2jYAc+WUhPfvUnZYiauF4zTnN4V4TGuvFjJlw== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.9.2" -jss-plugin-rule-value-function@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz#379fd2732c0746fe45168011fe25544c1a295d67" - integrity sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg== +jss-plugin-rule-value-function@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.2.tgz#9afe07596e477123cbf11120776be6a64494541f" + integrity sha512-vf5ms8zvLFMub6swbNxvzsurHfUZ5Shy5aJB2gIpY6WNA3uLinEcxYyraQXItRHi5ivXGqYciFDRM2ZoVoRZ4Q== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.9.2" tiny-warning "^1.0.2" -jss-plugin-vendor-prefixer@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz#aa9df98abfb3f75f7ed59a3ec50a5452461a206a" - integrity sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA== +jss-plugin-vendor-prefixer@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.2.tgz#410a0f3b9f8dbbfba58f4d329134df4849aa1237" + integrity sha512-SxcEoH+Rttf9fEv6KkiPzLdXRmI6waOTcMkbbEFgdZLDYNIP9UKNHFy6thhbRKqv0XMQZdrEsbDyV464zE/dUA== dependencies: "@babel/runtime" "^7.3.1" css-vendor "^2.0.8" - jss "10.9.0" + jss "10.9.2" -jss@10.9.0, jss@^10.8.2: - version "10.9.0" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.0.tgz#7583ee2cdc904a83c872ba695d1baab4b59c141b" - integrity sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw== +jss@10.9.2, jss@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.2.tgz#9379be1f195ef98011dfd31f9448251bd61b95a9" + integrity sha512-b8G6rWpYLR4teTUbGd4I4EsnWjg7MN0Q5bSsjKhVkJVjhQDy2KzkbD2AW3TuT0RYZVmZZHKIrXDn6kjU14qkUg== dependencies: "@babel/runtime" "^7.3.1" csstype "^3.0.2" @@ -8613,12 +8773,12 @@ jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: object.assign "^4.1.0" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd" - integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q== + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: array-includes "^3.1.5" - object.assign "^4.1.2" + object.assign "^4.1.3" jwt-decode@^2.2.0: version "2.2.0" @@ -9117,7 +9277,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.5: +micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -9284,7 +9444,7 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -9607,14 +9767,14 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.5: @@ -9715,11 +9875,6 @@ open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -10082,7 +10237,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -10138,7 +10293,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -10152,13 +10307,6 @@ pkg-up@3.1.0, pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -10179,13 +10327,13 @@ polished@^4.0.3: "@babel/runtime" "^7.17.8" portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" posix-character-classes@^0.1.0: version "0.1.1" @@ -10866,7 +11014,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.2: +prettier@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -10904,13 +11052,12 @@ pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^28.0.0, pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== +pretty-format@^29.0.0, pretty-format@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" + integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" + "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -10950,9 +11097,9 @@ promise@^7.1.1: asap "~2.0.3" promise@^8.0.1, promise@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + version "8.2.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.2.0.tgz#a1f6280ab67457fbfc8aad2b198c9497e9e5c806" + integrity sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg== dependencies: asap "~2.0.6" @@ -11293,9 +11440,9 @@ react-helmet@^6.1.0: react-side-effect "^2.1.0" react-i18next@^11.7.0: - version "11.18.1" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.1.tgz#ba86ed09069e129b8623a28f2b9a03d7f105ea6f" - integrity sha512-S8cl4mvIOSA7OQCE5jNy2yhv705Vwi+7PinpqKIYcBmX/trJtHKqrf6CL67WJSA8crr2JU+oxE9jn9DQIrQezg== + version "11.18.5" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.5.tgz#985e87bc66ed1316381b464a4ecfd35a2c951357" + integrity sha512-cKcyuuzIv0YUZ4l9WORflVNuhISPAqQShOAsxwFyYuJoCA7HlLmHm7XnvO6hfAGmGpDNRhJHoBX8hG49Cb2xZQ== dependencies: "@babel/runtime" "^7.14.5" html-parse-stringify "^3.0.1" @@ -11310,6 +11457,11 @@ react-identicons@^1.2.5: resolved "https://registry.yarnpkg.com/react-identicons/-/react-identicons-1.2.5.tgz#3502249e49d88f4e3500092694410a984bb102fa" integrity sha512-x7prkDoc2pD7wSl2C1pGxS+XAoSdq1ABWJWTBUimVTDVJArKOLd0B4wRUJpDm4r+9y7pgf8ylyPGsmlWSV5n2g== +react-image-file-resizer@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/react-image-file-resizer/-/react-image-file-resizer-0.4.8.tgz#85f4ae4469fd2867d961568af660ef403d7a79af" + integrity sha512-Ue7CfKnSlsfJ//SKzxNMz8avDgDSpWQDOnTKOp/GNRFJv4dO9L5YGHNEnj40peWkXXAK2OK0eRIoXhOYpUzUTQ== + react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -11511,10 +11663,10 @@ react-transition-group@^2.5.0: prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" -react-transition-group@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" - integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -11935,7 +12087,7 @@ resolve@1.15.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.10, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.1.10, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.8.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -12162,16 +12314,6 @@ selfsigned@^1.10.7: dependencies: node-forge "^0.10.0" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -12187,7 +12329,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^7.3.2: +semver@^7.0.0, semver@^7.3.2, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -12503,14 +12645,6 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-resolve@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" - integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -12556,9 +12690,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== spdy-transport@^3.0.0: version "3.0.0" @@ -12637,6 +12771,13 @@ stack-utils@^1.0.1: dependencies: escape-string-regexp "^2.0.0" +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -13335,10 +13476,10 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" - integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== typedarray@^0.0.6: version "0.0.6" @@ -13346,9 +13487,9 @@ typedarray@^0.0.6: integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript@*: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + version "4.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" + integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== u2f-api@0.2.7: version "0.2.7" @@ -13523,7 +13664,7 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.4: +update-browserslist-db@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== @@ -13676,6 +13817,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" @@ -13958,11 +14104,6 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== -which-pm-runs@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" - integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== - which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -14245,7 +14386,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==