From ac8246b2f9292c64567055663f04e20f52d14ae9 Mon Sep 17 00:00:00 2001 From: Xavier Fernandez <5632966+xavier506@users.noreply.github.com> Date: Sat, 24 Sep 2022 19:23:31 -0600 Subject: [PATCH 1/5] fix(jungle): migrate dev environment to jungle 4 (#988) * fix(jungle): migrate dev environment to jungle 4 * fix(jungle): migrate dev environment to jungle 4 --- .env.example | 14 +++++++------- .github/workflows/push-staging-environment.yaml | 16 ++++++++-------- contracts/rateproducer/README.md | 10 +++++----- hapi/src/libs/sync-bps.js | 2 +- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.env.example b/.env.example index ec26679e..e106cd82 100644 --- a/.env.example +++ b/.env.example @@ -18,11 +18,11 @@ HAPI_POSTGRES_DB=eosrate HAPI_POSTGRES_SCHEMA=public HAPI_SERVER_PORT=9090 HAPI_SERVER_ADDRESS=0.0.0.0 -HAPI_EOS_API_ENDPOINT=https://jungle3.cryptolions.io +HAPI_EOS_API_ENDPOINT=https://jungle.edenia.cloud HAPI_EOS_CHAIN_ID=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 HAPI_PROXY_CONTRACT=proxyaccount HAPI_RATING_CONTRACT=rateproducer -HAPI_HYPERION_API=https://jungle3history.cryptolions.io +HAPI_HYPERION_API=http://jungle.eosusa.io HAPI_HYPERION_START_AT=2022-03-01T00:00:00.000+00:00 HAPI_HASURA_URL=http://hasura:8080/v1/graphql HAPI_HASURA_ADMIN_SECRET=myadminsecretkey @@ -34,16 +34,16 @@ HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # WEBAPP REACT_APP_RATING_CONTRACT=rateproducer REACT_APP_GRAPHQL_HTTP_URL=http://localhost:8080/v1/graphql -REACT_APP_API_URL=https://jungle3.cryptolions.io +REACT_APP_API_URL=https://jungle.edenia.cloud REACT_APP_GRAPHQL_WS_URL=ws://localhost:8080/v1/graphql -REACT_APP_EOS_API_URL=https://jungle3.cryptolions.io -REACT_APP_EOS_API_HOST=jungle3.cryptolions.io +REACT_APP_EOS_API_URL=https://jungle.edenia.cloud +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_BLOCK_EXPLORER=https://jungle3.bloks.io REACT_APP_NETWORK_MONITOR_URL=https://jungle.eosio.online/ REACT_APP_VERSION=v1.4.21 REACT_APP_MAINNET_VERSION= v1.4.21 -REACT_APP_EDEN_CONTRACT=genesisdeden +REACT_APP_EDEN_CONTRACT=genesis.eden REACT_APP_UAL_APP_NAME=EOSRate \ No newline at end of file diff --git a/.github/workflows/push-staging-environment.yaml b/.github/workflows/push-staging-environment.yaml index 52003f99..02387d26 100644 --- a/.github/workflows/push-staging-environment.yaml +++ b/.github/workflows/push-staging-environment.yaml @@ -45,15 +45,15 @@ jobs: REACT_APP_VERSION: ${{ github.ref }} REACT_APP_RATING_CONTRACT: rateproducer REACT_APP_MAINNET_VERSION: false - REACT_APP_EDEN_CONTRACT: genesisdeden + REACT_APP_EDEN_CONTRACT: genesis.eden REACT_APP_GRAPHQL_HTTP_URL: https://graphql-jungle.eosrate.io/v1/graphql REACT_APP_GRAPHQL_WS_URL: wss://graphql-jungle.eosrate.io/v1/graphql - REACT_APP_EOS_API_URL: https://jungle3.cryptolions.io - REACT_APP_EOS_API_HOST: jungle3.cryptolions.io + REACT_APP_EOS_API_URL: https://jungle.edenia.cloud + 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_BLOCK_EXPLORER: https://jungle3.bloks.io + REACT_APP_EOS_CHAIN_ID: 73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d + REACT_APP_BLOCK_EXPLORER: https://local.bloks.io/?nodeUrl=https%3A%2F%2Fjungle4.api.eosnation.io&systemDomain=eosio&hyperionUrl=https%3A%2F%2Fjungle4.cryptolions.io REACT_APP_NETWORK_MONITOR_URL: https://jungle.eosio.online/ - name: Build kubernetes files @@ -87,9 +87,9 @@ jobs: HAPI_POSTGRES_HOST: postgres HAPI_POSTGRES_PORT: 5432 HAPI_POSTGRES_SCHEMA: public - HAPI_EOS_API_ENDPOINT: https://jungle3.cryptolions.io - HAPI_EOS_CHAIN_ID: 2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840 - HAPI_HYPERION_API: https://jungle3history.cryptolions.io + HAPI_EOS_API_ENDPOINT: https://jungle.edenia.cloud + HAPI_EOS_CHAIN_ID: 73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d + HAPI_HYPERION_API: http://jungle.eosusa.io HAPI_HYPERION_START_AT: '2022-03-01T00:00:00.000+00:00' # hasura HASURA_GRAPHQL_DATABASE_URL: ${{ secrets.HASURA_GRAPHQL_DATABASE_URL }} diff --git a/contracts/rateproducer/README.md b/contracts/rateproducer/README.md index 1e5ec2be..cb550acd 100644 --- a/contracts/rateproducer/README.md +++ b/contracts/rateproducer/README.md @@ -50,12 +50,12 @@ make -j Add resources: ```bash -cleos -u https://jungle3.cryptolions.io system buyram rateproducer rateproducer "100 EOS" +cleos -u https://jungle.edenia.cloud system buyram rateproducer rateproducer "100 EOS" ``` Publish Contract: ```bash -cleos -u https://jungle3.cryptolions.io set contract rateproducer ./ -p rateproducer@active +cleos -u https://jungle.edenia.cloud set contract rateproducer ./ -p rateproducer@active ``` Push rating with all categories: @@ -66,7 +66,7 @@ cleos -u hhttp://jungle2.cryptolions.io:80 push action rateproducer rate '{ "use example 2: ```bash -cleos -u https://jungle3.cryptolions.io push action rateproducer rate '{ "user": "eoscrvoter11", "bp":"eoscrprodo51","transparency":8,"infrastructure":8,"trustiness":7,"development":6,"community":9 }' -p eoscrvoter11@active +cleos -u https://jungle.edenia.cloud push action rateproducer rate '{ "user": "eoscrvoter11", "bp":"eoscrprodo51","transparency":8,"infrastructure":8,"trustiness":7,"development":6,"community":9 }' -p eoscrvoter11@active ``` Push rating with partial categories: @@ -76,12 +76,12 @@ cleos -u http://monitor.jungletestnet.io:8888 push action rateproducer rate '{ " Get stats table: ```bash -cleos -u https://jungle3.cryptolions.io get table -l 50 rateproducer rateproducer stats +cleos -u https://jungle.edenia.cloud get table -l 50 rateproducer rateproducer stats ``` Get bp table: ```bash -cleos -u https://jungle3.cryptolions.io get table -l 50 rateproducer rateproducer ratings +cleos -u https://jungle.edenia.cloud get table -l 50 rateproducer rateproducer ratings ``` Clean data for a block producer: diff --git a/hapi/src/libs/sync-bps.js b/hapi/src/libs/sync-bps.js index 8234a24c..f2a13720 100644 --- a/hapi/src/libs/sync-bps.js +++ b/hapi/src/libs/sync-bps.js @@ -4,7 +4,7 @@ const request = require('request-promise') const { massiveDB, chainConfig } = require('../config') const HAPI_EOS_API_ENDPOINT = - process.env.HAPI_EOS_API_ENDPOINT || 'https://jungle3.cryptolions.io' + process.env.HAPI_EOS_API_ENDPOINT || 'https://jungle.edenia.cloud' const getBlockProducersData = async () => { const eos = EosApi({ From 83675c44daed1daa82262c8a968ce0dc451e1b76 Mon Sep 17 00:00:00 2001 From: Angelo Castro Gamboa <51149817+AngeloCG97@users.noreply.github.com> Date: Mon, 21 Nov 2022 13:22:49 -0600 Subject: [PATCH 2/5] Improve(hapi): changed hapi server routes structure (#992) * fix(enviroment): change env value * fix(hasura): add permissions tables * fix(comments): fix comments section * fix(hyperion): fix codefactor issues * fix(hyperion): fix codefactor issues * fix(hasura): delete migration restriction * fix(hyperion): fix updater flows * improve(hapi): changed hapi server routes structure --- hapi/package.json | 2 + hapi/src/index.js | 60 ++--------------- hapi/src/routes/healthz.route.js | 10 +++ hapi/src/routes/index.js | 4 ++ hapi/src/routes/ratebp.route.js | 57 ++++++++++++++++ hapi/yarn.lock | 40 +++++++++++ hasura/metadata/actions.graphql | 19 +++++- hasura/metadata/actions.yaml | 26 +++++--- hasura/metadata/api_limits.yaml | 1 + hasura/metadata/databases/databases.yaml | 4 +- .../default/tables/public_comment.yaml | 44 ++++++------- .../default/tables/public_comment_like.yaml | 26 ++++---- .../tables/public_eden_ratings_stats.yaml | 30 ++++----- .../default/tables/public_hyperion_state.yaml | 2 +- .../default/tables/public_producers.yaml | 20 +++--- .../default/tables/public_producers_list.yaml | 66 +++++++++---------- .../default/tables/public_proxies.yaml | 38 +++++------ .../default/tables/public_ratings_stats.yaml | 30 ++++----- .../tables/public_total_ratings_stats.yaml | 2 +- .../default/tables/public_user_ratings.yaml | 49 +++++++------- .../graphql_schema_introspection.yaml | 1 + hasura/metadata/network.yaml | 1 + 22 files changed, 313 insertions(+), 219 deletions(-) create mode 100644 hapi/src/routes/healthz.route.js create mode 100644 hapi/src/routes/index.js create mode 100644 hapi/src/routes/ratebp.route.js create mode 100644 hasura/metadata/api_limits.yaml create mode 100644 hasura/metadata/graphql_schema_introspection.yaml create mode 100644 hasura/metadata/network.yaml diff --git a/hapi/package.json b/hapi/package.json index b6035b37..240d8dc4 100644 --- a/hapi/package.json +++ b/hapi/package.json @@ -17,12 +17,14 @@ "author": "EOS Costa Rica", "license": "MIT", "dependencies": { + "@hapi/boom": "^10.0.0", "@hapi/hapi": "^20.1.5", "axios": "^0.26.1", "eosjs": "^22.1.0", "eosjs-api": "^7.0.4", "graphql": "^16.3.0", "graphql-request": "^4.1.0", + "joi": "^17.7.0", "massive": "^6.9.1", "moment": "^2.29.1", "node-fetch": "^2.6.7", diff --git a/hapi/src/index.js b/hapi/src/index.js index fa6b036c..0267be04 100644 --- a/hapi/src/index.js +++ b/hapi/src/index.js @@ -1,68 +1,22 @@ 'use strict' const { HAPI_SERVER_PORT, HAPI_SERVER_ADDRESS } = process.env -const { - updateBpStatsUtil, - updateUserRatingUtil, - validateAccountNameUtil -} = require('./utils/') - const Hapi = require('@hapi/hapi') +const routes = require('./routes') const { workerService } = require('./services') const init = async () => { const server = Hapi.server({ port: HAPI_SERVER_PORT, - host: HAPI_SERVER_ADDRESS - }) - - server.route({ - method: 'GET', - path: '/', - handler: function () { - return '

EOS Rate HTTP API service

' - } + host: HAPI_SERVER_ADDRESS, + routes: { + cors: { origin: ['*'] } + }, + debug: { request: ['handler'] } }) - server.route({ - method: 'POST', - path: '/ratebp', - handler: async req => { - try { - const { - payload: { input } - } = req - - if (!input) throw new Error('Invalid ratebp Input') - - const { - ratingInput: { user, producer, transaction, isEden } - } = input - const isValidAccountName = validateAccountNameUtil([ - { name: user, type: 'user account' }, - { name: producer, type: 'block producer' } - ]) - - if (!isValidAccountName.isValidAccountName) - throw new Error(isValidAccountName.message) - - const { edenResult, totalStats } = await updateBpStatsUtil(producer) - const result = await updateUserRatingUtil( - user, - producer, - transaction, - isEden - ) - - return { resultEden: edenResult, totalStats, ...result } - } catch (error) { - console.error('ratebp', error) - - return error - } - } - }) + server.route(routes) await server.start() console.log(`🚀 Server ready at ${server.info.uri}`) diff --git a/hapi/src/routes/healthz.route.js b/hapi/src/routes/healthz.route.js new file mode 100644 index 00000000..c1656674 --- /dev/null +++ b/hapi/src/routes/healthz.route.js @@ -0,0 +1,10 @@ +module.exports = { + method: 'GET', + path: '/healthz', + handler: () => { + return '

EOS Rate HTTP API service

' + }, + options: { + auth: false + } +} diff --git a/hapi/src/routes/index.js b/hapi/src/routes/index.js new file mode 100644 index 00000000..1a4e6dc7 --- /dev/null +++ b/hapi/src/routes/index.js @@ -0,0 +1,4 @@ +const healthzRoute = require('./healthz.route') +const ratebpRoute = require('./ratebp.route') + +module.exports = [healthzRoute, ratebpRoute] diff --git a/hapi/src/routes/ratebp.route.js b/hapi/src/routes/ratebp.route.js new file mode 100644 index 00000000..2137a442 --- /dev/null +++ b/hapi/src/routes/ratebp.route.js @@ -0,0 +1,57 @@ +const Boom = require('@hapi/boom') +const Joi = require('joi') + +const { + updateBpStatsUtil, + updateUserRatingUtil, + validateAccountNameUtil +} = require('../utils') + +module.exports = { + method: 'POST', + path: '/ratebp', + handler: async ({ payload: { input } }) => { + try { + if (!input) throw new Error('Invalid ratebp Input') + + const { + ratingInput: { user, producer, transaction, isEden } + } = input + const isValidAccountName = validateAccountNameUtil([ + { name: user, type: 'user account' }, + { name: producer, type: 'block producer' } + ]) + + if (!isValidAccountName.isValidAccountName) + throw new Error(isValidAccountName.message) + + const { edenResult, totalStats } = await updateBpStatsUtil(producer) + const result = await updateUserRatingUtil( + user, + producer, + transaction, + isEden + ) + + return { resultEden: edenResult, totalStats, ...result } + } catch (error) { + console.error('ratebp', error) + + return Boom.badRequest(error.message) + } + }, + options: { + validate: { + payload: Joi.object({ + input: Joi.object({ + ratingInput: Joi.object({ + user: Joi.string().required(), + isEden: Joi.boolean().required(), + producer: Joi.string().required(), + transaction: Joi.object().required() + }).required() + }).required() + }).options({ stripUnknown: true }) + } + } +} diff --git a/hapi/yarn.lock b/hapi/yarn.lock index c290e2b1..eca9a3ce 100644 --- a/hapi/yarn.lock +++ b/hapi/yarn.lock @@ -164,6 +164,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" @@ -255,6 +262,11 @@ "@hapi/hoek" "9.x.x" "@hapi/validate" "1.x.x" +"@hapi/hoek@10.x.x": + 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" @@ -431,6 +443,23 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -2520,6 +2549,17 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +joi@^17.7.0: + version "17.7.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3" + integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + js-tokens@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" diff --git a/hasura/metadata/actions.graphql b/hasura/metadata/actions.graphql index 542f9b7f..6a1d87a2 100644 --- a/hasura/metadata/actions.graphql +++ b/hasura/metadata/actions.graphql @@ -1,5 +1,13 @@ type Mutation { - rateProducer(ratingInput: RatingInput!): RatingOutput + getRatesStats( + ratesStatsInput: RatesStatsInput! + ): RatesStatsOutput +} + +type Mutation { + rateProducer( + ratingInput: RatingInput! + ): RatingOutput } input RatingInput { @@ -9,6 +17,10 @@ input RatingInput { transaction: jsonb! } +input RatesStatsInput { + bps: [String] +} + type RatingOutput { message: String! resultEden: jsonb @@ -25,3 +37,8 @@ type deleteUserRateOutput { type AddCommentOutput { success: Boolean! } + +type RatesStatsOutput { + bpsStats: [jsonb] +} + diff --git a/hasura/metadata/actions.yaml b/hasura/metadata/actions.yaml index 7e171a2f..1dbbf497 100644 --- a/hasura/metadata/actions.yaml +++ b/hasura/metadata/actions.yaml @@ -1,16 +1,22 @@ actions: -- name: rateProducer - definition: - kind: synchronous - handler: '{{HASURA_GRAPHQL_ACTION_BASE_URL}}/ratebp' - permissions: - - role: anonymous + - name: getRatesStats + definition: + kind: synchronous + handler: '{{HASURA_GRAPHQL_ACTION_BASE_URL}}/get-rates-stats' + - name: rateProducer + definition: + kind: synchronous + handler: '{{HASURA_GRAPHQL_ACTION_BASE_URL}}/ratebp' + permissions: + - role: anonymous custom_types: enums: [] input_objects: - - name: RatingInput + - name: RatingInput + - name: RatesStatsInput objects: - - name: RatingOutput - - name: deleteUserRateOutput - - name: AddCommentOutput + - name: RatingOutput + - name: deleteUserRateOutput + - name: AddCommentOutput + - name: RatesStatsOutput scalars: [] diff --git a/hasura/metadata/api_limits.yaml b/hasura/metadata/api_limits.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/hasura/metadata/api_limits.yaml @@ -0,0 +1 @@ +{} diff --git a/hasura/metadata/databases/databases.yaml b/hasura/metadata/databases/databases.yaml index 65a11b20..f71e88b0 100644 --- a/hasura/metadata/databases/databases.yaml +++ b/hasura/metadata/databases/databases.yaml @@ -2,13 +2,13 @@ kind: postgres configuration: connection_info: + use_prepared_statements: true database_url: from_env: HASURA_GRAPHQL_DATABASE_URL isolation_level: read-committed pool_settings: connection_lifetime: 600 + retries: 1 idle_timeout: 180 max_connections: 50 - retries: 1 - use_prepared_statements: true tables: "!include default/tables/tables.yaml" diff --git a/hasura/metadata/databases/default/tables/public_comment.yaml b/hasura/metadata/databases/default/tables/public_comment.yaml index c9650475..9c2c260b 100644 --- a/hasura/metadata/databases/default/tables/public_comment.yaml +++ b/hasura/metadata/databases/default/tables/public_comment.yaml @@ -1,26 +1,26 @@ table: - name: comment schema: public + name: comment array_relationships: -- name: user_ratings - using: - foreign_key_constraint_on: - column: id_bc_rating - table: - name: user_ratings - schema: public + - name: user_ratings + using: + foreign_key_constraint_on: + column: id_bc_rating + table: + schema: public + name: user_ratings select_permissions: -- permission: - allow_aggregations: true - columns: - - user - - content - - created_at - - transaction - - total_like - - total_dislike - - updated_at - - rating_id - - bp - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - user + - content + - created_at + - transaction + - total_like + - total_dislike + - updated_at + - rating_id + - bp + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/default/tables/public_comment_like.yaml b/hasura/metadata/databases/default/tables/public_comment_like.yaml index aecd57ca..3a78961c 100644 --- a/hasura/metadata/databases/default/tables/public_comment_like.yaml +++ b/hasura/metadata/databases/default/tables/public_comment_like.yaml @@ -1,16 +1,16 @@ table: - name: comment_like schema: public + name: comment_like select_permissions: -- permission: - allow_aggregations: true - columns: - - transaction - - like - - created_at - - user - - id - - updated_at - - rating_id - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - transaction + - like + - created_at + - user + - id + - updated_at + - rating_id + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/default/tables/public_eden_ratings_stats.yaml b/hasura/metadata/databases/default/tables/public_eden_ratings_stats.yaml index cbc61c21..edc0ca7b 100644 --- a/hasura/metadata/databases/default/tables/public_eden_ratings_stats.yaml +++ b/hasura/metadata/databases/default/tables/public_eden_ratings_stats.yaml @@ -1,18 +1,18 @@ table: - name: eden_ratings_stats schema: public + name: eden_ratings_stats select_permissions: -- permission: - columns: - - average - - bp - - community - - created_at - - development - - infrastructure - - ratings_cntr - - transparency - - trustiness - - updated_at - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average + - bp + - community + - created_at + - development + - infrastructure + - ratings_cntr + - transparency + - trustiness + - updated_at + filter: {} diff --git a/hasura/metadata/databases/default/tables/public_hyperion_state.yaml b/hasura/metadata/databases/default/tables/public_hyperion_state.yaml index e1ddf249..290a710a 100644 --- a/hasura/metadata/databases/default/tables/public_hyperion_state.yaml +++ b/hasura/metadata/databases/default/tables/public_hyperion_state.yaml @@ -1,3 +1,3 @@ table: - name: hyperion_state schema: public + name: hyperion_state diff --git a/hasura/metadata/databases/default/tables/public_producers.yaml b/hasura/metadata/databases/default/tables/public_producers.yaml index 4736b5b2..31549e16 100644 --- a/hasura/metadata/databases/default/tables/public_producers.yaml +++ b/hasura/metadata/databases/default/tables/public_producers.yaml @@ -1,13 +1,13 @@ table: - name: producers schema: public + name: producers select_permissions: -- permission: - columns: - - bpjson - - candidate_name - - general_info - - owner - - system - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - bpjson + - candidate_name + - general_info + - owner + - system + filter: {} diff --git a/hasura/metadata/databases/default/tables/public_producers_list.yaml b/hasura/metadata/databases/default/tables/public_producers_list.yaml index 65a4116b..3ee12260 100644 --- a/hasura/metadata/databases/default/tables/public_producers_list.yaml +++ b/hasura/metadata/databases/default/tables/public_producers_list.yaml @@ -1,36 +1,36 @@ table: - name: producers_list schema: public + name: producers_list select_permissions: -- permission: - allow_aggregations: true - columns: - - owner - - bpjson - - system - - candidate_name - - total_votes - - average - - transparency - - infrastructure - - trustiness - - community - - development - - ratings_cntr - - total_average - - total_transparency - - total_infrastructure - - total_trustiness - - total_community - - total_development - - total_ratings_cntr - - eden_average - - eden_transparency - - eden_infrastructure - - eden_trustiness - - eden_community - - eden_development - - eden_ratings_cntr - - general_info - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - owner + - bpjson + - system + - candidate_name + - total_votes + - average + - transparency + - infrastructure + - trustiness + - community + - development + - ratings_cntr + - total_average + - total_transparency + - total_infrastructure + - total_trustiness + - total_community + - total_development + - total_ratings_cntr + - eden_average + - eden_transparency + - eden_infrastructure + - eden_trustiness + - eden_community + - eden_development + - eden_ratings_cntr + - general_info + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/default/tables/public_proxies.yaml b/hasura/metadata/databases/default/tables/public_proxies.yaml index 8bcd84ad..3dcd4cbc 100644 --- a/hasura/metadata/databases/default/tables/public_proxies.yaml +++ b/hasura/metadata/databases/default/tables/public_proxies.yaml @@ -1,22 +1,22 @@ table: - name: proxies schema: public + name: proxies select_permissions: -- permission: - allow_aggregations: true - columns: - - background - - filter_name - - logo_256 - - name - - owner - - philosophy - - slogan - - steemit - - telegram - - twitter - - voter_info - - website - - wechat - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - background + - filter_name + - logo_256 + - name + - owner + - philosophy + - slogan + - steemit + - telegram + - twitter + - voter_info + - website + - wechat + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/default/tables/public_ratings_stats.yaml b/hasura/metadata/databases/default/tables/public_ratings_stats.yaml index 0f2c2403..361b65a6 100644 --- a/hasura/metadata/databases/default/tables/public_ratings_stats.yaml +++ b/hasura/metadata/databases/default/tables/public_ratings_stats.yaml @@ -1,18 +1,18 @@ table: - name: ratings_stats schema: public + name: ratings_stats select_permissions: -- permission: - columns: - - average - - bp - - community - - created_at - - development - - infrastructure - - ratings_cntr - - transparency - - trustiness - - updated_at - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average + - bp + - community + - created_at + - development + - infrastructure + - ratings_cntr + - transparency + - trustiness + - updated_at + filter: {} diff --git a/hasura/metadata/databases/default/tables/public_total_ratings_stats.yaml b/hasura/metadata/databases/default/tables/public_total_ratings_stats.yaml index f34eeea6..d6608e58 100644 --- a/hasura/metadata/databases/default/tables/public_total_ratings_stats.yaml +++ b/hasura/metadata/databases/default/tables/public_total_ratings_stats.yaml @@ -1,3 +1,3 @@ table: - name: total_ratings_stats schema: public + name: total_ratings_stats diff --git a/hasura/metadata/databases/default/tables/public_user_ratings.yaml b/hasura/metadata/databases/default/tables/public_user_ratings.yaml index d7d7edb3..715567ea 100644 --- a/hasura/metadata/databases/default/tables/public_user_ratings.yaml +++ b/hasura/metadata/databases/default/tables/public_user_ratings.yaml @@ -1,29 +1,30 @@ table: - name: user_ratings schema: public + name: user_ratings select_permissions: -- permission: - columns: - - bp - - id - - id_bc_rating - - ratings - - tx_data - - user - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - bp + - id + - id_bc_rating + - ratings + - tx_data + - user + filter: {} update_permissions: -- permission: - check: {} - columns: - - bp - - id_bc_rating - - ratings - - tx_data - - user - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - bp + - id_bc_rating + - ratings + - tx_data + - user + filter: {} + check: {} delete_permissions: -- permission: - filter: {} - role: anonymous + - role: anonymous + permission: + backend_only: false + filter: {} diff --git a/hasura/metadata/graphql_schema_introspection.yaml b/hasura/metadata/graphql_schema_introspection.yaml new file mode 100644 index 00000000..61a4dcac --- /dev/null +++ b/hasura/metadata/graphql_schema_introspection.yaml @@ -0,0 +1 @@ +disabled_for_roles: [] diff --git a/hasura/metadata/network.yaml b/hasura/metadata/network.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/hasura/metadata/network.yaml @@ -0,0 +1 @@ +{} From 2e34eca03b1b9d0468f0f3e2fc85896612debbc1 Mon Sep 17 00:00:00 2001 From: Angelo Castro Gamboa <51149817+AngeloCG97@users.noreply.github.com> Date: Wed, 23 Nov 2022 08:40:43 -0600 Subject: [PATCH 3/5] feat(hapi): created eosrate stats api endpoint (#993) * fix(enviroment): change env value * fix(hasura): add permissions tables * fix(comments): fix comments section * fix(hyperion): fix codefactor issues * fix(hyperion): fix codefactor issues * fix(hasura): delete migration restriction * fix(hyperion): fix updater flows * feat(hapi): created eosrate stats api endpoint * fix(hapi): fix codefactor error --- .env.example | 1 + .../workflows/push-master-environment.yaml | 1 + .../workflows/push-staging-environment.yaml | 1 + docker-compose.yml | 1 + hapi/package.json | 2 + hapi/src/index.js | 25 +- hapi/src/routes/get-rates-stats.route.js | 39 + hapi/src/routes/index.js | 3 +- hapi/src/routes/ratebp.route.js | 3 +- hapi/src/services/get-rates-stats.service.js | 25 + .../rateproducer-logcomment.updater.js | 2 +- hapi/src/services/index.js | 4 +- hapi/yarn.lock | 665 ++++++++++++------ hasura/metadata/actions.yaml | 1 + hasura/metadata/allow_list.yaml | 4 +- hasura/metadata/query_collections.yaml | 11 +- hasura/metadata/rest_endpoints.yaml | 10 +- kubernetes/configmaps.yaml | 1 + kubernetes/cronjob.yaml | 2 + 19 files changed, 568 insertions(+), 233 deletions(-) create mode 100644 hapi/src/routes/get-rates-stats.route.js create mode 100644 hapi/src/services/get-rates-stats.service.js diff --git a/.env.example b/.env.example index e106cd82..19551ab0 100644 --- a/.env.example +++ b/.env.example @@ -19,6 +19,7 @@ HAPI_POSTGRES_SCHEMA=public HAPI_SERVER_PORT=9090 HAPI_SERVER_ADDRESS=0.0.0.0 HAPI_EOS_API_ENDPOINT=https://jungle.edenia.cloud +HAPI_VALID_USERS=[{"username": "username", "password": "password"}] HAPI_EOS_CHAIN_ID=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 HAPI_PROXY_CONTRACT=proxyaccount HAPI_RATING_CONTRACT=rateproducer diff --git a/.github/workflows/push-master-environment.yaml b/.github/workflows/push-master-environment.yaml index 2f8c808b..9865aeea 100644 --- a/.github/workflows/push-master-environment.yaml +++ b/.github/workflows/push-master-environment.yaml @@ -76,6 +76,7 @@ jobs: # hapi HAPI_SERVER_ADDRESS: 0.0.0.0 HAPI_SERVER_PORT: 9090 + HAPI_VALID_USERS: ${{secrets.HAPI_VALID_USERS}} HAPI_POSTGRES_USER: ${{ secrets.HAPI_POSTGRES_USER }} HAPI_POSTGRES_PASSWORD: ${{ secrets.HAPI_POSTGRES_PASSWORD }} HAPI_HASURA_URL: ${{ secrets.HAPI_HASURA_URL }} diff --git a/.github/workflows/push-staging-environment.yaml b/.github/workflows/push-staging-environment.yaml index 02387d26..0a614c9a 100644 --- a/.github/workflows/push-staging-environment.yaml +++ b/.github/workflows/push-staging-environment.yaml @@ -77,6 +77,7 @@ jobs: # hapi HAPI_SERVER_ADDRESS: 0.0.0.0 HAPI_SERVER_PORT: 9090 + HAPI_VALID_USERS: ${{secrets.HAPI_VALID_USERS}} HAPI_POSTGRES_USER: ${{ secrets.HAPI_POSTGRES_USER }} HAPI_POSTGRES_PASSWORD: ${{ secrets.HAPI_POSTGRES_PASSWORD }} HAPI_HASURA_URL: ${{ secrets.HAPI_HASURA_URL }} diff --git a/docker-compose.yml b/docker-compose.yml index 9422aaf6..ff06a8af 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,7 @@ services: environment: HAPI_SERVER_ADDRESS: "${HAPI_SERVER_ADDRESS}" HAPI_SERVER_PORT: "${HAPI_SERVER_PORT}" + HAPI_VALID_USERS: "${HAPI_VALID_USERS}" HAPI_POSTGRES_USER: "${HAPI_POSTGRES_USER}" HAPI_POSTGRES_PASSWORD: "${HAPI_POSTGRES_PASSWORD}" HAPI_POSTGRES_PORT: "${HAPI_POSTGRES_PORT}" diff --git a/hapi/package.json b/hapi/package.json index 240d8dc4..505cf065 100644 --- a/hapi/package.json +++ b/hapi/package.json @@ -17,9 +17,11 @@ "author": "EOS Costa Rica", "license": "MIT", "dependencies": { + "@hapi/basic": "^7.0.0", "@hapi/boom": "^10.0.0", "@hapi/hapi": "^20.1.5", "axios": "^0.26.1", + "bcrypt": "^5.1.0", "eosjs": "^22.1.0", "eosjs-api": "^7.0.4", "graphql": "^16.3.0", diff --git a/hapi/src/index.js b/hapi/src/index.js index 0267be04..fd0691ec 100644 --- a/hapi/src/index.js +++ b/hapi/src/index.js @@ -1,11 +1,30 @@ 'use strict' -const { HAPI_SERVER_PORT, HAPI_SERVER_ADDRESS } = process.env +const { HAPI_SERVER_PORT, HAPI_SERVER_ADDRESS, HAPI_VALID_USERS } = process.env const Hapi = require('@hapi/hapi') +const Bcrypt = require('bcrypt') const routes = require('./routes') const { workerService } = require('./services') +const validate = async (request, username, password) => { + if (!HAPI_VALID_USERS) return { credentials: null, isValid: false } + + const users = JSON.parse(HAPI_VALID_USERS || '[]') + const user = users.find(user => user.username === username) + + if (!user) { + return { credentials: null, isValid: false } + } + + const saltRounds = 10 + const hashPassword = await Bcrypt.hash(user.password, saltRounds) + const isValid = await Bcrypt.compare(password, hashPassword) + const credentials = { id: users.indexOf(user), name: user.username } + + return { isValid, credentials } +} + const init = async () => { const server = Hapi.server({ port: HAPI_SERVER_PORT, @@ -16,6 +35,10 @@ const init = async () => { debug: { request: ['handler'] } }) + await server.register(require('@hapi/basic')) + + server.auth.strategy('simple', 'basic', { validate }) + server.route(routes) await server.start() diff --git a/hapi/src/routes/get-rates-stats.route.js b/hapi/src/routes/get-rates-stats.route.js new file mode 100644 index 00000000..710e1e7c --- /dev/null +++ b/hapi/src/routes/get-rates-stats.route.js @@ -0,0 +1,39 @@ +const Boom = require('@hapi/boom') +const Joi = require('joi') + +const { ratesStatsService } = require('../services') + +module.exports = { + method: 'POST', + path: '/get-rates-stats', + handler: async ({ payload: { input } }) => { + try { + if (!input) throw new Error('Invalid get-rates-stats Input') + + const whereCondition = input?.ratesStatsInput?.bps + ? { _in: input?.ratesStatsInput?.bps } + : { _nin: [] } + const bpsStats = await ratesStatsService.getRatesStats({ + where: { bp: whereCondition } + }) + + return { bpsStats } + } catch (error) { + console.error('get-rates-stats', error) + + return Boom.badRequest(error.message) + } + }, + options: { + validate: { + payload: Joi.object({ + input: Joi.object({ + ratesStatsInput: Joi.object({ + bps: Joi.array().items(Joi.string().required()).optional() + }).required() + }).required() + }).options({ stripUnknown: true }) + }, + auth: 'simple' + } +} diff --git a/hapi/src/routes/index.js b/hapi/src/routes/index.js index 1a4e6dc7..4a0eb080 100644 --- a/hapi/src/routes/index.js +++ b/hapi/src/routes/index.js @@ -1,4 +1,5 @@ const healthzRoute = require('./healthz.route') const ratebpRoute = require('./ratebp.route') +const getRatesStats = require('./get-rates-stats.route') -module.exports = [healthzRoute, ratebpRoute] +module.exports = [healthzRoute, ratebpRoute, getRatesStats] diff --git a/hapi/src/routes/ratebp.route.js b/hapi/src/routes/ratebp.route.js index 2137a442..b1fcdab3 100644 --- a/hapi/src/routes/ratebp.route.js +++ b/hapi/src/routes/ratebp.route.js @@ -52,6 +52,7 @@ module.exports = { }).required() }).required() }).options({ stripUnknown: true }) - } + }, + auth: false } } diff --git a/hapi/src/services/get-rates-stats.service.js b/hapi/src/services/get-rates-stats.service.js new file mode 100644 index 00000000..27ddc15f --- /dev/null +++ b/hapi/src/services/get-rates-stats.service.js @@ -0,0 +1,25 @@ +const { hasuraUtil } = require('../utils') + +const getRatesStats = async ({ where }) => { + const query = ` + query ($where: total_ratings_stats_bool_exp!) { + total_ratings_stats(where: $where) { + average + bp + community + development + infrastructure + ratings_cntr + transparency + trustiness + } + } + ` + const data = await hasuraUtil.instance.request(query, { where }) + + return data?.total_ratings_stats || [{}] +} + +module.exports = { + getRatesStats +} diff --git a/hapi/src/services/hyperion/updaters/rateproducer-logcomment.updater.js b/hapi/src/services/hyperion/updaters/rateproducer-logcomment.updater.js index d280f13f..2a936132 100644 --- a/hapi/src/services/hyperion/updaters/rateproducer-logcomment.updater.js +++ b/hapi/src/services/hyperion/updaters/rateproducer-logcomment.updater.js @@ -38,7 +38,7 @@ module.exports = { }) const [blockProducer] = userRatings.rows.filter( - ({ id }) => id == ratingId + ({ id }) => id === ratingId ) await save({ diff --git a/hapi/src/services/index.js b/hapi/src/services/index.js index b981ece9..0fc297c4 100644 --- a/hapi/src/services/index.js +++ b/hapi/src/services/index.js @@ -1,5 +1,7 @@ const workerService = require('./worker.service') +const ratesStatsService = require('./get-rates-stats.service') module.exports = { - workerService + workerService, + ratesStatsService } diff --git a/hapi/yarn.lock b/hapi/yarn.lock index eca9a3ce..b9b86979 100644 --- a/hapi/yarn.lock +++ b/hapi/yarn.lock @@ -16,12 +16,12 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" - integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== +"@babel/generator@^7.20.1": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" + integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.2" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -30,13 +30,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -52,10 +52,15 @@ dependencies: "@babel/types" "^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/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" @@ -66,42 +71,43 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.18.6", "@babel/parser@^7.18.9", "@babel/parser@^7.3.1": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" - integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== +"@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.3.1": + version "7.20.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" + integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== -"@babel/template@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== +"@babel/template@^7.18.10": + 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.2.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" - integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" + integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.9" + "@babel/generator" "^7.20.1" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@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.20.1" + "@babel/types" "^7.20.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" - integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" + integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@eslint/eslintrc@^0.3.0": @@ -157,6 +163,14 @@ dependencies: "@hapi/hoek" "9.x.x" +"@hapi/basic@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@hapi/basic/-/basic-7.0.0.tgz#5aa5ed7e702b05bc7068206240c1a84ca9266ea5" + integrity sha512-5DkM9a0c4PVLUPeM/d1OyMoVGo6Qix76gQJj3kfSOZH95yJDtY+yWKzvqTD27HXys5elrNMg3+v/z784Te1Uaw== + dependencies: + "@hapi/boom" "^10.0.0" + "@hapi/hoek" "^10.0.0" + "@hapi/boom@9.x.x", "@hapi/boom@^9.1.0": version "9.1.4" resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" @@ -262,7 +276,7 @@ "@hapi/hoek" "9.x.x" "@hapi/validate" "1.x.x" -"@hapi/hoek@10.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== @@ -420,7 +434,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== @@ -430,18 +444,33 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 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.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" "@sideway/address@^4.1.3": version "4.1.4" @@ -485,6 +514,13 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -504,9 +540,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: 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== + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -577,13 +613,26 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -597,14 +646,14 @@ array-find-index@^1.0.1: integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== array-includes@^3.1.3, array-includes@^3.1.4, array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" is-string "^1.0.7" array-union@^1.0.1: @@ -620,23 +669,23 @@ array-uniq@^1.0.1: integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.flat@^1.2.4, 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" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.2.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" arrify@^1.0.0: @@ -651,10 +700,10 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-options@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/assert-options/-/assert-options-0.7.0.tgz#82c27618d9c0baa5e9da8ef607ee261a44ed6e5e" - integrity sha512-7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ== +assert-options@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/assert-options/-/assert-options-0.8.0.tgz#cf71882534d23d3027945bc7462e20d3d3682380" + integrity sha512-qSELrEaEz4sGwTs4Qh+swQkjiHAysC4rot21+jzXU86dJzNG+FDqBzyS3ohSoTRf4ZLA3FSwxQdiuNl5NXUtvA== assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" @@ -708,6 +757,14 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bcrypt@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.1.0.tgz#bbb27665dbc400480a524d8991ac7434e8529e17" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -833,9 +890,9 @@ camelcase@^5.0.0: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== caseless@~0.12.0: version "0.12.0" @@ -885,6 +942,11 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -980,6 +1042,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + colorette@^2.0.16: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" @@ -1029,6 +1096,11 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" @@ -1040,9 +1112,9 @@ core-util-is@1.0.2: integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== 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== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -1114,6 +1186,13 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + 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@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1128,13 +1207,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: - 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" - decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1168,6 +1240,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + depcheck@0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.8.3.tgz#430aad19016820cfe7b0766ee561817fcdea5835" @@ -1199,6 +1276,11 @@ deps-regex@^0.1.4: resolved "https://registry.yarnpkg.com/deps-regex/-/deps-regex-0.1.4.tgz#518667b7691460a5e7e0a341be76eb7ce8090184" integrity sha512-3tzwGYogSJi8HoG93R5x9NrdefZQOXgHgGih/7eivloOq6yC6O+yoFxZnkgP661twvfILONfoKRdF9GQOGx2RA== +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -1317,31 +1399,32 @@ error-stack-parser@^1.3.3: dependencies: stackframe "^0.3.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" @@ -1396,12 +1479,11 @@ eslint-import-resolver-node@^0.3.6: resolve "^1.20.0" eslint-module-utils@^2.6.2, 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" @@ -1820,14 +1902,14 @@ flat-cache@^3.0.4: rimraf "^3.0.2" 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.14.8: - 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== + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== forever-agent@~0.6.1: version "0.6.1" @@ -1852,6 +1934,13 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1887,15 +1976,30 @@ 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== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -2030,9 +2134,9 @@ globals@^12.1.0: type-fest "^0.8.1" globals@^13.6.0, globals@^13.9.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== + version "13.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.18.0.tgz#fb224daeeb2bb7d254cd2c640f003528b8d0c1dc" + integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== dependencies: type-fest "^0.20.2" @@ -2080,9 +2184,9 @@ graphql-request@^4.1.0: form-data "^3.0.0" graphql@^16.3.0: - version "16.5.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.5.0.tgz#41b5c1182eaac7f3d47164fb247f61e4dfb69c85" - integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== har-schema@^2.0.0: version "2.0.0" @@ -2126,7 +2230,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== @@ -2138,6 +2242,11 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2197,6 +2306,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -2343,10 +2460,10 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^1.0.10, is-ci@^1.0.8: version "1.2.1" @@ -2356,9 +2473,9 @@ is-ci@^1.0.10, is-ci@^1.0.8: ci-info "^1.5.0" is-core-module@^2.6.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== + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" @@ -2641,12 +2758,12 @@ jsprim@^1.2.2: verror "1.10.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" latest-version@^3.0.0: version "3.1.0" @@ -2848,6 +2965,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -2929,9 +3053,29 @@ minimalistic-crypto-utils@^1.0.1: brace-expansion "^1.1.7" minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, 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== + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass@^3.0.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.29.1: version "2.29.4" @@ -2975,6 +3119,11 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-addon-api@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501" + integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== + node-emoji@^1.0.3: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -3005,14 +3154,14 @@ node-sass-tilde-importer@^1.0.2: find-parent-dir "^0.3.0" nodemon@^2.0.4: - version "2.0.19" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.19.tgz#cac175f74b9cb8b57e770d47841995eebe4488bd" - integrity sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A== + version "2.0.20" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== dependencies: chokidar "^3.5.2" debug "^3.2.7" ignore-by-default "^1.0.1" - minimatch "^3.0.4" + minimatch "^3.1.2" pstree.remy "^1.1.8" semver "^5.7.1" simple-update-notifier "^1.0.7" @@ -3020,6 +3169,13 @@ nodemon@^2.0.4: touch "^3.1.0" undefsafe "^2.0.5" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -3095,6 +3251,16 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -3110,7 +3276,7 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.0, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -3120,50 +3286,50 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 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== +object.assign@^4.1.3, object.assign@^4.1.4: + 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.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" object.fromentries@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" object.hasown@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" object.values@^1.1.4, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -3410,10 +3576,10 @@ pg-connection-string@^2.5.0: resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== -pg-cursor@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/pg-cursor/-/pg-cursor-2.7.3.tgz#4a03ae132b47982d66dba48ef1acd3d25144bdbe" - integrity sha512-vmjXRMD4jZK/oHaaYk6clTypgHNlzCCAqyLCO5d/UeI42egJVE5H4ZfZWACub3jzkHUXXyvibH207zAJg9iBOw== +pg-cursor@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/pg-cursor/-/pg-cursor-2.7.4.tgz#e53ac24c7d227b1c3b5a7c5d4b4c64148c13d040" + integrity sha512-CNWwOzTTZ9QvphoOL+Wg/7pmVr9GnAWBjPbuK2FRclrB4A/WRO/ssCJ9BlkzIGmmofK2M/LyokNHgsLSn+fMHA== pg-int8@1.0.1: version "1.0.1" @@ -3425,18 +3591,18 @@ pg-minify@1.6.2: resolved "https://registry.yarnpkg.com/pg-minify/-/pg-minify-1.6.2.tgz#055acfe862cfca3ca0a529020846b0f308d68e70" integrity sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg== -pg-pool@^3.4.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@^10.10.2: - version "10.11.1" - resolved "https://registry.yarnpkg.com/pg-promise/-/pg-promise-10.11.1.tgz#62348927da636aa74d2c20510cfbd12e85f104ae" - integrity sha512-HAv32WSKf2m2RqHerW5RmANn/mcXIwWXbg/gOfGQcoS0SE+8iBi3Jj4JmoR4PNzSEozo/y/npy4e6F16psOItw== + version "10.15.2" + resolved "https://registry.yarnpkg.com/pg-promise/-/pg-promise-10.15.2.tgz#0b12dc85577558a75958dabfa29068ca32ca2673" + integrity sha512-UtaNn/WLEvvtqFB8DGjXMP6ZMvqhRlF0kVI8gMdd9xPUkcAofKXz4s2I2VlxkbQM3p/C1ttuiQzFc4JiClSagg== dependencies: - assert-options "0.7.0" - pg "8.7.1" + assert-options "0.8.0" + pg "8.8.0" pg-minify "1.6.2" spex "3.2.0" @@ -3446,11 +3612,11 @@ pg-protocol@^1.5.0: integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== pg-query-stream@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/pg-query-stream/-/pg-query-stream-4.2.3.tgz#58a68816939bc740ed0207bd194ffd5e7f6ce2d2" - integrity sha512-3mrOzffAoGGi2EqsfTdKanKn444ZB+E+Gbz/EJL3rd0thlXD3kb3ZBrwX42bRnQssrEd7/kVFM1FbiIMSQ5ung== + version "4.2.4" + resolved "https://registry.yarnpkg.com/pg-query-stream/-/pg-query-stream-4.2.4.tgz#0e7ef4235586f8925b1d534d2d79b601b7cd9323" + integrity sha512-Et3gTrWn4C2rj4LVioNq1QDd7aH/3mSJcBm79jZALv3wopvx9bWENtbOYZbHQ6KM+IkfFxs0JF1ZLjMDJ9/N6Q== dependencies: - pg-cursor "^2.7.3" + pg-cursor "^2.7.4" pg-types@^2.1.0: version "2.2.0" @@ -3463,15 +3629,15 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz#9ea9d1ec225980c36f94e181d009ab9f4ce4c471" - integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA== +pg@8.8.0: + 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.4.1" + pg-pool "^3.5.2" pg-protocol "^1.5.0" pg-types "^2.1.0" pgpass "1.x" @@ -3699,6 +3865,15 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +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== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -3728,7 +3903,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +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" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -3899,17 +4074,26 @@ rx-lite@^3.1.2: integrity sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ== rxjs@^7.5.1: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "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" @@ -3937,15 +4121,15 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.1.0: +semver@^6.0.0, semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== +semver@^7.2.1, semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -4049,9 +4233,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== spex@3.2.0: version "3.2.0" @@ -4131,6 +4315,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + 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== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -4148,46 +4341,44 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - 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== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string.prototype.matchall@^4.0.5: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + regexp.prototype.flags "^1.4.3" side-channel "^1.0.4" string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" stringify-object@^3.3.0: version "3.3.0" @@ -4290,9 +4481,9 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== table@^6.0.4, 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== + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -4300,6 +4491,18 @@ table@^6.0.4, table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" +tar@^6.1.11: + version "6.1.12" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" + integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -4375,9 +4578,9 @@ tsconfig-paths@^3.11.0, tsconfig-paths@^3.14.1: strip-bom "^3.0.0" tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== tunnel-agent@^0.6.0: version "0.6.0" @@ -4480,6 +4683,11 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -4508,9 +4716,9 @@ verror@1.10.0: extsprintf "^1.2.0" vue-template-compiler@^2.6.10: - version "2.7.7" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.7.tgz#9ac85dc50216d01fb5e2fb16b6c3f5ed11b4b104" - integrity sha512-vxOsjWhvDPyMW7QwXPecNmTNwKyXiF+j4KjBFjDxYPuY0xvqCT5o9WrapVItR/Nrh0XThfBaL19kXFSNYtbKmw== + version "2.7.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== dependencies: de-indent "^1.0.2" he "^1.2.0" @@ -4581,6 +4789,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" diff --git a/hasura/metadata/actions.yaml b/hasura/metadata/actions.yaml index 1dbbf497..6ea1e1d7 100644 --- a/hasura/metadata/actions.yaml +++ b/hasura/metadata/actions.yaml @@ -3,6 +3,7 @@ actions: definition: kind: synchronous handler: '{{HASURA_GRAPHQL_ACTION_BASE_URL}}/get-rates-stats' + forward_client_headers: true - name: rateProducer definition: kind: synchronous diff --git a/hasura/metadata/allow_list.yaml b/hasura/metadata/allow_list.yaml index fe51488c..935c0794 100644 --- a/hasura/metadata/allow_list.yaml +++ b/hasura/metadata/allow_list.yaml @@ -1 +1,3 @@ -[] +- collection: allowed-queries + scope: + global: true diff --git a/hasura/metadata/query_collections.yaml b/hasura/metadata/query_collections.yaml index fe51488c..1835fe3f 100644 --- a/hasura/metadata/query_collections.yaml +++ b/hasura/metadata/query_collections.yaml @@ -1 +1,10 @@ -[] +- name: allowed-queries + definition: + queries: + - name: get-rates-stats + query: | + mutation getRatesStats ($ratesStatsInput: RatesStatsInput!) { + getRatesStats(ratesStatsInput: $ratesStatsInput) { + bpsStats + } + } diff --git a/hasura/metadata/rest_endpoints.yaml b/hasura/metadata/rest_endpoints.yaml index fe51488c..7ef10946 100644 --- a/hasura/metadata/rest_endpoints.yaml +++ b/hasura/metadata/rest_endpoints.yaml @@ -1 +1,9 @@ -[] +- definition: + query: + collection_name: allowed-queries + query_name: get-rates-stats + url: get-rates-stats + methods: + - POST + name: get-rates-stats + comment: null diff --git a/kubernetes/configmaps.yaml b/kubernetes/configmaps.yaml index 7d27b7a6..c0fcede7 100644 --- a/kubernetes/configmaps.yaml +++ b/kubernetes/configmaps.yaml @@ -26,6 +26,7 @@ data: HAPI_EOS_CHAIN_ID: "${HAPI_EOS_CHAIN_ID}" HAPI_SERVER_ADDRESS: "${HAPI_SERVER_ADDRESS}" HAPI_SERVER_PORT: "${HAPI_SERVER_PORT}" + HAPI_VALID_USERS: "${HAPI_VALID_USERS}" HAPI_PROXY_CONTRACT: "${HAPI_PROXY_CONTRACT}" HAPI_RATING_CONTRACT: "${HAPI_RATING_CONTRACT}" HAPI_HYPERION_API: "${HAPI_HYPERION_API}" diff --git a/kubernetes/cronjob.yaml b/kubernetes/cronjob.yaml index aa4a9219..27548085 100644 --- a/kubernetes/cronjob.yaml +++ b/kubernetes/cronjob.yaml @@ -38,6 +38,8 @@ spec: value: 0.0.0.0 - name: HAPI_SERVER_PORT value: "9090" + -name: HAPI_VALID_USERS + value: "${HAPI_VALID_USERS}" dnsConfig: options: - name: ndots From da8019baab1ac9af58bd28f55c05d1aa01e5d467 Mon Sep 17 00:00:00 2001 From: Angelo Castro Gamboa <51149817+AngeloCG97@users.noreply.github.com> Date: Thu, 24 Nov 2022 14:30:51 -0600 Subject: [PATCH 4/5] fix(webapp): added validation on bp profile page (#995) * fix(enviroment): change env value * fix(hasura): add permissions tables * fix(comments): fix comments section * fix(hyperion): fix codefactor issues * fix(hyperion): fix codefactor issues * fix(hasura): delete migration restriction * fix(hyperion): fix updater flows * feat(hapi): created eosrate stats api endpoint * fix(hapi): fix codefactor error * fix(webapp): added validation on bp profile page --- webapp/src/components/CommentCard/index.js | 39 +++++++++++----------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/webapp/src/components/CommentCard/index.js b/webapp/src/components/CommentCard/index.js index 98253b65..a57b8e43 100644 --- a/webapp/src/components/CommentCard/index.js +++ b/webapp/src/components/CommentCard/index.js @@ -213,27 +213,28 @@ const CommentCard = ({ producer = {} }) => { - {Object.entries(comment.user_ratings[0].ratings).map( - (param, index) => ( -
- - ( +
+ - {param[0]}: + + {param[0]}: + + + + {param[1]} - - - {param[1]} - -
- ) - )} +
+ ) + )}
From dd958889b524d0e9c7fdbe4848342bde84a51cd0 Mon Sep 17 00:00:00 2001 From: Angelo Castro Gamboa <51149817+AngeloCG97@users.noreply.github.com> Date: Mon, 28 Nov 2022 16:22:40 -0600 Subject: [PATCH 5/5] feat(hasura): added permissions to getRatesStats action (#997) * fix(enviroment): change env value * fix(hasura): add permissions tables * fix(comments): fix comments section * fix(hyperion): fix codefactor issues * fix(hyperion): fix codefactor issues * fix(hasura): delete migration restriction * fix(hyperion): fix updater flows * feat(hapi): created eosrate stats api endpoint * fix(hapi): fix codefactor error * fix(webapp): added validation on bp profile page * feat(hasura): added permissions to getRatesStats action --- .env.example | 2 +- hasura/metadata/actions.yaml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 19551ab0..2b0468c2 100644 --- a/.env.example +++ b/.env.example @@ -29,7 +29,7 @@ HAPI_HASURA_URL=http://hasura:8080/v1/graphql HAPI_HASURA_ADMIN_SECRET=myadminsecretkey # HASURA HASURA_GRAPHQL_DATABASE_URL=postgres://user:password@eosrate_postgres:5432/eosrate -HASURA_GRAPHQL_ADMIN_SECRET=hasurasecret +HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey HASURA_GRAPHQL_UNAUTHORIZED_ROLE=anonymous HASURA_GRAPHQL_ACTION_BASE_URL=http://hapi:9090 # WEBAPP diff --git a/hasura/metadata/actions.yaml b/hasura/metadata/actions.yaml index 6ea1e1d7..f3ea8328 100644 --- a/hasura/metadata/actions.yaml +++ b/hasura/metadata/actions.yaml @@ -4,6 +4,8 @@ actions: kind: synchronous handler: '{{HASURA_GRAPHQL_ACTION_BASE_URL}}/get-rates-stats' forward_client_headers: true + permissions: + - role: anonymous - name: rateProducer definition: kind: synchronous