From d566d68b35c75a372b55408ffb71dce4e1654011 Mon Sep 17 00:00:00 2001 From: Sameer Date: Thu, 8 Feb 2024 22:57:04 +0530 Subject: [PATCH] Fix transaction history report (#2021) * :hammer: Refactor code * :bug: Fix history export logic * :hammer: Cache and reuse publicKeys * :bug: Display all opening token balances * :hammer: Add failsafe to avoid infinite auto-rescheduling * :bug: Flatten metadata entries list * :bug: Fix normalizeTransactionFee method invocation * :bug: Remove cyclic dependency * :pencil: Add logs * :bug: Ensure no duplicate entries * :bug: No transaction fee entries for shared reward entries * :hammer: Add handling for legacy:reclaimLSK transaction * :hammer: Refactor code * :white_check_mark: Add unit tests * :bug: Add fallback to fetch necessary missing events * :arrow_up: Bump framework to v1.6.12 * :zap: Update lisk-service-framework dependency * :bug: Serialize BigInt to base 10 * :zap: Add handling for pos:reportMisbehavior transactions * :bug: Fix broken test * :white_check_mark: Add/fix unit tests * :hammer: Update test * :white_check_mark: Add tests * :hammer: Refactor code * :bug: Set proper param format * :wrench: Increase broker timeout to 10sec * :ok_hand: Apply review recommendations --------- Co-authored-by: nagdahimanshu --- .../dist/lisk-service-framework-1.6.12.tgz | Bin 0 -> 71477 bytes framework/package.json | 2 +- framework/src/queue.js | 6 +- framework/yarn.lock | 260 ++-- services/blockchain-app-registry/config.js | 2 +- services/blockchain-app-registry/package.json | 2 +- services/blockchain-app-registry/yarn.lock | 289 ++-- .../blockchain-connector/methods/token.js | 6 +- services/blockchain-connector/package.json | 2 +- .../blockchain-connector/shared/sdk/index.js | 4 +- .../blockchain-connector/shared/sdk/token.js | 6 +- services/blockchain-connector/yarn.lock | 273 ++-- services/blockchain-coordinator/package.json | 2 +- services/blockchain-coordinator/yarn.lock | 273 ++-- services/blockchain-indexer/package.json | 2 +- .../blockchain-indexer/shared/constants.js | 1 + .../shared/indexer/utils/events.js | 17 +- services/blockchain-indexer/yarn.lock | 273 ++-- services/export/app.js | 2 +- services/export/config.js | 2 +- services/export/package.json | 3 +- services/export/shared/excelFieldMappings.js | 9 +- services/export/shared/helpers/account.js | 110 ++ services/export/shared/helpers/array.js | 22 + services/export/shared/helpers/chain.js | 105 +- services/export/shared/helpers/constants.js | 34 + services/export/shared/helpers/event.js | 33 + services/export/shared/helpers/file.js | 29 +- .../export/shared/{ => helpers}/requestAll.js | 0 services/export/shared/helpers/time.js | 42 + services/export/shared/helpers/transaction.js | 52 +- services/export/shared/regex.js | 2 +- services/export/shared/transactionsExport.js | 1231 +++++++++++------ services/export/tests/constants/blocks.js | 35 + services/export/tests/constants/csvExport.js | 1 + services/export/tests/constants/events.js | 218 +++ .../export/tests/constants/transaction.js | 146 ++ .../functional/transactionsExport.test.js | 166 --- .../tests/unit/shared/helpers/account.test.js | 230 ++- .../tests/unit/shared/helpers/array.test.js | 55 + .../tests/unit/shared/helpers/chain.test.js | 36 +- .../tests/unit/shared/helpers/event.test.js | 47 + .../tests/unit/shared/helpers/file.test.js | 222 ++- .../shared/{ => helpers}/requestAll.test.js | 6 +- .../tests/unit/shared/helpers/time.test.js | 69 +- .../unit/shared/helpers/transaction.test.js | 19 +- .../unit/shared/transactionsExport.test.js | 994 +++++++------ services/export/yarn.lock | 273 ++-- services/fee-estimator/package.json | 2 +- services/fee-estimator/yarn.lock | 273 ++-- services/gateway/package.json | 2 +- services/gateway/yarn.lock | 267 ++-- services/market/package.json | 2 +- services/market/yarn.lock | 283 ++-- services/template/config.js | 2 +- services/template/package.json | 2 +- services/template/yarn.lock | 255 ++-- services/transaction-statistics/package.json | 2 +- services/transaction-statistics/yarn.lock | 273 ++-- tests/yarn.lock | 718 +++++----- yarn.lock | 281 ++-- 61 files changed, 4953 insertions(+), 3022 deletions(-) create mode 100644 framework/dist/lisk-service-framework-1.6.12.tgz create mode 100644 services/export/shared/helpers/array.js create mode 100644 services/export/shared/helpers/event.js rename services/export/shared/{ => helpers}/requestAll.js (100%) create mode 100644 services/export/tests/constants/events.js delete mode 100644 services/export/tests/functional/transactionsExport.test.js create mode 100644 services/export/tests/unit/shared/helpers/array.test.js create mode 100644 services/export/tests/unit/shared/helpers/event.test.js rename services/export/tests/unit/shared/{ => helpers}/requestAll.test.js (94%) diff --git a/framework/dist/lisk-service-framework-1.6.12.tgz b/framework/dist/lisk-service-framework-1.6.12.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b30f259d585f52d63a427eade4e6bc45336fd1e1 GIT binary patch literal 71477 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 literal 0 HcmV?d00001 diff --git a/framework/package.json b/framework/package.json index 14b674844b..ab76bcf4cf 100644 --- a/framework/package.json +++ b/framework/package.json @@ -1,6 +1,6 @@ { "name": "lisk-service-framework", - "version": "1.6.11", + "version": "1.6.12", "description": "Lisk Service Framework", "keywords": [ "lisk", diff --git a/framework/src/queue.js b/framework/src/queue.js index b8d241f05b..8ab33ad8c7 100644 --- a/framework/src/queue.js +++ b/framework/src/queue.js @@ -68,7 +68,11 @@ const queueInstance = ( }); queue.on('failed', (job, err) => { - logger.warn(`${job.name} job failed with error: ${err.message}`); + const validationMessageString = + err.message === 'Parameters validation error!' + ? String('\n\t- ').concat(err.data.map(e => e.message).join('\n\t- ')) + : ''; + logger.warn(`${job.name} job failed with error: ${err.message}${validationMessageString}`); logger.debug(`${job.name} job failed with error:\n${err.stack}`); }); diff --git a/framework/yarn.lock b/framework/yarn.lock index 22c0a64572..acb99c7118 100644 --- a/framework/yarn.lock +++ b/framework/yarn.lock @@ -561,9 +561,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -669,9 +669,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -763,13 +763,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -783,16 +783,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -800,10 +801,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -997,14 +998,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1027,9 +1029,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1249,14 +1251,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1323,9 +1326,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1361,9 +1364,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -1388,7 +1391,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1438,6 +1441,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1462,9 +1470,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -1678,11 +1686,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -1704,12 +1713,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -1789,12 +1798,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -1880,11 +1889,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -1930,14 +1939,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2052,12 +2060,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -2861,9 +2869,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -2893,9 +2901,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -2990,7 +2998,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3212,14 +3220,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -3408,12 +3416,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -3427,9 +3435,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -3467,14 +3475,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -3505,13 +3514,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -3863,13 +3873,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -4007,16 +4017,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/blockchain-app-registry/config.js b/services/blockchain-app-registry/config.js index 73a04a3124..d78957b70d 100644 --- a/services/blockchain-app-registry/config.js +++ b/services/blockchain-app-registry/config.js @@ -19,7 +19,7 @@ const config = {}; // Moleculer broker config config.transporter = process.env.SERVICE_BROKER || 'redis://lisk:password@127.0.0.1:6379/0'; -config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 5; // in seconds +config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 10; // in seconds /** * External endpoints diff --git a/services/blockchain-app-registry/package.json b/services/blockchain-app-registry/package.json index 8fde18d00e..fd14408fb2 100644 --- a/services/blockchain-app-registry/package.json +++ b/services/blockchain-app-registry/package.json @@ -32,7 +32,7 @@ "dependencies": { "bluebird": "^3.7.2", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "lodash": "^4.17.21", "node-fetch": "^2.6.1", "octokit": "^3.1.2", diff --git a/services/blockchain-app-registry/yarn.lock b/services/blockchain-app-registry/yarn.lock index fe11cc4033..b3aaa10f95 100644 --- a/services/blockchain-app-registry/yarn.lock +++ b/services/blockchain-app-registry/yarn.lock @@ -550,9 +550,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -770,19 +770,19 @@ resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-4.0.0.tgz#d1697930ba3d8e6b6d0f8a2c996bb440d2e1df1b" integrity sha512-M8mwmTXp+VeolOS/kfRvsDdW+IO0qJ8kYodM/sAysk093q6ApgmBXwK1ZlUvAwXVrp/YVHp6aArj4auAxUAOFw== -"@octokit/webhooks-types@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-7.1.0.tgz#d533dea253416e02dd6c2bfab25e533295bd5d3f" - integrity sha512-y92CpG4kFFtBBjni8LHoV12IegJ+KFxLgKRengrVjKmGE5XMeCuGvlfRe75lTRrgXaG6XIWJlFpIDTlkoJsU8w== +"@octokit/webhooks-types@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-7.3.2.tgz#c4a5049b28a6d4b0c397f4db48a9112fef579ba0" + integrity sha512-JWOoOgtWTFnTSAamPXXyjTY5/apttvNxF+vPBnwdSu5cj5snrd7FO0fyw4+wTXy8fHduq626JjhO+TwCyyA6vA== "@octokit/webhooks@^12.0.4": - version "12.0.11" - resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-12.0.11.tgz#4c7887390f506518420b96821c6304187ce59db1" - integrity sha512-YEQOb7v0TZ662nh5jsbY1CMgJyMajCEagKrHWC30LTCwCtnuIrLtEpE20vq4AtH0SuZI90+PtV66/Bnnw0jkvg== + version "12.1.0" + resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-12.1.0.tgz#8b7f70a7340250de370fb2a61e16147e7169232a" + integrity sha512-ppqZ1DyHhZklpeuxnx7WRn5S5WRxjHYt/fQlr33JNvbK+Dpaz6XFD5Zw/AFri62J4NH3jKreHeQFQkLouMqdog== dependencies: "@octokit/request-error" "^5.0.0" "@octokit/webhooks-methods" "^4.0.0" - "@octokit/webhooks-types" "7.1.0" + "@octokit/webhooks-types" "7.3.2" aggregate-error "^3.1.0" "@sinclair/typebox@^0.27.8": @@ -810,9 +810,9 @@ integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== "@types/aws-lambda@^8.10.83": - version "8.10.132" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.132.tgz#13a72a5486168edab1199c24282e612282507565" - integrity sha512-fXP6xK+f0Ir9dt4Tp2NjMmu/nOcQb8e0c8b7z7ql1xo/r4h/uJjGe+1aeH11yhbWU2wakJ5i4gtQAviu6h8OOg== + version "8.10.133" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.133.tgz#cc21de2edc623f0fd9a5290674c4b9f30971bc58" + integrity sha512-sr852MAL/79rjDelXP6ZuJ6GwOvXIRrFAoC8a+w91mZ5XR71CuzSgo1d0+pG1qgfPhjFgaibu7SWaoC5BA7pyQ== "@types/babel__core@^7.1.14": version "7.20.5" @@ -898,9 +898,9 @@ "@types/node" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -993,13 +993,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1013,16 +1013,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -1030,10 +1031,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1252,14 +1253,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1282,9 +1284,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1514,14 +1516,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1590,9 +1593,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1628,9 +1631,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -1655,7 +1658,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1705,6 +1708,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1729,9 +1737,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -1940,11 +1948,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -1966,12 +1975,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2051,12 +2060,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -2147,11 +2156,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2197,14 +2206,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2319,12 +2327,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -2899,9 +2907,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -2911,6 +2919,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3176,9 +3185,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3208,9 +3217,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -3305,7 +3314,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3524,14 +3533,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -3710,12 +3719,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -3729,9 +3738,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -3769,14 +3778,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -3807,13 +3817,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4177,13 +4188,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -4334,16 +4345,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/blockchain-connector/methods/token.js b/services/blockchain-connector/methods/token.js index d5efec1931..14ff7caa49 100644 --- a/services/blockchain-connector/methods/token.js +++ b/services/blockchain-connector/methods/token.js @@ -22,7 +22,7 @@ const { getTokenBalances, getTokenInitializationFees, tokenHasEscrowAccount, - getTokenBalanceAtGenesis, + getTokenBalancesAtGenesis, } = require('../shared/sdk'); module.exports = [ @@ -86,8 +86,8 @@ module.exports = [ params: {}, }, { - name: 'getTokenBalanceAtGenesis', - controller: async ({ address }) => getTokenBalanceAtGenesis(address), + name: 'getTokenBalancesAtGenesis', + controller: async ({ address }) => getTokenBalancesAtGenesis(address), params: { address: { optional: false, type: 'string' }, }, diff --git a/services/blockchain-connector/package.json b/services/blockchain-connector/package.json index 689dadfa63..2152e25a44 100644 --- a/services/blockchain-connector/package.json +++ b/services/blockchain-connector/package.json @@ -40,7 +40,7 @@ "bluebird": "^3.7.2", "ioredis": "^5.3.2", "knex": "^2.4.0", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "moment": "^2.29.4", "signals": "^1.0.0", "tar": "^6.1.11" diff --git a/services/blockchain-connector/shared/sdk/index.js b/services/blockchain-connector/shared/sdk/index.js index 47ca1c5d80..447c1c64b9 100644 --- a/services/blockchain-connector/shared/sdk/index.js +++ b/services/blockchain-connector/shared/sdk/index.js @@ -65,7 +65,7 @@ const { getTotalSupply, getTokenInitializationFees, updateTokenInfo, - getTokenBalanceAtGenesis, + getTokenBalancesAtGenesis, } = require('./token'); const { @@ -188,7 +188,7 @@ module.exports = { getSupportedTokens, getTotalSupply, getTokenInitializationFees, - getTokenBalanceAtGenesis, + getTokenBalancesAtGenesis, // PoS getAllPosValidators, diff --git a/services/blockchain-connector/shared/sdk/token.js b/services/blockchain-connector/shared/sdk/token.js index 5db1ddbbcd..5996687a12 100644 --- a/services/blockchain-connector/shared/sdk/token.js +++ b/services/blockchain-connector/shared/sdk/token.js @@ -75,7 +75,7 @@ const updateTokenInfo = async () => { totalSupply = await getTotalSupply(true); }; -const getTokenBalanceAtGenesis = async address => { +const getTokenBalancesAtGenesis = async address => { const MODULE_TOKEN_SUBSTORE_USER = 'userSubstore'; const tokenModuleGenesisAssets = await getGenesisAssetByModule({ @@ -84,7 +84,7 @@ const getTokenBalanceAtGenesis = async address => { }); const balancesAtGenesis = tokenModuleGenesisAssets[MODULE_TOKEN_SUBSTORE_USER]; - const balancesByAddress = balancesAtGenesis.find(e => e.address === address); + const balancesByAddress = balancesAtGenesis.filter(e => e.address === address); return balancesByAddress; }; @@ -99,5 +99,5 @@ module.exports = { getTotalSupply, getTokenInitializationFees, updateTokenInfo, - getTokenBalanceAtGenesis, + getTokenBalancesAtGenesis, }; diff --git a/services/blockchain-connector/yarn.lock b/services/blockchain-connector/yarn.lock index d3fe110ef6..3f4e798d7e 100644 --- a/services/blockchain-connector/yarn.lock +++ b/services/blockchain-connector/yarn.lock @@ -80,9 +80,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1258,9 +1258,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -1494,9 +1494,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1668,13 +1668,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1688,16 +1688,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" assert-plus@^1.0.0: @@ -1710,10 +1711,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -2034,14 +2035,15 @@ cacache@^16.1.0: tar "^6.1.11" unique-filename "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -2064,9 +2066,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2354,14 +2356,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2423,9 +2426,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -2468,9 +2471,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -2505,7 +2508,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -2555,6 +2558,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -2579,9 +2587,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2827,11 +2835,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2853,12 +2862,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2949,12 +2958,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has-unicode@^2.0.1: version "2.0.1" @@ -3098,11 +3107,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -3161,14 +3170,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -3288,12 +3296,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0: version "1.0.0" @@ -3929,9 +3937,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3941,6 +3949,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -4253,9 +4262,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -4285,9 +4294,9 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -4421,7 +4430,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -4665,14 +4674,14 @@ promise-retry@^2.0.1: retry "^0.12.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -4949,12 +4958,12 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4975,9 +4984,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -5020,14 +5029,15 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -5066,13 +5076,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -5485,13 +5496,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -5685,16 +5696,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1, which@^2.0.2: version "2.0.2" diff --git a/services/blockchain-coordinator/package.json b/services/blockchain-coordinator/package.json index d7194da223..df28a7d58f 100644 --- a/services/blockchain-coordinator/package.json +++ b/services/blockchain-coordinator/package.json @@ -32,7 +32,7 @@ "bluebird": "^3.7.2", "bull": "^4.8.1", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz" + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz" }, "devDependencies": { "@babel/preset-env": "^7.14.0", diff --git a/services/blockchain-coordinator/yarn.lock b/services/blockchain-coordinator/yarn.lock index aa276c9667..ce8c8f6bbf 100644 --- a/services/blockchain-coordinator/yarn.lock +++ b/services/blockchain-coordinator/yarn.lock @@ -80,9 +80,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1253,9 +1253,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -1391,9 +1391,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1485,13 +1485,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1505,16 +1505,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -1522,10 +1523,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1793,14 +1794,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1823,9 +1825,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2064,14 +2066,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2128,9 +2131,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -2166,9 +2169,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -2193,7 +2196,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -2243,6 +2246,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -2267,9 +2275,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2476,11 +2484,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2502,12 +2511,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2587,12 +2596,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -2678,11 +2687,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2728,14 +2737,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2850,12 +2858,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0: version "1.0.0" @@ -3466,9 +3474,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3478,6 +3486,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3688,9 +3697,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3741,9 +3750,9 @@ msgpackr@^1.10.1: msgpackr-extract "^3.0.2" mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -3843,7 +3852,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -4046,14 +4055,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -4275,12 +4284,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4294,9 +4303,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -4334,14 +4343,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -4372,13 +4382,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4730,13 +4741,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -4904,16 +4915,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/blockchain-indexer/package.json b/services/blockchain-indexer/package.json index 01bff0592a..e77a1eec5e 100644 --- a/services/blockchain-indexer/package.json +++ b/services/blockchain-indexer/package.json @@ -39,7 +39,7 @@ "bull": "^4.8.1", "camelcase": "^6.3.0", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "lodash": "^4.17.21", "require-all": "^3.0.0" }, diff --git a/services/blockchain-indexer/shared/constants.js b/services/blockchain-indexer/shared/constants.js index 95c9d58fe8..2e19ab06ad 100644 --- a/services/blockchain-indexer/shared/constants.js +++ b/services/blockchain-indexer/shared/constants.js @@ -180,6 +180,7 @@ const EVENT = Object.freeze({ UNLOCK: 'unlock', COMMAND_EXECUTION_RESULT: 'commandExecutionResult', REWARD_MINTED: 'rewardMinted', + REWARDS_ASSIGNED: 'rewardsAssigned', CCM_SEND_SUCCESS: 'ccmSendSuccess', CCM_SENT_FAILED: 'ccmSentFailed', }); diff --git a/services/blockchain-indexer/shared/indexer/utils/events.js b/services/blockchain-indexer/shared/indexer/utils/events.js index 8da50dd665..43ffdbea09 100644 --- a/services/blockchain-indexer/shared/indexer/utils/events.js +++ b/services/blockchain-indexer/shared/indexer/utils/events.js @@ -27,7 +27,13 @@ const { }, } = require('lisk-service-framework'); -const { getGenesisHeight, EVENT, EVENT_TOPIC_PREFIX, LENGTH_ID } = require('../../constants'); +const { + getGenesisHeight, + EVENT, + EVENT_TOPIC_PREFIX, + LENGTH_ID, + MODULE, +} = require('../../constants'); const config = require('../../../config'); const eventsTableSchema = require('../../database/schema/events'); @@ -99,6 +105,15 @@ const getEventsInfoToIndex = (block, events) => { eventsInfoToIndex.eventTopicsInfo.push(eventTopicAdditionalInfo); } }); + + // Add validator address as a topic for rewardsAssigned events, required for export microservice + if (event.module === MODULE.POS && event.name === EVENT.REWARDS_ASSIGNED) { + const eventTopicAdditionalInfo = { + eventID: event.id, + topic: event.data.validatorAddress, + }; + eventsInfoToIndex.eventTopicsInfo.push(eventTopicAdditionalInfo); + } }); return eventsInfoToIndex; diff --git a/services/blockchain-indexer/yarn.lock b/services/blockchain-indexer/yarn.lock index cdc05a0564..509fe1d1ca 100644 --- a/services/blockchain-indexer/yarn.lock +++ b/services/blockchain-indexer/yarn.lock @@ -80,9 +80,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1253,9 +1253,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -1476,9 +1476,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1602,13 +1602,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1622,16 +1622,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -1639,10 +1640,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1925,14 +1926,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1955,9 +1957,9 @@ camelcase@^6.2.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2227,14 +2229,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2291,9 +2294,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -2329,9 +2332,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -2356,7 +2359,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -2406,6 +2409,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -2430,9 +2438,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2644,11 +2652,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2670,12 +2679,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2755,12 +2764,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" @@ -2860,11 +2869,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2910,14 +2919,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -3032,12 +3040,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0: version "1.0.0" @@ -3653,9 +3661,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3665,6 +3673,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3889,9 +3898,9 @@ moleculer@^0.14.17, moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3942,9 +3951,9 @@ msgpackr@^1.10.1: msgpackr-extract "^3.0.2" mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -4044,7 +4053,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -4258,14 +4267,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -4512,12 +4521,12 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4538,9 +4547,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -4578,14 +4587,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -4624,13 +4634,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4982,13 +4993,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -5168,16 +5179,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/export/app.js b/services/export/app.js index 28c5122dea..f664cbcc2d 100644 --- a/services/export/app.js +++ b/services/export/app.js @@ -22,7 +22,7 @@ LoggerConfig(config.log); const packageJson = require('./package.json'); const { setAppContext } = require('./shared/helpers'); -const { getTokenBalancesAtGenesis } = require('./shared/transactionsExport'); +const { getTokenBalancesAtGenesis } = require('./shared/helpers/account'); const logger = Logger(); diff --git a/services/export/config.js b/services/export/config.js index 51ac232980..414f4bc9ce 100644 --- a/services/export/config.js +++ b/services/export/config.js @@ -19,7 +19,7 @@ const config = {}; // Moleculer broker config config.transporter = process.env.SERVICE_BROKER || 'redis://lisk:password@127.0.0.1:6379/0'; -config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 5; // in seconds +config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 10; // in seconds /** * External endpoints diff --git a/services/export/package.json b/services/export/package.json index a0ab517da2..896e5edaa7 100644 --- a/services/export/package.json +++ b/services/export/package.json @@ -37,7 +37,8 @@ "exceljs": "^4.3.0", "ioredis": "^5.3.2", "json2csv": "^5.0.6", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", + "lodash": "^4.17.21", "minio": "^7.0.21", "moment": "^2.29.4", "moment-range": "^4.0.2", diff --git a/services/export/shared/excelFieldMappings.js b/services/export/shared/excelFieldMappings.js index 2117337871..00af5fb279 100644 --- a/services/export/shared/excelFieldMappings.js +++ b/services/export/shared/excelFieldMappings.js @@ -17,22 +17,16 @@ const transactionMappings = [ { header: 'Date', key: 'date' }, { header: 'Time', key: 'time' }, { header: 'Block Height', key: 'blockHeight' }, - { header: 'Block Reward', key: 'blockReward' }, - { header: 'Block Reward Token ID', key: 'rewardTokenID' }, { header: 'Transaction ID', key: 'transactionID' }, { header: 'Module:Command', key: 'moduleCommand' }, { header: 'Transaction Fee', key: 'fee' }, { header: 'Transaction Fee Token ID', key: 'txFeeTokenID' }, { header: 'Amount', key: 'amount' }, { header: 'Amount Token ID', key: 'amountTokenID' }, - { header: 'Message Fee', key: 'messageFee' }, - { header: 'Message Fee Token ID', key: 'messageFeeTokenID' }, { header: 'Sender Address', key: 'senderAddress' }, { header: 'Sender Public Key', key: 'senderPublicKey' }, { header: 'Recipient Address', key: 'recipientAddress' }, { header: 'Recipient Public Key', key: 'recipientPublicKey' }, - { header: 'Reward Amount', key: 'rewardAmount' }, - { header: 'Reward Token ID', key: 'rewardTokenID' }, { header: 'Note', key: 'note' }, { header: 'Sending Chain ID', key: 'sendingChainID' }, { header: 'Receiving Chain ID', key: 'receivingChainID' }, @@ -41,8 +35,9 @@ const transactionMappings = [ const metadataMappings = [ { header: 'Chain ID', key: 'chainID' }, { header: 'Chain Name', key: 'chainName' }, - { header: 'Opening Balance', key: 'openingBalance' }, { header: 'Note', key: 'note' }, + { header: 'v4 Opening Balance', key: 'openingBalanceAmount' }, + { header: 'Token ID', key: 'tokenID' }, ]; module.exports = { diff --git a/services/export/shared/helpers/account.js b/services/export/shared/helpers/account.js index 8ba1cd6f60..4f8cd92292 100644 --- a/services/export/shared/helpers/account.js +++ b/services/export/shared/helpers/account.js @@ -13,6 +13,7 @@ * Removal or modification of this copyright notice is prohibited. * */ +const { Logger, CacheLRU } = require('lisk-service-framework'); const { utils: { hash }, address: { getLisk32AddressFromPublicKey: getLisk32AddressFromPublicKeyHelper }, @@ -20,6 +21,17 @@ const { } = require('@liskhq/lisk-cryptography'); const { PUBLIC_KEY, ADDRESS_LISK32 } = require('../regex'); +const { requestAllCustom } = require('./requestAll'); +const { MODULE, MODULE_SUB_STORE } = require('./constants'); +const { requestConnector, requestIndexer } = require('./request'); + +const logger = Logger(); + +const NUM_MAX_CACHE_PUBLICKEY = 100000; // Approx. 30% of mainnet addresses at migration +const publicKeyCache = CacheLRU('publicKey', { max: NUM_MAX_CACHE_PUBLICKEY }); + +let tokenModuleData; +let loadingAssets = false; const validateLisk32Address = address => typeof address === 'string' && ADDRESS_LISK32.test(address); @@ -32,9 +44,107 @@ const getLisk32AddressFromPublicKey = publicKey => const getLegacyAddress = publicKey => getFirstEightBytesReversed(hash(Buffer.from(publicKey, 'hex'))).toString('hex'); +const getAddressFromParams = params => + params.address || getLisk32AddressFromPublicKey(params.publicKey); + +const checkIfAccountExists = async address => { + const response = await requestIndexer('token.account.exists', { address }); + const { isExists } = response.data; + return isExists; +}; + +const checkIfAccountHasTransactions = async address => { + // Using getTransactions from chain.js introduces cyclic dependency + const response = await requestIndexer('transactions', { address, limit: 1 }); + return !!response.data.length; +}; + +const checkIfAccountIsValidator = async address => { + const response = await requestIndexer('pos.validators', { address, sort: 'commission:asc' }); + return !!response.data.length; +}; + +const getTokenBalancesAtGenesis = async () => { + if (!tokenModuleData && !loadingAssets) { + loadingAssets = true; // loadingAssets avoids repeated invocations + + // Asynchronously fetch the token module genesis assets and cache locally + logger.info('Attempting to fetch and cache the token module genesis assets.'); + requestConnector('getGenesisAssetsLength', { + module: MODULE.TOKEN, + subStore: MODULE_SUB_STORE.TOKEN.USER, + }) + .then(async genesisBlockAssetsLength => { + const totalUsers = genesisBlockAssetsLength[MODULE.TOKEN][MODULE_SUB_STORE.TOKEN.USER]; + + const response = await requestAllCustom( + requestConnector, + 'getGenesisAssetByModule', + { module: MODULE.TOKEN, subStore: MODULE_SUB_STORE.TOKEN.USER, limit: 1000 }, + totalUsers, + ); + + tokenModuleData = response[MODULE_SUB_STORE.TOKEN.USER]; + loadingAssets = false; + logger.info('Successfully cached token module genesis assets.'); + }) + .catch(err => { + logger.warn( + `Failed to fetch token module genesis assets. Will retry later.\nError: ${err.message}`, + ); + logger.debug(err.stack); + + loadingAssets = false; + }); + } + + return tokenModuleData; +}; + +const getOpeningBalances = async address => { + const balancesAtGenesis = await getTokenBalancesAtGenesis(); + const balancesByAddress = balancesAtGenesis + ? balancesAtGenesis.filter(e => e.address === address) + : await requestConnector('getTokenBalancesAtGenesis', { address }); + + const openingBalances = balancesByAddress.map(e => { + const { tokenID, availableBalance, lockedBalances } = e; + const totalLockedBalance = lockedBalances.reduce( + (total, balInfo) => total + BigInt(balInfo.amount), + BigInt('0'), + ); + + const amount = BigInt(availableBalance) + totalLockedBalance; + + return { tokenID, amount: amount.toString() }; + }); + + return openingBalances; +}; + +const cachePublicKey = async publicKey => { + const address = getLisk32AddressFromPublicKey(publicKey); + await publicKeyCache.set(address, publicKey); +}; + +const getPublicKeyByAddress = async address => { + const publicKey = await publicKeyCache.get(address); + if (publicKey) return publicKey; + + return null; +}; + module.exports = { validateLisk32Address, validatePublicKey, getLisk32AddressFromPublicKey, getLegacyAddress, + getAddressFromParams, + checkIfAccountExists, + checkIfAccountHasTransactions, + checkIfAccountIsValidator, + getTokenBalancesAtGenesis, + getOpeningBalances, + cachePublicKey, + getPublicKeyByAddress, }; diff --git a/services/export/shared/helpers/array.js b/services/export/shared/helpers/array.js new file mode 100644 index 0000000000..9f0d9640f4 --- /dev/null +++ b/services/export/shared/helpers/array.js @@ -0,0 +1,22 @@ +/* + * LiskHQ/lisk-service + * Copyright © 2024 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +const _ = require('lodash'); + +const dropDuplicatesDeep = arr => arr.filter((v, i, a) => a.findIndex(t => _.isEqual(v, t)) === i); + +module.exports = { + dropDuplicatesDeep, +}; diff --git a/services/export/shared/helpers/chain.js b/services/export/shared/helpers/chain.js index 9fa5629d81..8be37da5ec 100644 --- a/services/export/shared/helpers/chain.js +++ b/services/export/shared/helpers/chain.js @@ -13,10 +13,14 @@ * Removal or modification of this copyright notice is prohibited. * */ +const { requestAllStandard } = require('./requestAll'); const { MODULE, COMMAND } = require('./constants'); -const { requestIndexer } = require('./request'); +const { getAddressFromParams } = require('./account'); +const { requestConnector, requestIndexer } = require('./request'); let networkStatus; +let feeTokenID; +let posTokenID; const getNetworkStatus = async () => { if (!networkStatus) { @@ -45,15 +49,114 @@ const getUniqueChainIDs = async txs => { return Array.from(chainIDs); }; +const resolveChainIDs = (tx, currentChainID) => { + if ( + tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER}` || + tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER_CROSS_CHAIN}` || + tx.isIncomingCrossChainTransferTransaction + ) { + const sendingChainID = tx.sendingChainID || currentChainID; + const receivingChainID = resolveReceivingChainID(tx, currentChainID); + + return { + sendingChainID, + receivingChainID, + }; + } + + return { + sendingChainID: currentChainID, + receivingChainID: currentChainID, + }; +}; + const getBlocks = async params => requestIndexer('blocks', params); const getTransactions = async params => requestIndexer('transactions', params); +const getEvents = async params => + requestIndexer('events', { sort: 'height:asc', order: 'index:asc', ...params }); + +const getAllBlocksInAsc = async params => { + const totalBlocks = ( + await getBlocks({ + generatorAddress: params.address, + timestamp: params.timestamp, + limit: 1, + }) + ).meta.total; + + const blocks = await requestAllStandard( + getBlocks, + { + generatorAddress: getAddressFromParams(params), + timestamp: params.timestamp, + sort: 'height:asc', + }, + totalBlocks, + ); + + return blocks; +}; + +const getAllTransactionsInAsc = async params => { + const totalTransactions = ( + await getTransactions({ + address: params.address, + timestamp: params.timestamp, + limit: 1, + }) + ).meta.total; + + const transactions = await requestAllStandard( + getTransactions, + { + address: getAddressFromParams(params), + timestamp: params.timestamp, + sort: 'height:asc', + order: 'index:asc', + }, + totalTransactions, + ); + + return transactions; +}; + +const getAllEventsInAsc = async params => { + const totalEvents = (await getEvents({ ...params, limit: 1 })).meta.total; + const events = await requestAllStandard(getEvents, params, totalEvents); + return events; +}; + +const getFeeTokenID = async () => { + if (!feeTokenID) { + feeTokenID = await requestConnector('getFeeTokenID'); + } + + return feeTokenID; +}; + +const getPosTokenID = async () => { + if (!posTokenID) { + const posModuleConstants = await requestConnector('getPosConstants'); + posTokenID = posModuleConstants.posTokenID; + } + + return posTokenID; +}; + module.exports = { getCurrentChainID, resolveReceivingChainID, getNetworkStatus, getUniqueChainIDs, + resolveChainIDs, getBlocks, getTransactions, + getEvents, + getAllBlocksInAsc, + getAllTransactionsInAsc, + getAllEventsInAsc, + getFeeTokenID, + getPosTokenID, }; diff --git a/services/export/shared/helpers/constants.js b/services/export/shared/helpers/constants.js index 048720297a..3d11555b83 100644 --- a/services/export/shared/helpers/constants.js +++ b/services/export/shared/helpers/constants.js @@ -14,9 +14,13 @@ * */ const MODULE = Object.freeze({ + DYNAMIC_REWARD: 'dynamicReward', + REWARD: 'reward', TOKEN: 'token', LEGACY: 'legacy', POS: 'pos', + FEE: 'fee', + INTEROPERABILITY: 'interoperability', }); const COMMAND = Object.freeze({ @@ -25,9 +29,27 @@ const COMMAND = Object.freeze({ RECLAIM_LSK: 'reclaimLSK', }); +const TRANSACTION_STATUS = Object.freeze({ + SUCCESSFUL: 'successful', + FAILED: 'failed', +}); + const EVENT = Object.freeze({ + LOCK: 'lock', + MINT: 'mint', CCM_TRANSFER: 'ccmTransfer', + CCM_PROCESSED: 'ccmProcessed', + CCM_SEND_SUCCESS: 'ccmSendSuccess', + CCM_SENT_FAILED: 'ccmSentFailed', + REWARD_MINTED: 'rewardMinted', REWARDS_ASSIGNED: 'rewardsAssigned', + GENERATOR_FEE_PROCESSED: 'generatorFeeProcessed', + RELAYER_FEE_PROCESSED: 'relayerFeeProcessed', + BEFORE_CCC_EXECUTION: 'beforeCCCExecution', + TRANSFER: 'transfer', + TRANSFER_CROSS_CHAIN: 'transferCrossChain', + ACCOUNT_RECLAIMED: 'accountReclaimed', + VALIDATOR_PUNISHED: 'validatorPunished', }); const MODULE_SUB_STORE = Object.freeze({ @@ -42,16 +64,28 @@ const MODULE_SUB_STORE = Object.freeze({ const LENGTH_BYTE_ID = 32; const LENGTH_ID = LENGTH_BYTE_ID * 2; // Each byte is represented with 2 nibbles +const LENGTH_BYTE_DEFAULT_TOPIC = 1; +const LENGTH_DEFAULT_TOPIC = LENGTH_BYTE_DEFAULT_TOPIC * 2; // Each byte is represented with 2 nibbles + const EVENT_TOPIC_PREFIX = Object.freeze({ TX_ID: '04', CCM_ID: '05', }); +const STATUS = Object.freeze({ + EVENT_CCM_TRANSFER_RESULT: { + SUCCESSFUL: 0, + }, +}); + module.exports = { MODULE, COMMAND, + TRANSACTION_STATUS, EVENT, MODULE_SUB_STORE, LENGTH_ID, EVENT_TOPIC_PREFIX, + LENGTH_DEFAULT_TOPIC, + STATUS, }; diff --git a/services/export/shared/helpers/event.js b/services/export/shared/helpers/event.js new file mode 100644 index 0000000000..ff963d3ade --- /dev/null +++ b/services/export/shared/helpers/event.js @@ -0,0 +1,33 @@ +/* + * LiskHQ/lisk-service + * Copyright © 2024 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +const { EVENT_TOPIC_PREFIX, LENGTH_ID } = require('./constants'); + +const getTransactionIDFromTopic0 = topic0 => + topic0.startsWith(EVENT_TOPIC_PREFIX.TX_ID) && + topic0.length === EVENT_TOPIC_PREFIX.TX_ID.length + LENGTH_ID + ? topic0.slice(EVENT_TOPIC_PREFIX.TX_ID.length) + : null; + +const getCcmIDFromTopic0 = topic0 => + topic0.startsWith(EVENT_TOPIC_PREFIX.CCM_ID) && + topic0.length === EVENT_TOPIC_PREFIX.CCM_ID.length + LENGTH_ID + ? topic0.slice(EVENT_TOPIC_PREFIX.CCM_ID.length) + : null; + +module.exports = { + getTransactionIDFromTopic0, + getCcmIDFromTopic0, +}; diff --git a/services/export/shared/helpers/file.js b/services/export/shared/helpers/file.js index 2df90374a4..bd899893bb 100644 --- a/services/export/shared/helpers/file.js +++ b/services/export/shared/helpers/file.js @@ -23,7 +23,10 @@ const { Exceptions: { ValidationException }, } = require('lisk-service-framework'); -const { getDaysInMilliseconds } = require('./time'); +const config = require('../../config'); + +const { getAddressFromParams } = require('./account'); +const { getDaysInMilliseconds, standardizeIntervalFromParams } = require('./time'); const logger = Logger(); @@ -69,6 +72,26 @@ const purge = async (dirPath, days) => { const init = async params => mkdir(params.dirPath); +const getPartialFilenameFromParams = async (params, day) => { + const address = getAddressFromParams(params); + const filename = `${address}_${day}.json`; + return filename; +}; + +const getExcelFilenameFromParams = async (params, chainID) => { + const address = getAddressFromParams(params); + const [from, to] = (await standardizeIntervalFromParams(params)).split(':'); + + const filename = `transactions_${chainID}_${address}_${from}_${to}.xlsx`; + return filename; +}; + +const getExcelFileUrlFromParams = async (params, chainID) => { + const filename = await getExcelFilenameFromParams(params, chainID); + const url = `${config.excel.baseURL}?filename=${filename}`; + return url; +}; + module.exports = { init, write, @@ -79,4 +102,8 @@ module.exports = { fileExists, isFile, isFilePathInDirectory, + + getPartialFilenameFromParams, + getExcelFilenameFromParams, + getExcelFileUrlFromParams, }; diff --git a/services/export/shared/requestAll.js b/services/export/shared/helpers/requestAll.js similarity index 100% rename from services/export/shared/requestAll.js rename to services/export/shared/helpers/requestAll.js diff --git a/services/export/shared/helpers/time.js b/services/export/shared/helpers/time.js index 238024d9ab..f892d0dcc3 100644 --- a/services/export/shared/helpers/time.js +++ b/services/export/shared/helpers/time.js @@ -15,11 +15,19 @@ */ const moment = require('moment'); +const { + Exceptions: { ValidationException }, +} = require('lisk-service-framework'); + const config = require('../../config'); +const { getNetworkStatus, getBlocks } = require('./chain'); + const DATE_FORMAT = config.excel.dateFormat; const TIME_FORMAT = config.excel.timeFormat; +let defaultStartDate; + const getToday = () => moment().format(DATE_FORMAT); const DAY_IN_MILLISECS = moment().endOf('day').valueOf() - moment().startOf('day').valueOf() + 1; @@ -37,9 +45,43 @@ const timeFromTimestamp = timestamp => { return dateTime.utcOffset(0).format(TIME_FORMAT); }; +const getDefaultStartDate = async () => { + if (!defaultStartDate) { + const { + data: { genesisHeight }, + } = await getNetworkStatus(); + const { + data: [block], + } = await getBlocks({ height: genesisHeight }); + defaultStartDate = moment(block.timestamp * 1000).format(DATE_FORMAT); + } + + return defaultStartDate; +}; + +const standardizeIntervalFromParams = async ({ interval }) => { + let from; + let to; + if (interval && interval.includes(':')) { + [from, to] = interval.split(':'); + if (moment(to, DATE_FORMAT).diff(moment(from, DATE_FORMAT)) < 0) { + throw new ValidationException(`Invalid interval supplied: ${interval}.`); + } + } else if (interval) { + from = interval; + to = getToday(); + } else { + from = await getDefaultStartDate(); + to = getToday(); + } + return `${from}:${to}`; +}; + module.exports = { getToday, getDaysInMilliseconds, dateFromTimestamp, timeFromTimestamp, + getDefaultStartDate, + standardizeIntervalFromParams, }; diff --git a/services/export/shared/helpers/transaction.js b/services/export/shared/helpers/transaction.js index adb838c762..bd48b69889 100644 --- a/services/export/shared/helpers/transaction.js +++ b/services/export/shared/helpers/transaction.js @@ -13,38 +13,59 @@ * Removal or modification of this copyright notice is prohibited. * */ -const { MODULE, COMMAND } = require('./constants'); +const { MODULE, COMMAND, TRANSACTION_STATUS } = require('./constants'); -const normalizeTransactionAmount = (address, tx) => { - if (!('amount' in tx.params)) return String(0); +const normalizeTransactionAmount = (address, tx, currentChainID) => { + // Amount normalization is only done for token:transfer & token:transferCrossChain transaction types only + if ( + ![ + `${MODULE.TOKEN}:${COMMAND.TRANSFER}`, + `${MODULE.TOKEN}:${COMMAND.TRANSFER_CROSS_CHAIN}`, + ].includes(tx.moduleCommand) || + tx.executionStatus !== TRANSACTION_STATUS.SUCCESSFUL + ) { + return null; + } + + const amount = BigInt(tx.params.amount); + + // Always a deduction for a successful token:transferCrossChain transaction + if (tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER_CROSS_CHAIN}`) { + const sign = tx.params.receivingChainID !== currentChainID ? BigInt('-1') : BigInt('1'); + return (sign * amount).toString(); + } - const isReclaim = tx.moduleCommand === `${MODULE.LEGACY}:${COMMAND.RECLAIM_LSK}`; const isTokenTransfer = tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER}`; - const isSender = address === tx.sender.address; const isRecipient = isTokenTransfer && address === tx.params.recipientAddress; const isSelfTransfer = isTokenTransfer && tx.sender.address === tx.params.recipientAddress; - const { isIncomingCrossChainTransferTransaction } = tx; + const { isSelfTokenTransferCredit, isIncomingCrossChainTransferTransaction } = tx; - const { isSelfTokenTransferCredit } = tx; const sign = - (isReclaim && isSender) || (isTokenTransfer && isRecipient && !isSelfTransfer) || (isTokenTransfer && isRecipient && isSelfTransfer && isSelfTokenTransferCredit) || isIncomingCrossChainTransferTransaction - ? 1 - : -1; + ? BigInt('1') + : BigInt('-1'); // Outgoing amount reduces the balance - return String(sign * tx.params.amount); + return (sign * amount).toString(); }; -const normalizeTransactionFee = (address, tx) => { +const normalizeTransactionFee = (addressFromParams, tx) => { + const txFee = (BigInt('-1') * BigInt(tx.fee)).toString(); // Fee reduces the balance + const isTokenTransfer = tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER}`; - if (!isTokenTransfer) return tx.fee; + if (!isTokenTransfer) return txFee; const { isIncomingCrossChainTransferTransaction } = tx; - const isRecipient = address === tx.params.recipientAddress; - return isRecipient || isIncomingCrossChainTransferTransaction ? String(0) : tx.fee; + const isRecipient = addressFromParams === tx.params.recipientAddress; + return isRecipient || isIncomingCrossChainTransferTransaction ? BigInt('0').toString() : txFee; +}; + +const normalizeMessageFee = tx => { + const { messageFee } = tx.params; + const normalizedMessageFee = (BigInt('-1') * BigInt(messageFee)).toString(); // Message fee reduces the balance + return normalizedMessageFee; }; const checkIfSelfTokenTransfer = tx => { @@ -55,5 +76,6 @@ const checkIfSelfTokenTransfer = tx => { module.exports = { normalizeTransactionAmount, normalizeTransactionFee, + normalizeMessageFee, checkIfSelfTokenTransfer, }; diff --git a/services/export/shared/regex.js b/services/export/shared/regex.js index 470896586b..9fbfa8002a 100644 --- a/services/export/shared/regex.js +++ b/services/export/shared/regex.js @@ -22,7 +22,7 @@ const PARTIAL_FILENAME = const STANDARDIZED_INTERVAL = /^\b((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31)):((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31))\b$/g; const EXCEL_FILE_URL = - /^\/api\/v3\/export\/download\?filename=transactions_(lsk[a-hjkm-z2-9]{38})_((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31))_((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31))\.xlsx$/g; + /^\/api\/v3\/export\/download\?filename=transactions_([a-fA-F0-9]{8})_(lsk[a-hjkm-z2-9]{38})_((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31))_((\d{4})-((1[012])|(0?[1-9]))-(([012][1-9])|([123]0)|31))\.xlsx$/g; const MAINCHAIN_ID = /^[a-fA-F0-9]{2}000000$/; module.exports = { diff --git a/services/export/shared/transactionsExport.js b/services/export/shared/transactionsExport.js index c0117a3121..746463fc3b 100644 --- a/services/export/shared/transactionsExport.js +++ b/services/export/shared/transactionsExport.js @@ -34,175 +34,71 @@ const FilesystemCache = require('./csvCache'); const fields = require('./excelFieldMappings'); const { - getLisk32AddressFromPublicKey, getCurrentChainID, - resolveReceivingChainID, - getNetworkStatus, - MODULE, - COMMAND, - EVENT, - MODULE_SUB_STORE, - LENGTH_ID, - EVENT_TOPIC_PREFIX, - requestIndexer, - requestConnector, - requestAppRegistry, getToday, getDaysInMilliseconds, dateFromTimestamp, timeFromTimestamp, - normalizeTransactionAmount, - normalizeTransactionFee, - checkIfSelfTokenTransfer, getUniqueChainIDs, - getBlocks, - getTransactions, } = require('./helpers'); +const { dropDuplicatesDeep } = require('./helpers/array'); const { checkIfIndexReadyForInterval } = require('./helpers/ready'); -const { requestAllCustom, requestAllStandard } = require('./requestAll'); +const { standardizeIntervalFromParams } = require('./helpers/time'); +const { requestIndexer, requestAppRegistry } = require('./helpers/request'); +const { getTransactionIDFromTopic0, getCcmIDFromTopic0 } = require('./helpers/event'); +const { + MODULE, + EVENT, + LENGTH_ID, + EVENT_TOPIC_PREFIX, + LENGTH_DEFAULT_TOPIC, + COMMAND, + STATUS, +} = require('./helpers/constants'); +const { + resolveChainIDs, + getBlocks, + getTransactions, + getEvents, + getAllBlocksInAsc, + getAllTransactionsInAsc, + getAllEventsInAsc, + getFeeTokenID, + getPosTokenID, +} = require('./helpers/chain'); +const { + getAddressFromParams, + checkIfAccountExists, + checkIfAccountHasTransactions, + checkIfAccountIsValidator, + getOpeningBalances, + cachePublicKey, + getPublicKeyByAddress, +} = require('./helpers/account'); +const { + normalizeTransactionAmount, + normalizeTransactionFee, + normalizeMessageFee, + checkIfSelfTokenTransfer, +} = require('./helpers/transaction'); +const { + getPartialFilenameFromParams, + getExcelFilenameFromParams, + getExcelFileUrlFromParams, +} = require('./helpers/file'); const partials = FilesystemCache(config.cache.partials); const staticFiles = FilesystemCache(config.cache.exports); -const noTransactionsCache = CacheRedis('noTransactions', config.endpoints.volatileRedis); +const noHistoryCache = CacheRedis('noHistory', config.endpoints.volatileRedis); const jobScheduledCache = CacheRedis('jobScheduled', config.endpoints.volatileRedis); const DATE_FORMAT = config.excel.dateFormat; -const MAX_NUM_TRANSACTIONS = 10e5; const logger = Logger(); -let feeTokenID; -let defaultStartDate; -let tokenModuleData; -let loadingAssets = false; - -const getAddressFromParams = params => - params.address || getLisk32AddressFromPublicKey(params.publicKey); - -const getTransactionsInAsc = async params => - getTransactions({ - address: getAddressFromParams(params), - sort: 'timestamp:asc', - timestamp: params.timestamp, - limit: params.limit || 10, - offset: params.offset || 0, - }); - -const validateIfAccountExists = async address => { - const response = await requestIndexer('token.account.exists', { address }); - const { isExists } = response.data; - return isExists; -}; - -const getEvents = async params => - requestAllStandard(requestIndexer.bind(null, 'events'), { - topic: params.address, - timestamp: params.timestamp, - module: params.module, - name: params.name, - sort: 'timestamp:desc', - }); - -const getCrossChainTransferTransactionInfo = async params => { - const allEvents = await getEvents({ - ...params, - module: MODULE.TOKEN, - name: EVENT.CCM_TRANSFER, - }); - - const transactions = []; - const ccmTransferEvents = allEvents.filter( - event => event.data.recipientAddress === params.address, - ); - - for (let i = 0; i < ccmTransferEvents.length; i++) { - const ccmTransferEvent = ccmTransferEvents[i]; - const [ccuTransactionIDTopic] = ccmTransferEvent.topics; - const ccuTransactionID = - ccuTransactionIDTopic.length === EVENT_TOPIC_PREFIX.TX_ID.length + LENGTH_ID - ? ccuTransactionIDTopic.slice(EVENT_TOPIC_PREFIX.TX_ID.length) - : ccuTransactionIDTopic; - const [transaction] = (await requestIndexer('transactions', { id: ccuTransactionID })).data; - transactions.push({ - id: ccuTransactionID, - moduleCommand: transaction.moduleCommand, - sender: { address: ccmTransferEvent.data.senderAddress }, - block: ccmTransferEvent.block, - params: { - ...ccmTransferEvent.data, - data: `This entry was generated from '${EVENT.CCM_TRANSFER}' event emitted from the specified CCU transactionID.`, - }, - sendingChainID: transaction.params.sendingChainID, - isIncomingCrossChainTransferTransaction: true, - }); - } - - return transactions; -}; - -const getRewardAssignedInfo = async params => { - const allEvents = await getEvents({ - ...params, - module: MODULE.POS, - name: EVENT.REWARDS_ASSIGNED, - }); - - const transactions = []; - const rewardsAssignedEvents = allEvents.filter( - event => event.data.stakerAddress === params.address, - ); - - for (let i = 0; i < rewardsAssignedEvents.length; i++) { - const rewardsAssignedEvent = rewardsAssignedEvents[i]; - const [transactionIDTopic] = rewardsAssignedEvent.topics; - const transactionID = - transactionIDTopic.length === EVENT_TOPIC_PREFIX.TX_ID.length + LENGTH_ID - ? transactionIDTopic.slice(EVENT_TOPIC_PREFIX.TX_ID.length) - : transactionIDTopic; - const [transaction] = (await requestIndexer('transactions', { id: transactionID })).data; - - transactions.push({ - id: transactionID, - moduleCommand: transaction.moduleCommand, - sender: { address: rewardsAssignedEvent.data.stakerAddress }, - block: rewardsAssignedEvent.block, - params: { - ...rewardsAssignedEvent.data, - data: `This entry was generated from '${EVENT.REWARDS_ASSIGNED}' event emitted from the specified transactionID.`, - }, - rewardTokenID: rewardsAssignedEvent.data.tokenID, - rewardAmount: rewardsAssignedEvent.data.amount, - }); - } - - return transactions; -}; - -const getBlocksInAsc = async params => { - const totalBlocks = ( - await getBlocks({ - generatorAddress: params.address, - timestamp: params.timestamp, - limit: 1, - }) - ).meta.total; - - const blocks = await requestAllStandard( - getBlocks, - { - generatorAddress: params.address, - timestamp: params.timestamp, - sort: 'timestamp:desc', - }, - totalBlocks, - ); - - return blocks; -}; - -const normalizeBlocks = async blocks => { +const formatBlocks = async blocks => { const normalizedBlocks = blocks.map(block => ({ blockHeight: block.height, date: dateFromTimestamp(block.timestamp), @@ -216,7 +112,7 @@ const normalizeBlocks = async blocks => { const getBlockchainAppsMeta = async chainID => { try { const { - data: [appMetadata], + data: [appMetadata = {}], } = await requestAppRegistry('blockchain.apps.meta', { chainID }); return appMetadata; } catch (error) { @@ -227,194 +123,690 @@ const getBlockchainAppsMeta = async chainID => { return appMetadata; } }; + const getChainInfo = async chainID => { const { chainName } = await getBlockchainAppsMeta(chainID); return { chainID, chainName }; }; -const getTokenBalancesAtGenesis = async () => { - if (!tokenModuleData && !loadingAssets) { - loadingAssets = true; // loadingAssets avoids repeated invocations - - // Asynchronously fetch the token module genesis assets and cache locally - logger.info('Attempting to fetch and cache the token module genesis assets.'); - requestConnector('getGenesisAssetsLength', { - module: MODULE.TOKEN, - subStore: MODULE_SUB_STORE.TOKEN.USER, - }) - .then(async genesisBlockAssetsLength => { - const totalUsers = genesisBlockAssetsLength[MODULE.TOKEN][MODULE_SUB_STORE.TOKEN.USER]; - - const response = await requestAllCustom( - requestConnector, - 'getGenesisAssetByModule', - { module: MODULE.TOKEN, subStore: MODULE_SUB_STORE.TOKEN.USER, limit: 1000 }, - totalUsers, - ); - - tokenModuleData = response[MODULE_SUB_STORE.TOKEN.USER]; - loadingAssets = false; - logger.info('Successfully cached token module genesis assets.'); - }) - .catch(err => { - logger.warn( - `Failed to fetch token module genesis assets. Will retry later.\nError: ${err.message}`, - ); - logger.debug(err.stack); - - loadingAssets = false; - }); +const getMetadataEntries = async (params, chainID, currentChainID) => { + const chainInfo = await getChainInfo(chainID); + + if (chainID === currentChainID) { + const openingBalances = await getOpeningBalances(params.address); + const metadataEntries = openingBalances.map(e => ({ + ...chainInfo, + note: `Current Chain ID: ${currentChainID}`, + openingBalanceAmount: e.amount, + tokenID: e.tokenID, + })); + if (metadataEntries.length) return metadataEntries; } - return tokenModuleData; + return [ + { + ...chainInfo, + note: `Current Chain ID: ${currentChainID}`, + openingBalanceAmount: null, + tokenID: null, + }, + ]; }; -const getOpeningBalance = async address => { - const balancesAtGenesis = await getTokenBalancesAtGenesis(); - const accountInfo = balancesAtGenesis - ? balancesAtGenesis.find(e => e.address === address) - : await requestConnector('getTokenBalanceAtGenesis', { address }); +const formatTransaction = async (addressFromParams, tx, currentChainID, txFeeTokenID) => { + const { moduleCommand, senderPublicKey } = tx; - const openingBalance = accountInfo - ? { tokenID: accountInfo.tokenID, amount: accountInfo.availableBalance } - : null; + const date = dateFromTimestamp(tx.block.timestamp); + const time = timeFromTimestamp(tx.block.timestamp); + const amount = normalizeTransactionAmount(addressFromParams, tx, currentChainID); + const fee = normalizeTransactionFee(addressFromParams, tx); + const amountTokenID = tx.params.tokenID; + const senderAddress = tx.sender.address; + const recipientAddress = tx.params.recipientAddress || null; + const recipientPublicKey = + (tx.meta && tx.meta.recipient && tx.meta.recipient.publicKey) || + (await getPublicKeyByAddress(recipientAddress)); + const blockHeight = tx.block.height; + const note = tx.params.data || null; + const transactionID = tx.id; + const { sendingChainID, receivingChainID } = resolveChainIDs(tx, currentChainID); - return openingBalance; + if (senderPublicKey) cachePublicKey(senderPublicKey); + if (recipientPublicKey) cachePublicKey(recipientPublicKey); + + return { + date, + time, + blockHeight, + transactionID, + moduleCommand, + fee, + txFeeTokenID, + amount, + amountTokenID, + senderAddress, + senderPublicKey, + recipientAddress, + recipientPublicKey, + note, + sendingChainID, + receivingChainID, + }; }; -const getFeeTokenID = async () => { - if (!feeTokenID) { - feeTokenID = requestConnector('getFeeTokenID'); +const getGeneratorFeeEntries = async (addressFromParams, genFeeEvent, tx, block) => { + const entries = []; + + const senderPublicKey = tx.sender.publicKey; + cachePublicKey(senderPublicKey); + + const { senderAddress, generatorAddress } = genFeeEvent.data; + if (generatorAddress !== addressFromParams) { + return entries; } - return feeTokenID; + const generatorAmount = BigInt(genFeeEvent.data.generatorAmount); + if (generatorAmount !== BigInt('0')) { + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amount: generatorAmount.toString(), + amountTokenID: await getFeeTokenID(), + senderAddress, + senderPublicKey, + recipientAddress: generatorAddress, + recipientPublicKey: await getPublicKeyByAddress(generatorAddress), + note: 'Generator Fee', + sendingChainID: await getCurrentChainID(), + receivingChainID: await getCurrentChainID(), + }); + } + + return entries; }; -const getMetadata = async (params, chainID, currentChainID) => ({ - ...(await getChainInfo(chainID)), - note: `Current Chain ID: ${currentChainID}`, - openingBalance: await getOpeningBalance(params.address), -}); +const getOutgoingTransferCCEntries = async ( + addressFromParams, + transferCrossChainEvent, + ccmSendSuccessEvent, + tx, + block, +) => { + const entries = []; + + const currentChainID = await getCurrentChainID(); + + const senderPublicKey = tx.sender.publicKey; + const recipientPublicKey = tx.meta && tx.meta.recipient && tx.meta.recipient.publicKey; + + if (senderPublicKey) cachePublicKey(senderPublicKey); + if (recipientPublicKey) cachePublicKey(recipientPublicKey); + + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: tx.moduleCommand, + fee: normalizeTransactionFee(addressFromParams, tx), + txFeeTokenID: await getFeeTokenID(), + amount: normalizeTransactionAmount(addressFromParams, tx, currentChainID), + amountTokenID: tx.params.tokenID, + senderAddress: addressFromParams, + senderPublicKey, + recipientAddress: tx.params.recipientAddress, + recipientPublicKey: + recipientPublicKey || (await getPublicKeyByAddress(tx.params.recipientAddress)), + note: tx.params.data, + sendingChainID: currentChainID, + receivingChainID: transferCrossChainEvent.data.receivingChainID, + }); -const validateIfAccountHasTransactions = async address => { - const response = await getTransactions({ address, limit: 1 }); - return !!response.data.length; + if (ccmSendSuccessEvent) { + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amount: normalizeMessageFee(tx), + amountTokenID: tx.params.messageFeeTokenID, + senderAddress: tx.sender.address, + senderPublicKey, + recipientAddress: null, + recipientPublicKey: null, + note: 'Message Fee', + sendingChainID: await getCurrentChainID(), + receivingChainID: ccmSendSuccessEvent.data.ccm.receivingChainID, + }); + } + return entries; }; -const getDefaultStartDate = async () => { - if (!defaultStartDate) { - const { - data: { genesisHeight }, - } = await getNetworkStatus(); - const { - data: [block], - } = await getBlocks({ height: genesisHeight }); - defaultStartDate = moment(block.timestamp * 1000).format(DATE_FORMAT); +const getIncomingTransferCCEntries = async (addressFromParams, ccmTransferEvent, tx, block) => { + const entries = []; + + if (ccmTransferEvent.data.result !== STATUS.EVENT_CCM_TRANSFER_RESULT.SUCCESSFUL) { + return entries; } - return defaultStartDate; + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amount: ccmTransferEvent.data.amount, + amountTokenID: ccmTransferEvent.data.tokenID, + senderAddress: ccmTransferEvent.data.senderAddress, + senderPublicKey: await getPublicKeyByAddress(ccmTransferEvent.data.senderAddress), + recipientAddress: addressFromParams, + recipientPublicKey: await getPublicKeyByAddress(addressFromParams), + note: 'Incoming CCM from specified CCU transactionID', + sendingChainID: tx.params.sendingChainID, + receivingChainID: ccmTransferEvent.data.receivingChainID, + }); + + return entries; }; -const standardizeIntervalFromParams = async ({ interval }) => { - let from; - let to; - if (interval && interval.includes(':')) { - [from, to] = interval.split(':'); - if (moment(to, DATE_FORMAT).diff(moment(from, DATE_FORMAT)) < 0) { - throw new ValidationException(`Invalid interval supplied: ${interval}.`); - } - } else if (interval) { - from = interval; - to = getToday(); - } else { - from = await getDefaultStartDate(); - to = getToday(); - } - return `${from}:${to}`; +const getMessageFeeEntries = async ( + addressFromParams, + relayerFeeProcessedEvent, + tx, + block, + messageFeeTokenID, + sendingChainID, + receivingChainID, +) => { + const entries = []; + + const relayerAmount = BigInt(relayerFeeProcessedEvent.data.relayerAmount); + if (relayerAmount === BigInt('0')) return entries; + + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: tx.moduleCommand, + fee: null, + txFeeTokenID: null, + amount: relayerAmount.toString(), + amountTokenID: messageFeeTokenID, + senderAddress: null, + senderPublicKey: null, + recipientAddress: addressFromParams, + recipientPublicKey: await getPublicKeyByAddress(addressFromParams), + note: 'Message fee for relayer', + sendingChainID, + receivingChainID, + }); + + return entries; }; -const getPartialFilenameFromParams = async (params, day) => { - const address = getAddressFromParams(params); - const filename = `${address}_${day}.json`; - return filename; +const getLegacyAccountReclaimEntries = async ( + addressFromParams, + accountReclaimedEvent, + tx, + block, +) => { + const entries = []; + + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amount: accountReclaimedEvent.data.amount, + amountTokenID: await getFeeTokenID(), + senderAddress: null, + senderPublicKey: null, + recipientAddress: addressFromParams, + recipientPublicKey: await getPublicKeyByAddress(addressFromParams), + note: 'Legacy account balance reclaimed', + sendingChainID: await getCurrentChainID(), + receivingChainID: await getCurrentChainID(), + }); + + return entries; }; -const getExcelFilenameFromParams = async (params, chainID) => { - const address = getAddressFromParams(params); - const [from, to] = (await standardizeIntervalFromParams(params)).split(':'); +const getPomEntries = async ( + addressFromParams, + tokenTransferEvent, + validatorPunishedEvent, + tx, + block, +) => { + const entries = []; + + const isPunishedValidator = addressFromParams === validatorPunishedEvent.data.address; - const filename = `transactions_${chainID}_${address}_${from}_${to}.xlsx`; - return filename; + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amount: ( + BigInt(isPunishedValidator ? '-1' : '1') * BigInt(tokenTransferEvent.data.amount) + ).toString(), + amountTokenID: await getPosTokenID(), + senderAddress: tokenTransferEvent.data.senderAddress, + senderPublicKey: await getPublicKeyByAddress(tokenTransferEvent.data.senderAddress), + recipientAddress: tokenTransferEvent.data.recipientAddress, + recipientPublicKey: await getPublicKeyByAddress(tokenTransferEvent.data.recipientAddress), + note: isPunishedValidator + ? 'PoM punishment validator reward deduction' + : 'PoM successful report reward', + sendingChainID: await getCurrentChainID(), + receivingChainID: await getCurrentChainID(), + }); + + return entries; }; -const getExcelFileUrlFromParams = async (params, chainID) => { - const filename = await getExcelFilenameFromParams(params, chainID); - const url = `${config.excel.baseURL}?filename=${filename}`; - return url; +const getSharedRewardsAssignedEntries = async ( + addressFromParams, + rewardsAssignedEvent, + tx, + block, +) => { + const entries = []; + + const recipientPublicKey = tx.sender.publicKey; + if (recipientPublicKey) cachePublicKey(recipientPublicKey); + + const isStaker = addressFromParams === rewardsAssignedEvent.data.stakerAddress; + entries.push({ + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: tx.id, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + // because amount increases the staker balance and reduces the validator balance + amount: (BigInt(isStaker ? '1' : '-1') * BigInt(rewardsAssignedEvent.data.amount)).toString(), + amountTokenID: await getPosTokenID(), + senderAddress: rewardsAssignedEvent.data.validatorAddress, + senderPublicKey: await getPublicKeyByAddress(rewardsAssignedEvent.data.validatorAddress), + recipientAddress: rewardsAssignedEvent.data.stakerAddress, + recipientPublicKey, + note: 'Custodial shared rewards transfer to the staker', + sendingChainID: await getCurrentChainID(), + receivingChainID: await getCurrentChainID(), + }); + + return entries; }; -const resolveChainIDs = (tx, currentChainID) => { - if ( - tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER}` || - tx.moduleCommand === `${MODULE.TOKEN}:${COMMAND.TRANSFER_CROSS_CHAIN}` || - tx.isIncomingCrossChainTransferTransaction - ) { - const sendingChainID = tx.sendingChainID || currentChainID; - const receivingChainID = resolveReceivingChainID(tx, currentChainID); - - return { - sendingChainID, - receivingChainID, - }; +const getBlockRewardEntries = async ( + addressFromParams, + tokenMintedEvent, + tokenLockedEvent, + block, +) => { + const entries = []; + + const sharedReward = tokenLockedEvent ? BigInt(tokenLockedEvent.data.amount) : BigInt('0'); + const commissionAndSelfStakeReward = BigInt(tokenMintedEvent.data.amount) - sharedReward; + + const commonEntryProperties = { + date: dateFromTimestamp(block.timestamp), + time: timeFromTimestamp(block.timestamp), + blockHeight: block.height, + transactionID: null, + moduleCommand: null, + fee: null, + txFeeTokenID: null, + amountTokenID: await getPosTokenID(), + senderAddress: null, + senderPublicKey: null, + recipientAddress: addressFromParams, + recipientPublicKey: block.generator.publicKey, + sendingChainID: await getCurrentChainID(), + receivingChainID: await getCurrentChainID(), + }; + + cachePublicKey(block.generator.publicKey); + + entries.push({ + ...commonEntryProperties, + amount: commissionAndSelfStakeReward.toString(), + note: 'Block generation reward (commission + self-stake)', + }); + + if (tokenLockedEvent) { + entries.push({ + ...commonEntryProperties, + amount: sharedReward.toString(), + note: 'Block generation reward (custodial shared rewards locked)', + }); } - return {}; + + return entries; }; -const normalizeTransaction = (address, tx, currentChainID, txFeeTokenID) => { - const { moduleCommand, senderPublicKey } = tx; +const getEntriesByChronology = async (params, sortedBlocks, sortedTransactions, sortedEvents) => { + const entries = []; - const date = dateFromTimestamp(tx.block.timestamp); - const time = timeFromTimestamp(tx.block.timestamp); - const amount = normalizeTransactionAmount(address, tx); - const fee = normalizeTransactionFee(address, tx); - const amountTokenID = tx.params.tokenID; - const senderAddress = tx.sender.address; - const recipientAddress = tx.params.recipientAddress || null; - const recipientPublicKey = (tx.meta && tx.meta.recipient && tx.meta.recipient.publicKey) || null; - const blockHeight = tx.block.height; - const note = tx.params.data || null; - const transactionID = tx.id; - const { sendingChainID, receivingChainID } = resolveChainIDs(tx, currentChainID); - const { messageFeeTokenID } = tx.params; - const { messageFee } = tx.params; - const { rewardTokenID } = tx; - const { rewardAmount } = tx; + const currentChainID = await getCurrentChainID(); + const txFeeTokenID = await getFeeTokenID(); + const addressFromParams = getAddressFromParams(params); + + // Loop through each event and process the corresponding event, transaction, block + for (let i = 0; i < sortedEvents.length; i++) { + const e = sortedEvents[i]; + const [topic0] = e.topics; + const lengthTopic0 = topic0.length; + + if ( + lengthTopic0 === LENGTH_ID + EVENT_TOPIC_PREFIX.TX_ID.length || + lengthTopic0 === LENGTH_ID + EVENT_TOPIC_PREFIX.CCM_ID.length + ) { + const otherNecessaryEvents = []; + const ccmID = getCcmIDFromTopic0(topic0); + const tx = await (async () => { + const transactionID = + ccmID === null + ? getTransactionIDFromTopic0(topic0) + : await (async () => { + // If current event's topic0 is a ccmID, determine the CCU transaction ID from the corresponding beforeCCCExecution event + let j = i - 1; + while (j--) { + const prevEvent = sortedEvents[j]; + if ( + prevEvent.module === MODULE.TOKEN && + prevEvent.name === EVENT.BEFORE_CCC_EXECUTION && + prevEvent.data.ccmID === ccmID + ) { + return getTransactionIDFromTopic0(prevEvent.topics[0]); + } + } + + const eventsForHeight = await getEvents({ height: String(e.block.height) }); + otherNecessaryEvents.push(...eventsForHeight.data); + const correspondingBeforeCCCExecutionEvent = otherNecessaryEvents.find( + eventForHeight => + eventForHeight.module === MODULE.TOKEN && + eventForHeight.name === EVENT.BEFORE_CCC_EXECUTION && + eventForHeight.data.ccmID === ccmID, + ); + if (correspondingBeforeCCCExecutionEvent) { + return getTransactionIDFromTopic0(correspondingBeforeCCCExecutionEvent.topics[0]); + } + + logger.warn( + `Cannot determine CCU transactionID for ccmID ${ccmID} from event:\n${JSON.stringify( + e, + null, + '\t', + )}`, + ); + throw Error(`CCU transactionID cannot be determined for ccmID ${ccmID}.`); + })(); + + const txInList = sortedTransactions.find(t => t.id === transactionID); + if (txInList) return txInList; + + // because transaction may not be available for validator custodial reward reduction in the sorted list + const [txFromIndexer] = (await getTransactions({ id: transactionID })).data; + return txFromIndexer; + })(); + const block = await (async () => { + const blockID = tx.block.id; + const blockInList = sortedBlocks.find(b => b.id === blockID); + if (blockInList) return blockInList; + + // because block may not be available for validator custodial reward reduction in the sorted list + const [blockFromIndexer] = (await getBlocks({ id: blockID })).data; + return blockFromIndexer; + })(); + + // Handle transaction and CCM related events + if ( + (topic0.startsWith(EVENT_TOPIC_PREFIX.TX_ID) && + lengthTopic0 === LENGTH_ID + EVENT_TOPIC_PREFIX.TX_ID.length) || + (topic0.startsWith(EVENT_TOPIC_PREFIX.CCM_ID) && + lengthTopic0 === LENGTH_ID + EVENT_TOPIC_PREFIX.CCM_ID.length) + ) { + // Every transaction first emits a token lock event + if ( + e.module === MODULE.TOKEN && + e.name === EVENT.LOCK && + // token:transferCrossChain transaction is addressed separately + tx.moduleCommand !== `${MODULE.TOKEN}:${COMMAND.TRANSFER_CROSS_CHAIN}` + ) { + entries.push( + await formatTransaction(addressFromParams, tx, currentChainID, txFeeTokenID), + ); + + // Add duplicate entry with zero fees for self token transfer transactions + if (checkIfSelfTokenTransfer(tx)) { + const dupTx = { ...tx, fee: null, isSelfTokenTransferCredit: true }; + entries.push( + await formatTransaction(addressFromParams, dupTx, currentChainID, txFeeTokenID), + ); + } + } - return { - date, - time, - amount, - fee, - txFeeTokenID, - amountTokenID, - moduleCommand, - senderAddress, - recipientAddress, - senderPublicKey, - recipientPublicKey, - blockHeight, - note, - transactionID, - sendingChainID, - receivingChainID, - messageFeeTokenID, - messageFee, - rewardTokenID, - rewardAmount, - }; + // generatorAmount is the (excessive) transaction fee left after burning the transaction minFee + if (e.module === MODULE.FEE && e.name === EVENT.GENERATOR_FEE_PROCESSED) { + const generatorFeeEntries = await getGeneratorFeeEntries(addressFromParams, e, tx, block); + entries.push(...generatorFeeEntries); + } + + // Outgoing cross-chain transfers + if ( + e.module === MODULE.TOKEN && + e.name === EVENT.TRANSFER_CROSS_CHAIN && + e.data.senderAddress === addressFromParams + ) { + const transferCrossChainEvent = e; + const ccmSendSuccessEvent = await (async () => { + const txID = tx.id; + const topicTxID = EVENT_TOPIC_PREFIX.TX_ID.concat(txID); + const txHeight = tx.block.height; + const allBlockEvents = await getAllEventsInAsc({ height: String(txHeight) }); + return allBlockEvents.find( + ev => + ev.module === MODULE.INTEROPERABILITY && + ev.name === EVENT.CCM_SEND_SUCCESS && + ev.topics.includes(topicTxID), + ); + })(); + const outgoingCCTransferEntries = await getOutgoingTransferCCEntries( + addressFromParams, + transferCrossChainEvent, + ccmSendSuccessEvent, + tx, + block, + ); + entries.push(...outgoingCCTransferEntries); + } + + // Incoming cross-chain transfers + if ( + e.module === MODULE.TOKEN && + e.name === EVENT.CCM_TRANSFER && + e.data.recipientAddress === addressFromParams && + e.data.receivingChainID === (await getCurrentChainID()) + ) { + const incomingCCTransferEntries = await getIncomingTransferCCEntries( + addressFromParams, + e, + tx, + block, + ); + entries.push(...incomingCCTransferEntries); + } + + // messageFee is the (excessive) transaction fee left after burning the necessary CCM execution fee + if (e.module === MODULE.FEE && e.name === EVENT.RELAYER_FEE_PROCESSED) { + const messageFeeTokenID = (() => { + // Determine the messageFeeTokenID from the corresponding token:beforeCCCExecution event + const correspondingBeforeCCCExecutionEvent = sortedEvents + .concat(otherNecessaryEvents) + .find( + eventForHeight => + eventForHeight.module === MODULE.TOKEN && + eventForHeight.name === EVENT.BEFORE_CCC_EXECUTION && + eventForHeight.data.ccmID === e.data.ccmID, + ); + if (correspondingBeforeCCCExecutionEvent) { + return correspondingBeforeCCCExecutionEvent.data.messageFeeTokenID; + } + + logger.warn( + `Cannot determine messageFeeTokenID for ccmID ${ccmID} from event:\n${JSON.stringify( + e, + null, + '\t', + )}`, + ); + throw Error(`messageFeeTokenID cannot be determined for ccmID ${ccmID}.`); + })(); + const { sendingChainID, receivingChainID } = (() => { + // Determine the sendingChainID from the corresponding interoperability:ccmProcessed event + const correspondingCcmProcessedEvent = sortedEvents + .concat(otherNecessaryEvents) + .find( + eventForHeight => + eventForHeight.module === MODULE.INTEROPERABILITY && + eventForHeight.name === EVENT.CCM_PROCESSED && + eventForHeight.topics[0] === e.topics[0], + ); + if (correspondingCcmProcessedEvent) { + return { + sendingChainID: correspondingCcmProcessedEvent.data.ccm.sendingChainID, + receivingChainID: correspondingCcmProcessedEvent.data.ccm.receivingChainID, + }; + } + + logger.warn( + `Cannot determine sendingChainID & receivingChainID for ccmID ${ccmID} from event:\n${JSON.stringify( + e, + null, + '\t', + )}`, + ); + throw Error( + `sendingChainID & receivingChainID cannot be determined for ccmID ${ccmID}.`, + ); + })(); + + const messageFeeEntries = await getMessageFeeEntries( + addressFromParams, + e, + tx, + block, + messageFeeTokenID, + sendingChainID, + receivingChainID, + ); + entries.push(...messageFeeEntries); + } + + // Legacy account reclaims + if ( + e.module === MODULE.LEGACY && + e.name === EVENT.ACCOUNT_RECLAIMED && + e.topics[2] === addressFromParams + ) { + const accountReclaimedEvent = e; + const legacyAccountReclaimEntries = await getLegacyAccountReclaimEntries( + addressFromParams, + accountReclaimedEvent, + tx, + block, + ); + entries.push(...legacyAccountReclaimEntries); + } + + // PoM transactions + if (e.module === MODULE.POS && e.name === EVENT.VALIDATOR_PUNISHED) { + const tokenTransferEvent = sortedEvents + .concat(otherNecessaryEvents) + .find( + event => + event.module === MODULE.TOKEN && + event.name === EVENT.TRANSFER && + event.topics[0].endsWith(tx.id), + ); + + const validatorPunishedEvent = e; + const pomEntries = await getPomEntries( + addressFromParams, + tokenTransferEvent, + validatorPunishedEvent, + tx, + block, + ); + entries.push(...pomEntries); + } + } + + // Shared custodial reward received/sent + if (e.module === MODULE.POS && e.name === EVENT.REWARDS_ASSIGNED) { + const rewardAssignedEntries = await getSharedRewardsAssignedEntries( + addressFromParams, + e, + tx, + block, + ); + entries.push(...rewardAssignedEntries); + } + } else if (lengthTopic0 === LENGTH_DEFAULT_TOPIC) { + // Handle block rewards starting from token:mint until (dynamic)reward:rewardMinted events + if (e.module === MODULE.TOKEN && e.name === EVENT.MINT && e.topics[1] === addressFromParams) { + const tokenMintedEvent = e; + const nextEvent = sortedEvents[i + 1]; + const tokenLockedEvent = + nextEvent.module === MODULE.TOKEN && + nextEvent.name === EVENT.LOCK && + nextEvent.data.address === addressFromParams + ? nextEvent + : null; + + const block = sortedBlocks.find(b => b.id === e.block.id); + + // Split block generation reward to 2 entries: + // - commission + self-stake reward + // - shared custodial reward (only when validator has received stakes from others) + const blockRewardEntries = await getBlockRewardEntries( + addressFromParams, + tokenMintedEvent, + tokenLockedEvent, + block, + ); + entries.push(...blockRewardEntries); + } + } else { + logger.warn(`Unhandled event encountered:\n${JSON.stringify(e, null, '\t')}`); + } + } + + return dropDuplicatesDeep(entries); }; -const rescheduleOnTimeout = async params => { +const rescheduleExportOnTimeout = async params => { try { const currentChainID = await getCurrentChainID(); const excelFilename = await getExcelFilenameFromParams(params, currentChainID); @@ -424,36 +816,38 @@ const rescheduleOnTimeout = async params => { const { address } = params; const requestInterval = await standardizeIntervalFromParams(params); - logger.info(`Original job timed out. Re-scheduling job for ${address} (${requestInterval}).`); + logger.info(`Original job timed out. Rescheduling job for ${address} (${requestInterval}).`); // eslint-disable-next-line no-use-before-define - await scheduleTransactionExportQueue.add({ params }); + await scheduleTransactionExportQueue.add({ params, isRescheduled: true }); } catch (err) { - logger.warn(`History export job Re-scheduling failed due to: ${err.message}`); + logger.warn(`History export job rescheduling failed due to: ${err.message}`); logger.debug(err.stack); } }; const exportTransactions = async job => { let timeout; + const allEntriesForInterval = []; - const { params } = job.data; - - const allTransactions = []; - const allBlocks = []; + const { params, isRescheduled } = job.data; - // Validate if account has transactions - const isAccountHasTransactions = await validateIfAccountHasTransactions(params.address); - if (isAccountHasTransactions) { - // Add a timeout to automatically re-schedule, if the current job run times out on the last attempt - if (job.attemptsMade === job.opts.attempts - 1) { - timeout = setTimeout( - rescheduleOnTimeout.bind(null, params), - config.queue.scheduleTransactionExport.options.defaultJobOptions.timeout, + // Validate if account has transactions or is a generator + const isAccountHasTransactions = await checkIfAccountHasTransactions(params.address); + const isAccountValidator = await checkIfAccountIsValidator(params.address); + if (isAccountHasTransactions || isAccountValidator) { + const interval = await standardizeIntervalFromParams(params); + // Add a timeout to automatically re-schedule, if the current job times out on its last attempt + // Reschedule only once if all the current retries fail. Failsafe to avoid redundant scheduling and memory leaks + if (!isRescheduled && job.attemptsMade === job.opts.attempts - 1) { + const rescheduleAfterMs = + config.queue.scheduleTransactionExport.options.defaultJobOptions.timeout; + timeout = setTimeout(rescheduleExportOnTimeout.bind(null, params), rescheduleAfterMs); + logger.info( + `Set timeout to auto-reschedule export for ${params.address} (${interval}) in ${rescheduleAfterMs}ms.`, ); } - const interval = await standardizeIntervalFromParams(params); const [from, to] = interval.split(':'); const range = moment.range(moment(from, DATE_FORMAT), moment(to, DATE_FORMAT)); const arrayOfDates = Array.from(range.by('day')).map(d => d.format(DATE_FORMAT)); @@ -462,99 +856,76 @@ const exportTransactions = async job => { for (const day of arrayOfDates) { const partialFilename = await getPartialFilenameFromParams(params, day); + /* eslint-disable no-continue */ // No history available for the specified day - if ((await noTransactionsCache.get(partialFilename)) === true) { - // eslint-disable-next-line no-continue + if ((await noHistoryCache.get(partialFilename)) === true) { continue; } // History available as a partial file for the specified day if (await partials.fileExists(partialFilename)) { - const transactions = JSON.parse(await partials.read(partialFilename)); - allTransactions.push(...transactions); - - // eslint-disable-next-line no-continue + const entriesForDay = JSON.parse(await partials.read(partialFilename)); + allEntriesForInterval.push(...entriesForDay); continue; } + /* eslint-enable no-continue */ - // Query for history and build the partial + // Query for history and build the partial for the day const fromTimestamp = moment(day, DATE_FORMAT).startOf('day').unix(); const toTimestamp = moment(day, DATE_FORMAT).endOf('day').unix(); const timestampRange = `${fromTimestamp}:${toTimestamp}`; - const transactions = await requestAllStandard( - getTransactionsInAsc, - { ...params, timestamp: timestampRange }, - MAX_NUM_TRANSACTIONS, - ); - allTransactions.push(...transactions); - - const incomingCrossChainTransferTxs = await getCrossChainTransferTransactionInfo({ - ...params, - timestamp: timestampRange, - }); - const blocks = await getBlocksInAsc({ - ...params, - timestamp: timestampRange, + // Fetch all the related blocks, transactions and events for the day + const timeBoxedParams = { ...params, timestamp: timestampRange }; + const sortedBlocks = await getAllBlocksInAsc(timeBoxedParams); + const sortedTransactions = await getAllTransactionsInAsc(timeBoxedParams); + const sortedEvents = await getAllEventsInAsc({ + topic: timeBoxedParams.address, + timestamp: timeBoxedParams.timestamp, }); - allBlocks.push(...blocks); - - const rewardAssignedInfo = await getRewardAssignedInfo({ - ...params, - timestamp: timestampRange, - }); - - if (incomingCrossChainTransferTxs.length || rewardAssignedInfo.length) { - allTransactions.push(...incomingCrossChainTransferTxs, ...rewardAssignedInfo); - allTransactions.sort((a, b) => a.block.height - b.block.height); - } + const entriesForDay = await getEntriesByChronology( + timeBoxedParams, + sortedBlocks, + sortedTransactions, + sortedEvents, + ); if (day !== getToday()) { - if (transactions.length) { - partials.write(partialFilename, JSON.stringify(allTransactions)); + if (entriesForDay.length) { + partials.write(partialFilename, JSON.stringify(entriesForDay)); } else { // Flag to prevent unnecessary calls to the node/file cache const RETENTION_PERIOD_MS = getDaysInMilliseconds(config.cache.partials.retentionInDays); - await noTransactionsCache.set(partialFilename, true, RETENTION_PERIOD_MS); + await noHistoryCache.set(partialFilename, true, RETENTION_PERIOD_MS); } } - } - } - const currentChainID = await getCurrentChainID(); - const txFeeTokenID = await getFeeTokenID(); - const excelFilename = await getExcelFilenameFromParams(params, currentChainID); - - // Add duplicate entry with zero fees for self token transfer transactions - allTransactions.forEach((tx, i, arr) => { - if (checkIfSelfTokenTransfer(tx) && !tx.isSelfTokenTransferCredit) { - arr.splice(i + 1, 0, { ...tx, fee: '0', isSelfTokenTransferCredit: true }); + allEntriesForInterval.push(...entriesForDay); } - }); + } - const normalizedTransactions = await Promise.all( - allTransactions.map(t => - normalizeTransaction(getAddressFromParams(params), t, currentChainID, txFeeTokenID), - ), - ); + // Create the workbook + const workBook = new excelJS.Workbook(); - const normalizedBlocks = await normalizeBlocks(allBlocks); + // Build the account history sheet + const transactionExportSheet = workBook.addWorksheet(config.excel.sheets.TRANSACTION_HISTORY); + transactionExportSheet.columns = fields.transactionMappings; + transactionExportSheet.addRows(allEntriesForInterval); - const uniqueChainIDs = await getUniqueChainIDs(normalizedTransactions); - const metadata = await Promise.all( - uniqueChainIDs.map(async chainID => getMetadata(params, chainID, currentChainID)), + // Build the metadata sheet + const currentChainID = await getCurrentChainID(); + const uniqueChainIDs = await getUniqueChainIDs(allEntriesForInterval); + const metadataEntriesList = await Promise.all( + uniqueChainIDs.map(async chainID => getMetadataEntries(params, chainID, currentChainID)), ); - - const workBook = new excelJS.Workbook(); - const transactionExportSheet = workBook.addWorksheet(config.excel.sheets.TRANSACTION_HISTORY); + const metadataEntries = metadataEntriesList.flat(); const metadataSheet = workBook.addWorksheet(config.excel.sheets.METADATA); - transactionExportSheet.columns = fields.transactionMappings; metadataSheet.columns = fields.metadataMappings; + metadataSheet.addRows(metadataEntries); - transactionExportSheet.addRows([...normalizedTransactions, ...normalizedBlocks]); - metadataSheet.addRows(metadata); - + const excelFilename = await getExcelFilenameFromParams(params, currentChainID); await workBook.xlsx.writeFile(`${config.cache.exports.dirPath}/${excelFilename}`); + logger.info(`Successfully exported the account transaction history to: ${excelFilename}.`); await jobScheduledCache.delete(excelFilename); // Remove the entry from cache to free up memory // Clear the auto re-schedule timeout on successful completion @@ -581,49 +952,62 @@ const scheduleTransactionHistoryExport = async params => { const address = getAddressFromParams(params); const requestInterval = await standardizeIntervalFromParams(params); - exportResponse.data.address = address; - exportResponse.data.publicKey = publicKey; - exportResponse.data.interval = requestInterval; + try { + exportResponse.data.address = address; + exportResponse.data.publicKey = publicKey; + exportResponse.data.interval = requestInterval; - const currentChainID = await getCurrentChainID(); - const excelFilename = await getExcelFilenameFromParams(params, currentChainID); + const currentChainID = await getCurrentChainID(); + const excelFilename = await getExcelFilenameFromParams(params, currentChainID); - // Job already scheduled, skip remaining checks - if ((await jobScheduledCache.get(excelFilename)) === true) { - return exportResponse; - } + // Job already scheduled, skip remaining checks + if ((await jobScheduledCache.get(excelFilename)) === true) { + return exportResponse; + } - // Request already processed and the history is ready to be downloaded - if (await staticFiles.fileExists(excelFilename)) { - exportResponse.data.fileName = excelFilename; - exportResponse.data.fileUrl = await getExcelFileUrlFromParams(params, currentChainID); - exportResponse.meta.ready = true; + // Request already processed and the history is ready to be downloaded + if (await staticFiles.fileExists(excelFilename)) { + exportResponse.data.fileName = excelFilename; + exportResponse.data.fileUrl = await getExcelFileUrlFromParams(params, currentChainID); + exportResponse.meta.ready = true; - return exportResponse; - } + return exportResponse; + } - // Validate if account exists - const isAccountExists = await validateIfAccountExists(address); - if (!isAccountExists) throw new NotFoundException(`Account ${address} not found.`); + // Validate if account exists + const isAccountExists = await checkIfAccountExists(address); + if (!isAccountExists) throw new NotFoundException(`Account ${address} not found.`); - // Validate if the index is ready enough to serve the user request - const isBlockchainIndexReady = await checkIfIndexReadyForInterval(requestInterval); - if (!isBlockchainIndexReady) { - throw new ValidationException( - `The blockchain index is not yet ready for the requested interval (${requestInterval}). Please retry later.`, + // Validate if the index is ready enough to serve the user request + const isBlockchainIndexReady = await checkIfIndexReadyForInterval(requestInterval); + if (!isBlockchainIndexReady) { + throw new ValidationException( + `The blockchain index is not yet ready for the requested interval (${requestInterval}). Please retry later.`, + ); + } + + // Schedule a new job to process the history export + logger.debug( + `Attempting to schedule transaction history export for ${address} (${requestInterval}).`, ); - } + await scheduleTransactionExportQueue.add({ params: { ...params, address } }); + logger.info( + `Successfully scheduled transaction history export for ${address} (${requestInterval}).`, + ); + exportResponse.status = 'ACCEPTED'; - // Schedule a new job to process the history export - await scheduleTransactionExportQueue.add({ params: { ...params, address } }); - exportResponse.status = 'ACCEPTED'; + const ttl = config.queue.scheduleTransactionExport.options.defaultJobOptions.timeout * 2; + await jobScheduledCache.set(excelFilename, true, ttl); - const ttl = - config.queue.scheduleTransactionExport.options.defaultJobOptions.timeout * - config.queue.scheduleTransactionExport.options.defaultJobOptions.attempts; - await jobScheduledCache.set(excelFilename, true, ttl); + return exportResponse; + } catch (err) { + if (err instanceof ValidationException) throw err; - return exportResponse; + const errMessage = `Unable to schedule transaction history export for ${address} (${requestInterval}) due to: ${err.message}`; + logger.warn(errMessage); + logger.debug(err.stack); + throw new Error(errMessage); + } }; const downloadTransactionHistory = async ({ filename }) => { @@ -656,22 +1040,17 @@ module.exports = { exportTransactions, scheduleTransactionHistoryExport, downloadTransactionHistory, - getTokenBalancesAtGenesis, // For functional tests - getAddressFromParams, - getToday, - normalizeTransaction, - - standardizeIntervalFromParams, - getPartialFilenameFromParams, - getExcelFilenameFromParams, - getExcelFileUrlFromParams, - getCrossChainTransferTransactionInfo, - getRewardAssignedInfo, - getOpeningBalance, - getMetadata, - resolveChainIDs, - normalizeBlocks, - validateIfAccountExists, + formatTransaction, + formatBlocks, + getChainInfo, + getBlockRewardEntries, + getGeneratorFeeEntries, + getSharedRewardsAssignedEntries, + getMessageFeeEntries, + getOutgoingTransferCCEntries, + getIncomingTransferCCEntries, + getLegacyAccountReclaimEntries, + getPomEntries, }; diff --git a/services/export/tests/constants/blocks.js b/services/export/tests/constants/blocks.js index 3a83022613..d32aed2b41 100644 --- a/services/export/tests/constants/blocks.js +++ b/services/export/tests/constants/blocks.js @@ -78,6 +78,41 @@ const blocks = [ isFinal: false, reward: 0, }, + + { + id: 'bc62dabae94b2d146a9fb72424b87d65cfdc4b41d57d7e95343a8bd246b74b75', + version: 2, + timestamp: 1704198870, + height: 21016494, + previousBlockID: '40cf694c59aa0f4ccddaf1b37e77c752c5b2ae17253c76dbe26a8463be204fdb', + generator: { + address: 'lskkg45aupy3mnzeko7thpgzwaqh9cjcrjfo46kjt', + name: 'different_dish', + publicKey: 'ae79e3d4fcfc8b9d7acbf2a72f2281cb85a98cd9a5b18b2164b06113032bea78', + }, + transactionRoot: '5b24f16b9313b7954c086743ab784af77ecab4854cff5538c14633b50bb728fa', + assetRoot: 'f74d106522e5f9350edc170eb8603168438c85030d6294a37239961ab10bfd3a', + stateRoot: 'e0587de5aabe73bf478a9f94aeae9ee86e771d1cc01d9ee3b78d8d45aa278abd', + eventRoot: '907db89b436269e870cc234844fd4d26e484380d33b724d078cf65deebbe0e44', + maxHeightPrevoted: 21016419, + maxHeightGenerated: 21016363, + validatorsHash: 'f111c95be02cd8924791a24c97bc1a014a8aad7906b85f1f4ecc40e195234211', + aggregateCommit: { + height: 21016347, + aggregationBits: '', + }, + certificateSignature: '', + numberOfTransactions: 1, + numberOfAssets: 1, + numberOfEvents: 10, + totalForged: '22268530', + totalBurnt: '194000', + networkFee: '9806000', + signature: + 'e25aefd645ae92251e029c0679486464ed10795ee27955243e99436f977cbfec185c7cd6a66d57516a65f59b83990c9998519212e9002a43b8371245361ba606', + reward: '12268530', + isFinal: true, + }, ]; module.exports = { diff --git a/services/export/tests/constants/csvExport.js b/services/export/tests/constants/csvExport.js index f33c87baf8..a789eb8cbf 100644 --- a/services/export/tests/constants/csvExport.js +++ b/services/export/tests/constants/csvExport.js @@ -97,6 +97,7 @@ const selfTokenTransferTransaction = { const interval = { startEnd: '2021-06-07:2021-09-19', onlyStart: '2021-06-07', + invalid: '2021-06-07:20-09-2021', }; module.exports = { diff --git a/services/export/tests/constants/events.js b/services/export/tests/constants/events.js new file mode 100644 index 0000000000..3211900325 --- /dev/null +++ b/services/export/tests/constants/events.js @@ -0,0 +1,218 @@ +/* + * LiskHQ/lisk-service + * Copyright © 2024 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +const tokenMintedEvent = { + id: '000f293a862a5b5c55f44cba8fb656cdab94ce4ebd99cc9f97329b87a70248f3', + module: 'token', + name: 'lock', + data: { + address: 'lskbrukhb5ctdodhy8z6any4b6u2qrkugz43w78pr', + module: 'fee', + tokenID: '0100000000000000', + amount: '161000', + result: 0, + }, + topics: [ + '041c425c907ba819e64da0166de38fe50ae9de29d9a3fd2bbeda2e89c045917fe3', + 'lskbrukhb5ctdodhy8z6any4b6u2qrkugz43w78pr', + ], +}; + +const tokenLockedEvent = { + id: 'e2e8622d572985863166015c62b90ad0c8339f6eb9331eff7eb8011d89882358', + module: 'token', + name: 'mint', + data: { + address: 'lskywqe2cuw5j9burca4sm6rpfxnxyzksv5r99b9g', + tokenID: '0100000000000000', + amount: '131000', + result: 0, + }, + topics: ['03', 'lskywqe2cuw5j9burca4sm6rpfxnxyzksv5r99b9g'], +}; + +const genFeeProcessed = { + id: 'ab21335d06196f58608c60c77fa2cfc285697a5471d95fa295521d6798d32e5d', + module: 'fee', + name: 'generatorFeeProcessed', + data: { + senderAddress: 'lskmv6entvj8cnrhfdoa38ojx34pv4rd9q44788r7', + generatorAddress: 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp', + burntAmount: '179000', + generatorAmount: '21000', + }, + topics: [ + '04d41e8fbb909fdf44ffccef6f5b0fb5edf853f0dcf699243a0a92403d2a4f1d1d', + 'lskmv6entvj8cnrhfdoa38ojx34pv4rd9q44788r7', + 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp', + ], +}; + +const rewardsAssigned = { + id: '5630ae1886ab96412db5924193ee1782ac4acc72c6196e8eadb0cf8adbef3de2', + module: 'pos', + name: 'rewardsAssigned', + data: { + stakerAddress: 'lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds', + validatorAddress: 'lsk26s9p9rb74ygzxayuf9cx6x7x5wuvp2v9yrns7', + tokenID: '0100000000000000', + amount: '87694485125', + }, + topics: [ + '04732923c6e8780251c1dcd179e3e657827ae9318a6df920de595d743f1ed70a40', + 'lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds', + ], +}; + +const relayerFeeProcessed = { + id: '40f44afac6097dcec6dfd945000990f0ea95e7a1ad9e86562cb02ee36ee39e4c', + module: 'interoperability', + name: 'relayerFeeProcessed', + data: { + ccmID: 'e6a22f3c4489ceba8e20eeea0ce617d9c385e92aeb9a710a53eb941d34b5f92e', + relayerAddress: 'lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds', + burntAmount: '10000000', + relayerAmount: '50000', + }, + topics: ['lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds'], +}; + +const ccmSendSuccess = { + id: 'df34de3aa6461285698e023135edf6708e963510048a9be5b5a7acfe1ecd3ac1', + module: 'interoperability', + name: 'ccmSendSuccess', + data: { + ccm: { + module: 'token', + crossChainCommand: 'transferCrossChain', + nonce: '57', + fee: '109000', + sendingChainID: '04000000', + receivingChainID: '04000002', + params: + '0a0801000000000000001080c2d72f1a145a88fb2d14453327d896adc860e711d26123bd9022145a88fb2d14453327d896adc860e711d26123bd902a00', + status: 0, + }, + }, + topics: [ + '0434548b99aa37a5a450712c7e3f1e13b62be872d65dd7a8c1d54859408ca4914b', + '01000000', + '01000002', + '5ec6bd1dbbcecaef8edad082cfd333c7cf1fdbfeb248c8a80a236179484d06c8', + ], +}; + +const transferCrossChain = { + id: 'f01ba39c143282f7a21e2680b50f7b9b8450afcabc24c35dd72793e389a1bcab', + module: 'token', + name: 'transferCrossChain', + data: { + senderAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + recipientAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + tokenID: '0400000000000000', + amount: '100000000', + receivingChainID: '04000002', + result: 0, + }, + topics: [ + '0434548b99aa37a5a450712c7e3f1e13b62be872d65dd7a8c1d54859408ca4914b', + 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + '01000002', + ], +}; + +const ccmTransfer = { + id: 'f01ba39c143282f7a21e2680b50f7b9b8450afcabc24c35dd72793e389a1bcab', + module: 'token', + name: 'transferCrossChain', + data: { + senderAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + recipientAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + tokenID: '0400000000000000', + amount: '100000000', + receivingChainID: '04000002', + result: 0, + }, + topics: [ + '05d16d1cb5fa32df64988b4ab5de66b7d43c8fbfdaf043aca84d649f914d66189f', + 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + ], +}; + +const accountReclaimed = { + id: 'fe7ff8cbfd1243f0134271c868c73abf6a726bc9965440fcffdcb4cd03b582ba', + module: 'legacy', + name: 'accountReclaimed', + data: { + legacyAddress: '15297866638783057016L', + address: 'lskqz6gpqfu9tb5yc2jtqmqvqp3x8ze35g99u2zfd', + amount: '100000000', + }, + topics: [ + '046cff643daaa2bd1112d1b4591abef3e62f9e4f6e37a260fcd7508ce6a06f061c', + '15297866638783057016L', + 'lskqz6gpqfu9tb5yc2jtqmqvqp3x8ze35g99u2zfd', + ], +}; + +const validatorPunished = { + id: 'dae4b1bb546e9bdd15a05432f37ddf42ffcf1ad4dc790cb2f6391e830db49e28', + module: 'pos', + name: 'validatorPunished', + data: { + address: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + height: 1745, + }, + topics: [ + '04cd41e8fbb909fdf44ffccef6f5b0fb5edf853f0dcf699243a0a92403d2a4f1d1d', + 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + ], +}; + +const tokenTransfer = { + id: '957c72e2cd0e057c7c251c35bd1149e35e9aa621ef8ab5d016373fe4ec786660', + module: 'token', + name: 'transfer', + data: { + senderAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + recipientAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + tokenID: '0400000000000000', + amount: '100000000', + result: 0, + }, + topics: [ + '04ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1', + 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + ], +}; + +module.exports = { + events: { + tokenMintedEvent, + tokenLockedEvent, + genFeeProcessed, + rewardsAssigned, + relayerFeeProcessed, + ccmSendSuccess, + transferCrossChain, + ccmTransfer, + accountReclaimed, + validatorPunished, + tokenTransfer, + }, +}; diff --git a/services/export/tests/constants/transaction.js b/services/export/tests/constants/transaction.js index e61eb4866d..3a729da004 100644 --- a/services/export/tests/constants/transaction.js +++ b/services/export/tests/constants/transaction.js @@ -177,6 +177,148 @@ const tokenTransferCrossChainTransaction = { index: 1, }; +const posClaimedRewards = { + id: '732923c6e8780251c1dcd179e3e657827ae9318a6df920de595d743f1ed70a40', + moduleCommand: 'pos:claimRewards', + nonce: '92', + fee: '127000', + minFee: '127000', + size: 127, + block: { + id: 'd6be2fd9ebd06406122ed971b7638621b8f5104f84b46e21d4067fd28b3db72e', + height: 21304948, + timestamp: 1707134570, + isFinal: true, + }, + sender: { + address: 'lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds', + publicKey: 'f0fda0461215e4e63a68d12c79d293833c32519cfe3a5e01ca08b0a0a7493de5', + name: null, + }, + params: {}, + signatures: [ + 'd219f9362bd2a6fcd8357bcfdc26b66efade5526407d884e4f34750934965b1f3367f7f71e9ddfd29160f6b101a0136ee456a1b7721519d85fff6d6ca65be401', + ], + executionStatus: 'successful', + index: 0, +}; + +const transferCrossChain = { + id: '34548b99aa37a5a450712c7e3f1e13b62be872d65dd7a8c1d54859408ca4914b', + moduleCommand: 'token:transferCrossChain', + nonce: '41', + fee: '10000000', + minFee: '194000', + size: 195, + block: { + id: 'bc62dabae94b2d146a9fb72424b87d65cfdc4b41d57d7e95343a8bd246b74b75', + height: 21016494, + timestamp: 1704198870, + isFinal: true, + }, + sender: { + address: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + publicKey: '344c75738c096e4bd94459fe81eba45503382181d003a9d2c8be75a2f38b49fa', + name: null, + }, + params: { + tokenID: '0400000000000000', + amount: '100000000', + receivingChainID: '04000002', + recipientAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + data: '', + messageFee: '109000', + messageFeeTokenID: '0400000000000000', + }, + signatures: [ + 'cbe755352a175b11a3dc4ae4b5e890ebc4ce1d5cc11c6dbdf5cf21b19f7605e7845b4650779191fdbfc1a1afe90edc1a049717b60858f140f4ae0ad67e93d505', + ], + executionStatus: 'successful', + index: 0, + meta: { + recipient: { + address: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + publicKey: '344c75738c096e4bd94459fe81eba45503382181d003a9d2c8be75a2f38b49fa', + name: null, + }, + }, +}; + +const submitMainchainCrossChainUpdate = { + id: 'd16d1cb5fa32df64988b4ab5de66b7d43c8fbfdaf043aca84d649f914d66189f', + moduleCommand: 'interoperability: submitMainchainCrossChainUpdate', + nonce: '140', + fee: '3000000', + minFee: '422000', + size: 423, + block: { + id: '5333974cf1763909f6e63e4a419d942ae4a6a0a2f3477e620f214cf23a4c7342', + height: 21102804, + timestamp: 1705079500, + isFinal: true, + }, + sender: { + address: 'lskcd7tbbhkyebmg2fhdd4w4omvnfhzp5rb7wmz4d', + publicKey: 'b5e96c1a5ab6f9d96eb08360cbfe4f1d8826591c515d307b9b9eeb1567a19013', + name: null, + }, + params: { + sendingChainID: '04000000', + certificate: + '0a20e38e39a33032916b31c6f092047d6aa4919d88760b9185fe631c19d1669a45fc10f60418f4ac84ad0622204dd143faa3c027e456369f75c89bd32befb9229dfcc3cd0b83ecbbca1e0656a42a2076965cc0331adc28fd8d16e63a64d6520397ee3fb3397da59afe60a506bcd909320dffffffffffffffffffffffff013a60b42c2b251e7621e8fd4915167a8360967860898484f29d0faf1e5536ba74bae59da15de420e209182843f884e6aea1b7078095fbeffdbac4169ac3689d06a49e49abd9a4aa9ee78708b7978e2de477993589ed0d2114d3fca5267da867510502', + activeValidatorsUpdate: { + blsKeysUpdate: [], + bftWeightsUpdate: ['0'], + bftWeightsUpdateBitmap: '00000000000000000020000000', + }, + certificateThreshold: '65', + inboxUpdate: { + crossChainMessages: [], + messageWitnessHashes: [], + outboxRootWitness: { + bitmap: '', + siblingHashes: [], + }, + }, + }, + signatures: [ + 'ded5534277972e71ca062b3ac58ce1e6e71fe5f9b5a91c091e5e8ddc879726263c2c6cd23bc1ca1e18f5cdc36767ca243773180ee05caa7bbe724324c20a300d', + ], + executionStatus: 'failed', + index: 0, +}; + +const reportMisbehavior = { + id: 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1', + moduleCommand: 'pos:reportMisbehavior', + nonce: '67', + fee: '1000000', + minFee: '789000', + size: 789, + block: { + id: 'a8704e713299fd3e379686261aaffb792ef0f78950a0802dd65d0e7f07bc075c', + height: 23840061, + timestamp: 1706374150, + isFinal: true, + }, + sender: { + address: 'lskhtpeyg2944gcjwubrc7vwp52qoshtu4fs9wmfn', + publicKey: 'd1d951c46376e108bab5e7a9f1dce725bb33f9823442a4a34841b6774bbb5b2f', + name: 'pom', + }, + params: { + header1: + '080210e691d4ad0618ed81af0b2220f7ce365adcd30b8df395e05de8a423462ad405cb15c1e20e0cb7188ce91a45952a142f2680402c5484860db58e4e4259caed3182bc793220e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553a2083bf0bd3e2f270aab3d73a79d6e89fc7b7acf688340aa16af3a330d50b43a1454220967365364a7508afd9b9f6fc62b664108e009f45a1af480e3009d70ad999a1214a20729640338fcada3f24103beab6f27b7725ca5cb23da58603073680de42157cdb509b81af0b580060016a2081253514d52a57c27425f7002ef7eb4bdffa9a199037a8cd0bfe16c06142ae85720908c980af0b12001a007a40046e73201f12ec38e37b41d0b46e0af8c35eee296c66c11850093daaf018d25cc1945d387420416f7a4298a7feef1900df54289e3143d0622739234fae182608', + header2: + '080210fce7d4ad0618bc8aaf0b22208bb8a469affa254ae2d0120e8de964dfd0b0e4b82f6dc27399cc0c37a90ca8f62a142f2680402c5484860db58e4e4259caed3182bc793220e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553a20b863a36ba1cd1ae5106829aab159687c538e89451fb74b5cbd6b885590dbabe94220aab8361878bc8e35f1e5cff77817468806c904b3134c26c5f2141d927ba5ff954a20b5297e3a641cf61d79f316fa202643cf8c5f03b1ba2b4cac02c7812cf8f25e9450f189af0b580060016a20d53b9b41c0acd2d90969f6e3f9e3e3519be9b941a284288409fecaf8a190f63a720908b289af0b12001a007a4090f68d23abb5cb688c83c9cecd4636be7424c6aa69e1102e4b341a49aa3df5049f3a01f33fbb0dd864d88e8fe2fad777938fceba3f5ead1133adf6b257011700', + }, + signatures: [ + 'f965d9cd093e8a765b0f8088b04517f7aca91882855a83abe8825f4f06e8c73145572b79607ef1729c390ff97999939be510c2e3da97e0df8b2123c6afdea001', + ], + executionStatus: 'successful', + index: 0, +}; + module.exports = { transactions: { reclaim: reclaimTransaction, @@ -184,5 +326,9 @@ module.exports = { tokenTransferSelf: tokenTransferTransactionSelf, tokenTransferCrossChain: tokenTransferCrossChainTransaction, stake: stakeTransaction, + claimedRewards: posClaimedRewards, + transferCrossChain, + submitMainchainCrossChainUpdate, + reportMisbehavior, }, }; diff --git a/services/export/tests/functional/transactionsExport.test.js b/services/export/tests/functional/transactionsExport.test.js deleted file mode 100644 index 1bd57bc2e5..0000000000 --- a/services/export/tests/functional/transactionsExport.test.js +++ /dev/null @@ -1,166 +0,0 @@ -/* - * LiskHQ/lisk-service - * Copyright © 2021 Lisk Foundation - * - * See the LICENSE file at the top-level directory of this distribution - * for licensing information. - * - * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, - * no part of this software, including this file, may be copied, modified, - * propagated, or distributed except according to the terms contained in the - * LICENSE file. - * - * Removal or modification of this copyright notice is prohibited. - * - */ -const { - standardizeIntervalFromParams, - getExcelFilenameFromParams, - getExcelFileUrlFromParams, -} = require('../../shared/transactionsExport'); - -const { interval } = require('../constants/csvExport'); - -const { - STANDARDIZED_INTERVAL, - EXCEL_EXPORT_FILENAME, - EXCEL_FILE_URL, -} = require('../../shared/regex'); - -const config = require('../../config'); - -describe('Excel export utils', () => { - const address = 'lskeqretdgm6855pqnnz69ahpojk5yxfsv2am34et'; - const publicKey = 'b7fdfc991c52ad6646159506a8326d4203c868bd3f16b8043c8e4e034346e581'; - const excelFilenameExtension = '.xlsx'; - const excelFileUrlBeginsWith = '/api/v3/export/'; - - describe('Test standardizeIntervalFromParams method', () => { - it('should return standardized interval when both start and end date supplied', async () => { - const result = await standardizeIntervalFromParams({ interval: interval.startEnd }); - expect(typeof result).toBe('string'); - expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); - expect(result).toMatch(STANDARDIZED_INTERVAL); - }); - - it('should return standardized interval when only start date supplied', async () => { - const result = await standardizeIntervalFromParams({ interval: interval.onlyStart }); - expect(typeof result).toBe('string'); - expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); - expect(result).toMatch(STANDARDIZED_INTERVAL); - }); - - xit('should return standardized interval when dates not supplied', async () => { - const result = await standardizeIntervalFromParams({}); - expect(typeof result).toBe('string'); - expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); - expect(result).toMatch(STANDARDIZED_INTERVAL); - }); - }); - - describe('Test getExcelFilenameFromParams method', () => { - it('should return excel filename when called with address and complete interval with start and end date supplied', async () => { - const params = { address, interval: interval.startEnd }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - - it('should return excel filename when called with publicKey and complete interval with start and end date supplied', async () => { - const params = { publicKey, interval: interval.startEnd }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - - it('should return excel filename when called with address and interval with only start date supplied', async () => { - const params = { address, interval: interval.onlyStart }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - - it('should return excel filename when called with publicKey and interval with only start date supplied', async () => { - const params = { publicKey, interval: interval.onlyStart }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - - xit('should return excel filename when called with address and no interval supplied', async () => { - const params = { address }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - - xit('should return excel filename when called with publicKey and no interval supplied', async () => { - const params = { publicKey }; - const excelFilename = await getExcelFilenameFromParams(params); - expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilename).toContain(address); - expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); - }); - }); - - describe('Test getExcelFileUrlFromParams method', () => { - it('should return excel filpath URL when called with address and complete interval with start and end date supplied', async () => { - const params = { address, interval: interval.startEnd }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - - it('should return excel filpath URL when called with publicKey and complete interval with start and end date supplied', async () => { - const params = { publicKey, interval: interval.startEnd }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - - it('should return excel filpath URL when called with address and interval with only start date supplied', async () => { - const params = { address, interval: interval.onlyStart }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - - it('should return excel filpath URL when called with publicKey and interval with only start date supplied', async () => { - const params = { publicKey, interval: interval.onlyStart }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - - xit('should return excel filpath URL when called with address and no interval supplied', async () => { - const params = { address }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - - xit('should return excel filpath URL when called with publicKey and no interval supplied', async () => { - const params = { publicKey }; - const excelFilepathUrl = await getExcelFileUrlFromParams(params); - expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); - expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); - expect(excelFilepathUrl).toContain(address); - expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); - }); - }); -}); diff --git a/services/export/tests/unit/shared/helpers/account.test.js b/services/export/tests/unit/shared/helpers/account.test.js index 3ee938369c..4f4f8b7eeb 100644 --- a/services/export/tests/unit/shared/helpers/account.test.js +++ b/services/export/tests/unit/shared/helpers/account.test.js @@ -13,22 +13,29 @@ * Removal or modification of this copyright notice is prohibited. * */ -const { - validateLisk32Address, - validatePublicKey, - getLisk32AddressFromPublicKey, -} = require('../../../../shared/helpers/account'); +const { resolve } = require('path'); +const delay = require('lisk-service-framework/src/delay'); const { valid, invalid } = require('../../../constants/account'); +const { transactions } = require('../../../constants/transaction'); + +const mockedRequestFilePath = resolve(`${__dirname}/../../../../shared/helpers/request`); +const mockedRequestAllFilePath = resolve(`${__dirname}/../../../../shared/helpers/requestAll`); + +beforeEach(() => jest.resetModules()); describe('Account utils', () => { describe('Validate address', () => { it('returns true for valid Lisk32 address', async () => { + const { validateLisk32Address } = require('../../../../shared/helpers/account'); + const isValid = validateLisk32Address(valid.address); expect(isValid).toBe(true); }); it('returns false for invalid Lisk32 address', async () => { + const { validateLisk32Address } = require('../../../../shared/helpers/account'); + const isInvalid = validateLisk32Address(invalid.address); expect(isInvalid).toBe(false); }); @@ -36,11 +43,15 @@ describe('Account utils', () => { describe('Validate publicKey', () => { it('returns true for valid publicKey', async () => { + const { validatePublicKey } = require('../../../../shared/helpers/account'); + const isValid = validatePublicKey(valid.publicKey); expect(isValid).toBe(true); }); it('returns false for invalid publicKey', async () => { + const { validatePublicKey } = require('../../../../shared/helpers/account'); + const isInvalid = validatePublicKey(invalid.publicKey); expect(isInvalid).toBe(false); }); @@ -48,8 +59,217 @@ describe('Account utils', () => { describe('Extract address from a valid publicKey', () => { it('returns correct Lisk32 address from a valid publicKey', async () => { + const { getLisk32AddressFromPublicKey } = require('../../../../shared/helpers/account'); + const address = getLisk32AddressFromPublicKey(valid.publicKey); expect(address).toBe(valid.address); }); }); + + describe('Test getAddressFromParams method', () => { + const address = 'lskpg7qukha2nmu9483huwk8oty7q3pyevh3bohr4'; + const publicKey = '86cbecb2a176934e454f63e7ffa05783be6960d90002c5558dfd31397cd8f020'; + + it('should return address from address in params', async () => { + const { getAddressFromParams } = require('../../../../shared/helpers/account'); + + const result = getAddressFromParams({ address }); + expect(result).toBe(address); + }); + + it('should return address from publicKey in params', async () => { + const { getAddressFromParams } = require('../../../../shared/helpers/account'); + + const result = getAddressFromParams({ publicKey }); + expect(result).toBe(address); + }); + }); + + describe('Test checkIfAccountExists method', () => { + it('should return true when account exists', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestIndexer } = require(mockedRequestFilePath); + requestIndexer.mockResolvedValueOnce({ + data: { isExists: true }, + meta: {}, + }); + + const { checkIfAccountExists } = require('../../../../shared/helpers/account'); + + const isAccountExists = await checkIfAccountExists( + 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + ); + expect(isAccountExists).toEqual(true); + }); + }); + + describe('Test checkIfAccountHasTransactions method', () => { + it('should return true when account has transactions', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestIndexer } = require(mockedRequestFilePath); + requestIndexer.mockResolvedValueOnce({ + data: [transactions.tokenTransfer], + meta: {}, + }); + + const { checkIfAccountHasTransactions } = require('../../../../shared/helpers/account'); + + const isAccountHasTransactions = await checkIfAccountHasTransactions( + 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + ); + expect(isAccountHasTransactions).toEqual(true); + }); + + it('should return false when account has no transactions', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestIndexer } = require(mockedRequestFilePath); + requestIndexer.mockResolvedValueOnce({ + data: [], + meta: {}, + }); + + const { checkIfAccountHasTransactions } = require('../../../../shared/helpers/account'); + + const isAccountHasTransactions = await checkIfAccountHasTransactions( + 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + ); + expect(isAccountHasTransactions).toEqual(false); + }); + }); + + describe('Test checkIfAccountIsValidator method', () => { + it('should return true when account is a validator', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestIndexer } = require(mockedRequestFilePath); + requestIndexer.mockResolvedValueOnce({ + data: [ + { + name: 'twitter', + totalStake: '0', + selfStake: '0', + validatorWeight: '0', + address: 'lsk3j2dfuw4rsfsbcftwy838hd9vagmu2emype9do', + publicKey: '750b2fa94026d29b8ef49d8e00ceb1b0d31107914e327d3c8f45d61b6afef370', + }, + ], + meta: {}, + }); + + const { checkIfAccountIsValidator } = require('../../../../shared/helpers/account'); + + const isAccountValidator = await checkIfAccountIsValidator( + 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + ); + expect(isAccountValidator).toEqual(true); + }); + + it('should return false when account is not a validator', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestIndexer } = require(mockedRequestFilePath); + requestIndexer.mockResolvedValueOnce({ + data: [], + meta: {}, + }); + + const { checkIfAccountIsValidator } = require('../../../../shared/helpers/account'); + + const isAccountValidator = await checkIfAccountIsValidator( + 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + ); + expect(isAccountValidator).toEqual(false); + }); + }); + + describe('Test getOpeningBalances method', () => { + it('should return opening balances when called with valid address', async () => { + const mockUserSubstore = [ + { + address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + availableBalance: '100000000000000', + lockedBalances: [], + tokenID: '0400000000000000', + }, + ]; + + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestConnector } = require(mockedRequestFilePath); + requestConnector.mockResolvedValueOnce(undefined).mockResolvedValueOnce(mockUserSubstore); + + const { getOpeningBalances } = require('../../../../shared/helpers/account'); + + const openingBalance = await getOpeningBalances('lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo'); + const expectedResponse = [ + { + tokenID: '0400000000000000', + amount: '100000000000000', + }, + ]; + + expect(openingBalance).toEqual(expectedResponse); + }); + + it('should throw error when called with undefined', async () => { + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestConnector } = require(mockedRequestFilePath); + requestConnector.mockResolvedValueOnce(undefined); + + const { getOpeningBalances } = require('../../../../shared/helpers/account'); + expect(getOpeningBalances(undefined)).rejects.toThrow(); + }); + }); + + describe('Test getTokenBalancesAtGenesis method', () => { + it('should return token balances at genesis', async () => { + const mockUserSubstore = [ + { + address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + availableBalance: '100000000000000', + lockedBalances: [], + tokenID: '0400000000000000', + }, + ]; + + jest.mock(mockedRequestFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestConnector } = require(mockedRequestFilePath); + requestConnector.mockResolvedValueOnce({ + token: { + userSubstore: 1, + }, + }); + + jest.mock(mockedRequestAllFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { requestAllCustom } = require(mockedRequestAllFilePath); + await requestAllCustom.mockReturnValue({ userSubstore: mockUserSubstore }); + + const { getTokenBalancesAtGenesis } = require('../../../../shared/helpers/account'); + + const tokenBalances1 = await getTokenBalancesAtGenesis(); + const expectedResponse1 = undefined; + expect(tokenBalances1).toEqual(expectedResponse1); + + // Add delay to let the mock first resolve the async promise from requestConnector + await delay(10); + + const tokenBalances2 = await getTokenBalancesAtGenesis(); + const expectedResponse2 = [ + { + tokenID: '0400000000000000', + address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + availableBalance: '100000000000000', + lockedBalances: [], + }, + ]; + + expect(tokenBalances2).toEqual(expectedResponse2); + }); + }); }); diff --git a/services/export/tests/unit/shared/helpers/array.test.js b/services/export/tests/unit/shared/helpers/array.test.js new file mode 100644 index 0000000000..fcac22e1fb --- /dev/null +++ b/services/export/tests/unit/shared/helpers/array.test.js @@ -0,0 +1,55 @@ +/* + * LiskHQ/lisk-service + * Copyright © 2024 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +const _ = require('lodash'); +const { dropDuplicatesDeep } = require('../../../../shared/helpers/array'); + +describe('Unit tests for array utilities', () => { + describe('Test dropDuplicates method', () => { + const isEveryElementUnique = array => + array.every((e, i, a) => a.filter(n => _.isEqual(e, n)).length === 1); + + it('Array with duplicates', async () => { + const input1 = [2, 3, 4, 5, 6, 7]; + const input2 = [5, 7, 9, 11, 13]; + const result = dropDuplicatesDeep(input1.concat(input2)); + expect(result).toBeInstanceOf(Array); + expect(result.length).toBeLessThanOrEqual(input1.length + input2.length); + expect(isEveryElementUnique(result)).toBeTruthy(); + }); + + it('Array with duplicate objects', async () => { + const input = [{ a: 1 }, { a: 1 }, { a: 1 }, { b: { c: 2 } }, { b: { c: 2 } }]; + const result = dropDuplicatesDeep(input); + expect(result).toBeInstanceOf(Array); + expect(result.length).toBe(2); + }); + + it('Array with no duplicates', async () => { + const input = [2, 3, 4, 5, 6, 7]; + const result = dropDuplicatesDeep(input); + expect(result).toBeInstanceOf(Array); + expect(result.length).toBe(input.length); + expect(isEveryElementUnique(result)).toBeTruthy(); + }); + + it('Array with no duplicate objects', async () => { + const input = [{ a: 1 }, { b: 1 }, { c: 1 }, { b: { c: 2 } }, { b: { c: 200 } }]; + const result = dropDuplicatesDeep(input); + expect(result).toBeInstanceOf(Array); + expect(result.length).toBe(5); + }); + }); +}); diff --git a/services/export/tests/unit/shared/helpers/chain.test.js b/services/export/tests/unit/shared/helpers/chain.test.js index 445dd05e04..2c45aa7914 100644 --- a/services/export/tests/unit/shared/helpers/chain.test.js +++ b/services/export/tests/unit/shared/helpers/chain.test.js @@ -13,13 +13,16 @@ * Removal or modification of this copyright notice is prohibited. * */ -const { resolveReceivingChainID, getUniqueChainIDs } = require('../../../../shared/helpers/chain'); - const { transactions } = require('../../../constants/transaction'); +const { + resolveReceivingChainID, + getUniqueChainIDs, + resolveChainIDs, +} = require('../../../../shared/helpers/chain'); + describe('Test chain utils', () => { const currentChainID = '04000000'; - it('should return current chainID in case of non-Token-TransferCrossChain', async () => { const receivingChainID = resolveReceivingChainID(transactions.tokenTransfer, currentChainID); expect(receivingChainID).toBe(currentChainID); @@ -61,3 +64,30 @@ describe('Test getUniqueChainIDs', () => { expect(getUniqueChainIDs(undefined)).rejects.toThrow(); }); }); + +describe('Test resolveChainIDs method', () => { + const chainID = '04000000'; + + it('should return same sendingChainID and receivingChainID when called with token transfer transaction', async () => { + const response = resolveChainIDs(transactions.tokenTransfer, chainID); + const expectedResponse = { + receivingChainID: '04000000', + sendingChainID: '04000000', + }; + expect(response).toEqual(expectedResponse); + }); + + it('should return sendingChainID and receivingChainID when called with token transferCrossChain transaction', async () => { + const response = resolveChainIDs(transactions.tokenTransferCrossChain, chainID); + const expectedResponse = { + receivingChainID: '04000001', + sendingChainID: '04000000', + }; + expect(response).toEqual(expectedResponse); + }); + + xit('should return empty object when called with non-token transferCrossChain transaction', async () => { + const response = resolveChainIDs(transactions.stake, chainID); + expect(Object.getOwnPropertyNames(response).length).toBe(0); + }); +}); diff --git a/services/export/tests/unit/shared/helpers/event.test.js b/services/export/tests/unit/shared/helpers/event.test.js new file mode 100644 index 0000000000..1a64a1d720 --- /dev/null +++ b/services/export/tests/unit/shared/helpers/event.test.js @@ -0,0 +1,47 @@ +/* + * LiskHQ/lisk-service + * Copyright © 2024 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +const { + getCcmIDFromTopic0, + getTransactionIDFromTopic0, +} = require('../../../../shared/helpers/event'); + +describe('Event utils', () => { + it('returns ccmID when called with valid topic (ccmID with prefix)', async () => { + const topic = '05ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + const ccmID = getCcmIDFromTopic0(topic); + const expectedResponse = 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + expect(ccmID).toBe(expectedResponse); + }); + + it('returns null when called with ccmID without prefix', async () => { + const topic = 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + const ccmID = getCcmIDFromTopic0(topic); + expect(ccmID).toBeNull(); + }); + + it('returns transactionID when called with valid topic (transactionID with prefix)', async () => { + const topic = '04ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + const transactionID = getTransactionIDFromTopic0(topic); + const expectedResponse = 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + expect(transactionID).toBe(expectedResponse); + }); + + it('returns null when called with transactionID without prefix', async () => { + const topic = 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1'; + const ccmID = getTransactionIDFromTopic0(topic); + expect(ccmID).toBeNull(); + }); +}); diff --git a/services/export/tests/unit/shared/helpers/file.test.js b/services/export/tests/unit/shared/helpers/file.test.js index 4e315b47ac..2a856c196a 100644 --- a/services/export/tests/unit/shared/helpers/file.test.js +++ b/services/export/tests/unit/shared/helpers/file.test.js @@ -15,19 +15,18 @@ */ const path = require('path'); const fs = require('fs'); -const { - init, - write, - read, - remove, - list, - purge, - fileExists, - isFile, - isFilePathInDirectory, -} = require('../../../../shared/helpers/file'); +const { interval } = require('../../../constants/csvExport'); const { dynamicFieldsCustomDelimiter } = require('../../../constants/csv'); +const { + PARTIAL_FILENAME, + EXCEL_EXPORT_FILENAME, + EXCEL_FILE_URL, +} = require('../../../../shared/regex'); + +const mockedChainFilePath = path.resolve(`${__dirname}/../../../../shared/helpers/chain`); + +beforeEach(() => jest.resetModules()); describe('Test filesystem interface', () => { let dirPath; @@ -44,12 +43,15 @@ describe('Test filesystem interface', () => { }); it('should create a directory when calling init() method', async () => { + const { init, fileExists } = require('../../../../shared/helpers/file'); + await init({ dirPath }); const isExists = await fileExists(dirPath); expect(isExists).toBe(true); }); it('should write data to a file when calling write() method', async () => { + const { write } = require('../../../../shared/helpers/file'); const filePath = `${dirPath}/testfile.csv`; // Write data into the file @@ -62,6 +64,8 @@ describe('Test filesystem interface', () => { it('should return the data from a file when calling read() method', async () => { const filePath = `${dirPath}/testfile.csv`; + const { read } = require('../../../../shared/helpers/file'); + // Read data from file const result = await read(filePath); expect(result).toEqual(testData); @@ -69,6 +73,7 @@ describe('Test filesystem interface', () => { it('should remove a file when calling remove() method', async () => { const filePath = `${dirPath}/testfile.csv`; + const { remove, fileExists } = require('../../../../shared/helpers/file'); let isExists = await fileExists(filePath); expect(isExists).toBe(true); @@ -81,6 +86,8 @@ describe('Test filesystem interface', () => { const filePath1 = `${dirPath}/testfile1.csv`; const filePath2 = `${dirPath}/testfile2.csv`; + const { write, list } = require('../../../../shared/helpers/file'); + await write(filePath1, testData); await write(filePath2, testData); @@ -89,6 +96,7 @@ describe('Test filesystem interface', () => { }); it('should return false for a directory when calling isFile() method', async () => { + const { write, isFile } = require('../../../../shared/helpers/file'); expect(await isFile(dirPath)).toBe(false); const filePath = `${dirPath}/testfile.csv`; @@ -97,6 +105,7 @@ describe('Test filesystem interface', () => { }); it('should throw error when calling purge() method when path is null', async () => { + const { list, purge } = require('../../../../shared/helpers/file'); const files = await list(dirPath); expect(files.length).toBe(3); @@ -104,6 +113,7 @@ describe('Test filesystem interface', () => { }); it('should remove all files in a directory when calling purge() method', async () => { + const { list, purge } = require('../../../../shared/helpers/file'); let files = await list(dirPath); expect(files.length).toBe(3); @@ -114,6 +124,7 @@ describe('Test filesystem interface', () => { }); it('should return true for file path within the directory', () => { + const { isFilePathInDirectory } = require('../../../../shared/helpers/file'); const filePath = `${dirPath}/testfile.csv`; const result = isFilePathInDirectory(filePath, dirPath); expect(result).toBe(true); @@ -121,7 +132,196 @@ describe('Test filesystem interface', () => { it('should return false for file path outside the directory', () => { const filePath = `${dirPath}/../../testfile.csv`; + const { isFilePathInDirectory } = require('../../../../shared/helpers/file'); const result = isFilePathInDirectory(filePath, dirPath); expect(result).toBe(false); }); }); + +describe('Test getPartialFilenameFromParams method', () => { + const address = 'lskpg7qukha2nmu9483huwk8oty7q3pyevh3bohr4'; + const publicKey = '86cbecb2a176934e454f63e7ffa05783be6960d90002c5558dfd31397cd8f020'; + const partialFilenameExtension = '.json'; + + it('should return partial filename when called with address', async () => { + const params = { address, interval: interval.startEnd }; + const { getPartialFilenameFromParams } = require('../../../../shared/helpers/file'); + const partialFilename = await getPartialFilenameFromParams(params, interval.onlyStart); + expect(partialFilename.endsWith(partialFilenameExtension)).toBeTruthy(); + expect(partialFilename).toContain(address); + expect(partialFilename).toMatch(PARTIAL_FILENAME); + }); + + it('should return partial filename when called with publicKey', async () => { + const params = { publicKey, interval: interval.onlyStart }; + const { getPartialFilenameFromParams } = require('../../../../shared/helpers/file'); + const partialFilename = await getPartialFilenameFromParams(params, interval.onlyStart); + expect(partialFilename.endsWith(partialFilenameExtension)).toBeTruthy(); + expect(partialFilename).toContain(address); + expect(partialFilename).toMatch(PARTIAL_FILENAME); + }); +}); + +describe('Excel export utils', () => { + const address = 'lskeqretdgm6855pqnnz69ahpojk5yxfsv2am34et'; + const publicKey = 'b7fdfc991c52ad6646159506a8326d4203c868bd3f16b8043c8e4e034346e581'; + const chainID = '00000000'; + const excelFilenameExtension = '.xlsx'; + const excelFileUrlBeginsWith = '/api/v3/export/'; + + describe('Test getExcelFilenameFromParams method', () => { + it('should return excel filename when called with address and complete interval with start and end date supplied', async () => { + const params = { address, interval: interval.startEnd }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + + it('should return excel filename when called with publicKey and complete interval with start and end date supplied', async () => { + const params = { publicKey, interval: interval.startEnd }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + + it('should return excel filename when called with address and interval with only start date supplied', async () => { + const params = { address, interval: interval.onlyStart }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + + it('should return excel filename when called with publicKey and interval with only start date supplied', async () => { + const params = { publicKey, interval: interval.onlyStart }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + + xit('should return excel filename when called with address and no interval supplied', async () => { + const params = { address }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + + xit('should return excel filename when called with publicKey and no interval supplied', async () => { + const params = { publicKey }; + const { getExcelFilenameFromParams } = require('../../../../shared/helpers/file'); + const excelFilename = await getExcelFilenameFromParams(params, chainID); + expect(excelFilename.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilename).toContain(address); + expect(excelFilename).toMatch(EXCEL_EXPORT_FILENAME); + }); + }); + + describe('Test getExcelFileUrlFromParams method', () => { + it('should return excel filepath URL when called with address and complete interval with start and end date supplied', async () => { + const params = { address, interval: interval.startEnd }; + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + + it('should return excel filepath URL when called with publicKey and complete interval with start and end date supplied', async () => { + const params = { publicKey, interval: interval.startEnd }; + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + + it('should return excel filepath URL when called with address and interval with only start date supplied', async () => { + const params = { address, interval: interval.onlyStart }; + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + + it('should return excel filepath URL when called with publicKey and interval with only start date supplied', async () => { + const params = { publicKey, interval: interval.onlyStart }; + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + + it('should return excel filepath URL when called with address and no interval supplied', async () => { + const params = { address }; + + jest.mock(mockedChainFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { getNetworkStatus, getBlocks } = require(mockedChainFilePath); + getNetworkStatus.mockResolvedValueOnce({ + data: { + genesisHeight: 1, + }, + }); + + getBlocks.mockResolvedValueOnce({ + data: [ + { + timestamp: 1704198870, + }, + ], + }); + + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + + it('should return excel filepath URL when called with publicKey and no interval supplied', async () => { + const params = { publicKey }; + + jest.mock(mockedChainFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { getNetworkStatus, getBlocks } = require(mockedChainFilePath); + getNetworkStatus.mockResolvedValueOnce({ + data: { + genesisHeight: 1, + }, + }); + + getBlocks.mockResolvedValueOnce({ + data: [ + { + timestamp: 1704198870, + }, + ], + }); + + const { getExcelFileUrlFromParams } = require('../../../../shared/helpers/file'); + + const excelFilepathUrl = await getExcelFileUrlFromParams(params, chainID); + expect(excelFilepathUrl.startsWith(excelFileUrlBeginsWith)).toBeTruthy(); + expect(excelFilepathUrl.endsWith(excelFilenameExtension)).toBeTruthy(); + expect(excelFilepathUrl).toContain(address); + expect(excelFilepathUrl).toMatch(EXCEL_FILE_URL); + }); + }); +}); diff --git a/services/export/tests/unit/shared/requestAll.test.js b/services/export/tests/unit/shared/helpers/requestAll.test.js similarity index 94% rename from services/export/tests/unit/shared/requestAll.test.js rename to services/export/tests/unit/shared/helpers/requestAll.test.js index 586edd2f0a..57f94012b0 100644 --- a/services/export/tests/unit/shared/requestAll.test.js +++ b/services/export/tests/unit/shared/helpers/requestAll.test.js @@ -15,11 +15,11 @@ */ const { resolve } = require('path'); -const { transactions } = require('../../constants/transaction'); +const { transactions } = require('../../../constants/transaction'); -const { requestAllStandard, requestAllCustom } = require('../../../shared/requestAll'); +const { requestAllStandard, requestAllCustom } = require('../../../../shared/helpers/requestAll'); -const mockedRequestFilePath = resolve(`${__dirname}/../../../shared/helpers/request`); +const mockedRequestFilePath = resolve(`${__dirname}/../../../../shared/helpers/request`); const getResponseOfLength = (n, singleRequestLimit) => new Array(n).fill().map((e, i) => ({ diff --git a/services/export/tests/unit/shared/helpers/time.test.js b/services/export/tests/unit/shared/helpers/time.test.js index 18fbfc9610..8dd9c59c44 100644 --- a/services/export/tests/unit/shared/helpers/time.test.js +++ b/services/export/tests/unit/shared/helpers/time.test.js @@ -13,18 +13,85 @@ * Removal or modification of this copyright notice is prohibited. * */ -const { dateFromTimestamp, timeFromTimestamp } = require('../../../../shared/helpers/time'); +const { resolve } = require('path'); +const moment = require('moment'); +const config = require('../../../../config'); + +const { interval } = require('../../../constants/csvExport'); +const { STANDARDIZED_INTERVAL } = require('../../../../shared/regex'); const { timestamp, expectedDate, expectedTime } = require('../../../constants/time'); +const mockedChainFilePath = resolve(`${__dirname}/../../../../shared/helpers/chain`); + +beforeEach(() => jest.resetModules()); + describe('Time utils', () => { it('returns ISO format UTC Date from unix timestamp', async () => { + const { dateFromTimestamp } = require('../../../../shared/helpers/time'); const date = dateFromTimestamp(timestamp); expect(date).toBe(expectedDate); }); it('returns ISO format UTC Time from unix timestamp', async () => { + const { timeFromTimestamp } = require('../../../../shared/helpers/time'); const time = timeFromTimestamp(timestamp); expect(time).toBe(expectedTime); }); }); + +describe('Test getToday method', () => { + it(`should return current date in '${config.excel.dateFormat}' format`, async () => { + const { getToday } = require('../../../../shared/helpers/time'); + const today = getToday(); + expect(today).toBe(moment().format(config.excel.dateFormat)); + }); +}); + +describe('Test standardizeIntervalFromParams method', () => { + it('should return standardized interval when both start and end date supplied', async () => { + const { standardizeIntervalFromParams } = require('../../../../shared/helpers/time'); + const result = await standardizeIntervalFromParams({ interval: interval.startEnd }); + expect(typeof result).toBe('string'); + expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); + expect(result).toMatch(STANDARDIZED_INTERVAL); + }); + + it('should return standardized interval when only start date supplied', async () => { + const { standardizeIntervalFromParams } = require('../../../../shared/helpers/time'); + const result = await standardizeIntervalFromParams({ interval: interval.onlyStart }); + expect(typeof result).toBe('string'); + expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); + expect(result).toMatch(STANDARDIZED_INTERVAL); + }); + + it('should throw error when invalid interval supplied', async () => { + const { standardizeIntervalFromParams } = require('../../../../shared/helpers/time'); + expect(standardizeIntervalFromParams({ interval: interval.invalid })).rejects.toThrow(); + }); + + it('should return standardized interval when dates not supplied', async () => { + jest.mock(mockedChainFilePath); + // eslint-disable-next-line import/no-dynamic-require + const { getNetworkStatus, getBlocks } = require(mockedChainFilePath); + getNetworkStatus.mockResolvedValueOnce({ + data: { + genesisHeight: 1, + }, + }); + + getBlocks.mockResolvedValueOnce({ + data: [ + { + timestamp: 1704198870, + }, + ], + }); + + const { standardizeIntervalFromParams } = require('../../../../shared/helpers/time'); + const result = await standardizeIntervalFromParams({}); + expect(typeof result).toBe('string'); + expect(result.length).toBe(2 * config.excel.dateFormat.length + 1); + expect(result).toMatch(STANDARDIZED_INTERVAL); + }); +}); diff --git a/services/export/tests/unit/shared/helpers/transaction.test.js b/services/export/tests/unit/shared/helpers/transaction.test.js index 2d6bfa33ab..3acbc59f6a 100644 --- a/services/export/tests/unit/shared/helpers/transaction.test.js +++ b/services/export/tests/unit/shared/helpers/transaction.test.js @@ -23,24 +23,13 @@ const { transactions } = require('../../../constants/transaction'); describe('Test Transaction utility', () => { describe('Validate transaction amount is properly normalized', () => { - it('should return amount in a standardized format for a valid transaction', async () => { + it('should return null amount for a non token:transfer and token:transferCrossChain transactions', async () => { const amount = normalizeTransactionAmount( transactions.reclaim.sender.address, transactions.reclaim, ); - expect(amount).not.toBeNull(); - expect(typeof amount).toBe('string'); - expect(amount).toBe(transactions.reclaim.params.amount); - }); - - it('should return positive amount value for reclaim transaction', async () => { - const amount = normalizeTransactionAmount( - transactions.reclaim.sender.address, - transactions.reclaim, - ); - - expect(Number(amount)).toBeGreaterThan(0); + expect(amount).toBeNull(); }); it('should return positive amount value for incoming token transfer transaction', async () => { @@ -97,7 +86,7 @@ describe('Test Transaction utility', () => { expect(fee).not.toBeNull(); expect(typeof fee).toBe('string'); - expect(fee).toBe(transactions.reclaim.fee); + expect(fee).toBe(String(-transactions.reclaim.fee)); }); it('should return 0 fees for a token transfer credit', async () => { @@ -119,7 +108,7 @@ describe('Test Transaction utility', () => { expect(fee).not.toBeNull(); expect(typeof fee).toBe('string'); - expect(fee).toBe(transactions.tokenTransfer.fee); + expect(fee).toBe(String(-transactions.tokenTransfer.fee)); }); }); diff --git a/services/export/tests/unit/shared/transactionsExport.test.js b/services/export/tests/unit/shared/transactionsExport.test.js index 8b417745ce..e2dc285b9f 100644 --- a/services/export/tests/unit/shared/transactionsExport.test.js +++ b/services/export/tests/unit/shared/transactionsExport.test.js @@ -16,31 +16,18 @@ /* eslint-disable mocha/max-top-level-suites */ /* eslint-disable import/no-dynamic-require */ const { resolve } = require('path'); -const moment = require('moment'); -const { interval, tokenTransfer } = require('../../constants/csvExport'); - -const { transactions } = require('../../constants/transaction'); +const { tokenTransfer } = require('../../constants/csvExport'); const { blocks } = require('../../constants/blocks'); +const { events } = require('../../constants/events'); +const { transactions } = require('../../constants/transaction'); -const config = require('../../../config'); const fieldMappings = require('../../../shared/excelFieldMappings'); -const { PARTIAL_FILENAME } = require('../../../shared/regex'); - -const { - getAddressFromParams, - getToday, - normalizeTransaction, - getPartialFilenameFromParams, - resolveChainIDs, - normalizeBlocks, -} = require('../../../shared/transactionsExport'); const { dateFromTimestamp, timeFromTimestamp } = require('../../../shared/helpers/time'); const mockedRequestFilePath = resolve(`${__dirname}/../../../shared/helpers/request`); -const mockedRequestAllFilePath = resolve(`${__dirname}/../../../shared/requestAll`); jest.mock('lisk-service-framework', () => { const actualLiskServiceFramework = jest.requireActual('lisk-service-framework'); @@ -57,589 +44,730 @@ jest.mock('lisk-service-framework', () => { }, }, CacheRedis: jest.fn(), - CacheLRU: jest.fn(), + CacheLRU: jest.fn(() => ({ + set: jest.fn(), + get: jest.fn(), + })), Queue: jest.fn(), }; }); beforeEach(() => jest.resetModules()); -const address = 'lskpg7qukha2nmu9483huwk8oty7q3pyevh3bohr4'; -const publicKey = '86cbecb2a176934e454f63e7ffa05783be6960d90002c5558dfd31397cd8f020'; const chainID = '04000000'; const txFeeTokenID = '0400000000000000'; -const partialFilenameExtension = '.json'; - -describe('Test getOpeningBalance method', () => { - it('should return opening balance when called with valid address', async () => { - const mockUserSubstore = { - address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - availableBalance: '100000000000000', - lockedBalances: [], - tokenID: '0400000000000000', - }; - jest.mock(mockedRequestFilePath); - const { requestConnector } = require(mockedRequestFilePath); - requestConnector.mockResolvedValueOnce(undefined).mockResolvedValueOnce(mockUserSubstore); +describe('Test formatTransaction method', () => { + it('should return a transaction normalized', async () => { + const { formatTransaction } = require('../../../shared/transactionsExport'); - const { getOpeningBalance } = require('../../../shared/transactionsExport'); + const formattedTx = await formatTransaction( + tokenTransfer.toOther.sender, + tokenTransfer.toOther.transaction, + chainID, + txFeeTokenID, + ); + const expectedFields = Object.values(fieldMappings.transactionMappings).map(v => + v.key !== 'blockReward' ? v.key : undefined, + ); + expect(Object.keys(formattedTx)).toEqual(expect.arrayContaining(expectedFields.filter(e => e))); + }); +}); - const openingBalance = await getOpeningBalance('lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo'); - const expectedResponse = { - tokenID: '0400000000000000', - amount: '100000000000000', - }; +describe('Test formatBlocks method', () => { + it('should return a blocks normalized when called with valid blocks', async () => { + const { formatBlocks } = require('../../../shared/transactionsExport'); - expect(openingBalance).toEqual(expectedResponse); + const normalizedBlocks = await formatBlocks(blocks); + const expectedResponse = [ + { + blockHeight: blocks[0].height, + blockReward: blocks[0].reward, + date: dateFromTimestamp(blocks[0].timestamp), + time: timeFromTimestamp(blocks[0].timestamp), + }, + { + blockHeight: blocks[1].height, + blockReward: blocks[1].reward, + date: dateFromTimestamp(blocks[1].timestamp), + time: timeFromTimestamp(blocks[1].timestamp), + }, + { + blockHeight: blocks[2].height, + blockReward: blocks[2].reward, + date: dateFromTimestamp(blocks[2].timestamp), + time: timeFromTimestamp(blocks[2].timestamp), + }, + ]; + expect(normalizedBlocks).toEqual(expectedResponse); + }); + + it('should throw error when called with null', async () => { + const { formatBlocks } = require('../../../shared/transactionsExport'); + expect(formatBlocks(null)).rejects.toThrow(); }); it('should throw error when called with undefined', async () => { + const { formatBlocks } = require('../../../shared/transactionsExport'); + expect(formatBlocks(undefined)).rejects.toThrow(); + }); +}); + +describe('Test getBlockRewardEntries method', () => { + const address = 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo'; + it('should return block reward entries when token minted', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, requestConnector() { - return undefined; + return { + posTokenID: '0400000000000000', + }; + }, + requestIndexer() { + return { + data: { + chainID: '04000000', + }, + }; }, }; }); - const { getOpeningBalance } = require('../../../shared/transactionsExport'); - expect(getOpeningBalance(undefined)).rejects.toThrow(); - }); -}); + const { getBlockRewardEntries } = require('../../../shared/transactionsExport'); -describe('Test getCrossChainTransferTransactionInfo method', () => { - it('should return transaction info when called with valid address (event topic contains transaction prefix)', async () => { - const mockEventData = [ + const blockRewardEntries = await getBlockRewardEntries( + address, + events.tokenMintedEvent, + null, + blocks[0], + ); + + const expectedResult = [ { - id: 'efe94d3a5ad35297098614100c5dd7bff6657d38baed08fb850fa9ce69b0862c', - module: 'token', - name: 'ccmTransfer', - data: { - senderAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - tokenID: '0400000000000000', - amount: '100000000000', - receivingChainID: '04000001', - result: 0, - }, - topics: [ - '04efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - ], - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, + amount: '161000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Block generation reward (commission + self-stake)', + receivingChainID: '04000000', + recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + recipientPublicKey: '7fb87fd7fdfef8037d9b6ca705d17000b9f639b4c7aa6f13383d178c783bbdfd', + senderAddress: null, + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: null, + txFeeTokenID: null, }, ]; - jest.mock(mockedRequestAllFilePath, () => { - const actual = jest.requireActual(mockedRequestAllFilePath); - return { - ...actual, - requestAllStandard() { - return mockEventData; - }, - }; - }); + expect(blockRewardEntries).toHaveLength(1); + expect(blockRewardEntries).toEqual(expectedResult); + }); + it('should return block reward entries when token minted and locked', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return { + posTokenID: '0400000000000000', + }; + }, requestIndexer() { return { - data: [ - { - moduleCommand: 'interoperability:submitSidechainCrossChainUpdate', - params: { sendingChainID: '04000000' }, - }, - ], + data: { + chainID: '04000000', + }, }; }, }; }); - const { getCrossChainTransferTransactionInfo } = require('../../../shared/transactionsExport'); + const { getBlockRewardEntries } = require('../../../shared/transactionsExport'); - const crossChainTransferTxs = await getCrossChainTransferTransactionInfo({ - address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - }); - const expectedResponse = [ + const blockRewardEntries = await getBlockRewardEntries( + address, + events.tokenMintedEvent, + events.tokenLockedEvent, + blocks[0], + ); + const expectedResult = [ { - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, - id: 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - isIncomingCrossChainTransferTransaction: true, - moduleCommand: 'interoperability:submitSidechainCrossChainUpdate', - params: { - amount: '100000000000', - data: "This entry was generated from 'ccmTransfer' event emitted from the specified CCU transactionID.", - receivingChainID: '04000001', - recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - result: 0, - senderAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - tokenID: '0400000000000000', - }, - sender: { - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }, + amount: '30000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Block generation reward (commission + self-stake)', + receivingChainID: '04000000', + recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + recipientPublicKey: '7fb87fd7fdfef8037d9b6ca705d17000b9f639b4c7aa6f13383d178c783bbdfd', + senderAddress: null, + senderPublicKey: null, sendingChainID: '04000000', + time: '11:52:28', + transactionID: null, + txFeeTokenID: null, + }, + { + amount: '131000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Block generation reward (custodial shared rewards locked)', + receivingChainID: '04000000', + recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + recipientPublicKey: '7fb87fd7fdfef8037d9b6ca705d17000b9f639b4c7aa6f13383d178c783bbdfd', + senderAddress: null, + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: null, + txFeeTokenID: null, }, ]; - expect(crossChainTransferTxs).toEqual(expectedResponse); + expect(blockRewardEntries).toHaveLength(2); + expect(blockRewardEntries).toEqual(expectedResult); }); +}); - it('should return transaction info when called with valid address (event topic does not contain transaction prefix)', async () => { - const mockEventData = [ - { - id: 'efe94d3a5ad35297098614100c5dd7bff6657d38baed08fb850fa9ce69b0862c', - module: 'token', - name: 'ccmTransfer', - data: { - senderAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - tokenID: '0400000000000000', - amount: '100000000000', - receivingChainID: '04000001', - result: 0, - }, - topics: [ - 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - ], - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, - }, - ]; +describe('Test getChainInfo method', () => { + it('should return chain info when called with valid chainID', async () => { + const validChainID = '04000000'; - jest.mock(mockedRequestAllFilePath, () => { - const actual = jest.requireActual(mockedRequestAllFilePath); + jest.mock(mockedRequestFilePath, () => { + const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, - requestAllStandard() { - return mockEventData; + requestAppRegistry() { + return { + data: [ + { + chainName: 'lisk_mainchain', + displayName: 'Lisk', + chainID: '04000000', + title: 'Lisk - Devnet', + description: 'Metadata configuration for the Lisk blockchain (mainchain) in devnet', + networkType: 'devnet', + isDefault: true, + }, + ], + }; }, }; }); + const { getChainInfo } = require('../../../shared/transactionsExport'); + + const chainInfo = await getChainInfo(validChainID); + const expectedResponse = { + chainName: 'lisk_mainchain', + chainID: '04000000', + }; + expect(chainInfo).toEqual(expectedResponse); + }); +}); + +describe('Test getGeneratorFeeEntries method', () => { + const address = 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp'; + it('should return generator fee reward entries', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return '0400000000000000'; + }, requestIndexer() { return { - data: [ - { - moduleCommand: 'interoperability:submitSidechainCrossChainUpdate', - params: { sendingChainID: '04000000' }, - }, - ], + data: { + chainID: '04000000', + }, }; }, }; }); - const { getCrossChainTransferTransactionInfo } = require('../../../shared/transactionsExport'); + const { getGeneratorFeeEntries } = require('../../../shared/transactionsExport'); - const crossChainTransferTxs = await getCrossChainTransferTransactionInfo({ - address: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - }); - const expectedResponse = [ + const generatorFeeEntries = await getGeneratorFeeEntries( + address, + events.genFeeProcessed, + transactions.tokenTransfer, + blocks[0], + ); + + const expectedResult = [ { - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, - id: 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - isIncomingCrossChainTransferTransaction: true, - moduleCommand: 'interoperability:submitSidechainCrossChainUpdate', - params: { - amount: '100000000000', - data: "This entry was generated from 'ccmTransfer' event emitted from the specified CCU transactionID.", - receivingChainID: '04000001', - recipientAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - result: 0, - senderAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - tokenID: '0400000000000000', - }, - sender: { - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }, + amount: '21000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Generator Fee', + receivingChainID: '04000000', + recipientAddress: 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp', + recipientPublicKey: null, + senderAddress: 'lskmv6entvj8cnrhfdoa38ojx34pv4rd9q44788r7', + senderPublicKey: '1a315a7c7ccfb44ee0730f22cac4370307a7ef29710b938cff52e653cac753ad', sendingChainID: '04000000', + time: '11:52:28', + transactionID: 'd41e8fbb909fdf44ffccef6f5b0fb5edf853f0dcf699243a0a92403d2a4f1d1d', + txFeeTokenID: null, }, ]; - expect(crossChainTransferTxs).toEqual(expectedResponse); + expect(generatorFeeEntries).toEqual(expectedResult); }); +}); - it('should throw error when called with undefined', async () => { +describe('Test getSharedRewardsAssignedEntries method', () => { + const address = 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo'; + it('should return shared reward entries', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return { + posTokenID: '0400000000000000', + }; + }, requestIndexer() { - return undefined; + return { + data: { + chainID: '04000000', + }, + }; }, }; }); - const { getCrossChainTransferTransactionInfo } = require('../../../shared/transactionsExport'); - expect(getCrossChainTransferTransactionInfo(undefined)).rejects.toThrow(); - }); -}); + const { getSharedRewardsAssignedEntries } = require('../../../shared/transactionsExport'); -describe('Test getRewardAssignedInfo method', () => { - it('should return reward assigned info when called with valid address (event topic contains transaction prefix)', async () => { - const mockEventData = [ + const sharedRewardsAssignedEntries = await getSharedRewardsAssignedEntries( + address, + events.rewardsAssigned, + transactions.claimedRewards, + blocks[0], + ); + + const expectedResult = [ { - id: 'efe94d3a5ad35297098614100c5dd7bff6657d38baed08fb850fa9ce69b0862c', - module: 'pos', - name: 'rewardsAssigned', - data: { - stakerAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - validatorAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - tokenID: '0400000000000000', - amount: '100000000000', - result: 0, - }, - topics: [ - '04efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - ], - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, + amount: '-87694485125', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Custodial shared rewards transfer to the staker', + receivingChainID: '04000000', + recipientAddress: 'lskmg3sdmjp4smz6x9k2cuyuwags5ehgtexe4w2ds', + recipientPublicKey: 'f0fda0461215e4e63a68d12c79d293833c32519cfe3a5e01ca08b0a0a7493de5', + senderAddress: 'lsk26s9p9rb74ygzxayuf9cx6x7x5wuvp2v9yrns7', + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: '732923c6e8780251c1dcd179e3e657827ae9318a6df920de595d743f1ed70a40', + txFeeTokenID: null, }, ]; - jest.mock(mockedRequestAllFilePath, () => { - const actual = jest.requireActual(mockedRequestAllFilePath); - return { - ...actual, - requestAllStandard() { - return mockEventData; - }, - }; - }); + expect(sharedRewardsAssignedEntries).toEqual(expectedResult); + }); +}); + +describe('Test getMessageFeeEntries method', () => { + const address = 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp'; + const sendingChainID = '04000000'; + const receivingChainID = '04000000'; + const messageFeeTokenID = '0400000000000000'; + it('should return message fee entries', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return '0400000000000000'; + }, requestIndexer() { return { - data: [ - { - moduleCommand: 'pos:stake', - params: { - stakes: [ - { - validatorAddress: 'lskkdvzyxhvm2kmgs8hmteaad2zrjbjmf4cft9zpp', - amount: '-1000000000', - }, - { - validatorAddress: 'lsk64zamp63e9km9p6vtfea9c5pda2wuw79tc8a9k', - amount: '2000000000', - }, - ], - }, - }, - ], + data: { + chainID: '04000000', + }, }; }, }; }); - const { getRewardAssignedInfo } = require('../../../shared/transactionsExport'); + const { getMessageFeeEntries } = require('../../../shared/transactionsExport'); - const rewardsAssignedInfo = await getRewardAssignedInfo({ - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }); - const expectedResponse = [ + const messageFeeEntries = await getMessageFeeEntries( + address, + events.relayerFeeProcessed, + transactions.tokenTransferCrossChain, + blocks[0], + messageFeeTokenID, + sendingChainID, + receivingChainID, + ); + + const expectedResult = [ { - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, - id: 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - moduleCommand: 'pos:stake', - params: { - amount: '100000000000', - data: "This entry was generated from 'rewardsAssigned' event emitted from the specified transactionID.", - validatorAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - result: 0, - stakerAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - tokenID: '0400000000000000', - }, - sender: { - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }, - rewardAmount: '100000000000', - rewardTokenID: '0400000000000000', + amount: '50000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: 'token:transferCrossChain', + note: 'Message fee for relayer', + receivingChainID: '04000000', + recipientAddress: 'lskme8ohf9geuno8nwpvdqm8wr8bvz5nzguftwpxp', + recipientPublicKey: null, + senderAddress: null, + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: '2ceda7b8ccfaa6c452651e6ba2e0a8acf88350aeeb0cde4da98701419e0657c6', + txFeeTokenID: null, }, ]; - expect(rewardsAssignedInfo).toEqual(expectedResponse); + expect(messageFeeEntries).toEqual(expectedResult); }); - it('should return reward assigned info when called with valid address (event topic does not contain transaction prefix)', async () => { - const mockEventData = [ + it('should return empty list when relayer amount is 0', async () => { + const { getMessageFeeEntries } = require('../../../shared/transactionsExport'); + + const messageFeeEntries = await getMessageFeeEntries( + address, { - id: 'efe94d3a5ad35297098614100c5dd7bff6657d38baed08fb850fa9ce69b0862c', - module: 'pos', - name: 'rewardsAssigned', - data: { - stakerAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - validatorAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - tokenID: '0400000000000000', - amount: '100000000000', - result: 0, - }, - topics: [ - 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - ], - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, + ...events.relayerFeeProcessed, + data: { ...events.relayerFeeProcessed.data, relayerAmount: 0 }, }, - ]; - - jest.mock(mockedRequestAllFilePath, () => { - const actual = jest.requireActual(mockedRequestAllFilePath); - return { - ...actual, - requestAllStandard() { - return mockEventData; - }, - }; - }); + transactions.tokenTransferCrossChain, + blocks[0], + messageFeeTokenID, + sendingChainID, + receivingChainID, + ); + expect(messageFeeEntries).toHaveLength(0); + }); +}); +describe('Test getOutgoingTransferCCEntries method', () => { + const address = 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs'; + it('should return outgoing transfer cross chain entries with amount deducted', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return '0400000000000000'; + }, requestIndexer() { return { - data: [ - { - moduleCommand: 'pos:stake', - params: { - stakes: [ - { - validatorAddress: 'lskkdvzyxhvm2kmgs8hmteaad2zrjbjmf4cft9zpp', - amount: '-1000000000', - }, - { - validatorAddress: 'lsk64zamp63e9km9p6vtfea9c5pda2wuw79tc8a9k', - amount: '2000000000', - }, - ], - }, - }, - ], + data: { + chainID: '04000000', + }, }; }, }; }); - const { getRewardAssignedInfo } = require('../../../shared/transactionsExport'); + const { getOutgoingTransferCCEntries } = require('../../../shared/transactionsExport'); - const rewardsAssignedInfo = await getRewardAssignedInfo({ - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }); - const expectedResponse = [ + const outgoingTransferCCEntries = await getOutgoingTransferCCEntries( + address, + events.transferCrossChain, + events.ccmSendSuccess, + transactions.transferCrossChain, + blocks[2], + ); + + const expectedResult = [ { - block: { - id: '1fc7e1a4a06a6b9610ed5e4fb48c9f839b1fcd0f91b3f6d4c22f9f64eac40657', - height: 313, - timestamp: 1689693410, - }, - id: 'efcbab90c4769dc47029412010ef76623722678f446a7417f59fed998a6407de', - moduleCommand: 'pos:stake', - params: { - amount: '100000000000', - data: "This entry was generated from 'rewardsAssigned' event emitted from the specified transactionID.", - validatorAddress: 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', - result: 0, - stakerAddress: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - tokenID: '0400000000000000', - }, - sender: { - address: 'lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad', - }, - rewardAmount: '100000000000', - rewardTokenID: '0400000000000000', + amount: '-100000000', + amountTokenID: '0400000000000000', + blockHeight: 21016494, + date: '2024-01-02', + fee: '-10000000', + moduleCommand: 'token:transferCrossChain', + note: '', + receivingChainID: '04000002', + recipientAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + recipientPublicKey: '344c75738c096e4bd94459fe81eba45503382181d003a9d2c8be75a2f38b49fa', + senderAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + senderPublicKey: '344c75738c096e4bd94459fe81eba45503382181d003a9d2c8be75a2f38b49fa', + sendingChainID: '04000000', + time: '12:34:30', + transactionID: '34548b99aa37a5a450712c7e3f1e13b62be872d65dd7a8c1d54859408ca4914b', + txFeeTokenID: '0400000000000000', + }, + { + amount: '-109000', + amountTokenID: '0400000000000000', + blockHeight: 21016494, + date: '2024-01-02', + fee: null, + moduleCommand: null, + note: 'Message Fee', + receivingChainID: '04000002', + recipientAddress: null, + recipientPublicKey: null, + senderAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + senderPublicKey: '344c75738c096e4bd94459fe81eba45503382181d003a9d2c8be75a2f38b49fa', + sendingChainID: '04000000', + time: '12:34:30', + transactionID: '34548b99aa37a5a450712c7e3f1e13b62be872d65dd7a8c1d54859408ca4914b', + txFeeTokenID: null, }, ]; - expect(rewardsAssignedInfo).toEqual(expectedResponse); + expect(outgoingTransferCCEntries).toEqual(expectedResult); }); +}); - it('should throw error when called with undefined', async () => { +describe('Test getIncomingTransferCCEntries method', () => { + jest.mock(mockedRequestFilePath, () => { + const actual = jest.requireActual(mockedRequestFilePath); + return { + ...actual, + requestConnector() { + return '0400000000000000'; + }, + requestIndexer() { + return { + data: { + chainID: '04000000', + }, + }; + }, + }; + }); + + const address = 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs'; + it('should return incoming transfer cross chain entries with amount added', async () => { + const { getIncomingTransferCCEntries } = require('../../../shared/transactionsExport'); + + const incomingTransferCCEntries = await getIncomingTransferCCEntries( + address, + events.ccmTransfer, + transactions.submitMainchainCrossChainUpdate, + blocks[2], + ); + + const expectedResult = [ + { + amount: '100000000', + amountTokenID: '0400000000000000', + blockHeight: 21016494, + date: '2024-01-02', + fee: null, + moduleCommand: null, + note: 'Incoming CCM from specified CCU transactionID', + receivingChainID: '04000002', + recipientAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + recipientPublicKey: null, + senderAddress: 'lsk56p8e53k3kar8epeqwpbxa2yd4urn8ouzhfvgs', + senderPublicKey: null, + sendingChainID: '04000000', + time: '12:34:30', + transactionID: 'd16d1cb5fa32df64988b4ab5de66b7d43c8fbfdaf043aca84d649f914d66189f', + txFeeTokenID: null, + }, + ]; + + expect(incomingTransferCCEntries).toEqual(expectedResult); + }); + + it('should return empty list when result is not successful', async () => { + const { getIncomingTransferCCEntries } = require('../../../shared/transactionsExport'); + + const incomingTransferCCEntries = await getIncomingTransferCCEntries( + address, + { ...events.ccmTransfer, data: { ...events.ccmTransfer.data, result: 1 } }, + transactions.submitMainchainCrossChainUpdate, + blocks[2], + ); + expect(incomingTransferCCEntries).toHaveLength(0); + }); +}); + +describe('Test getLegacyAccountReclaimEntries method', () => { + const address = 'lskqz6gpqfu9tb5yc2jtqmqvqp3x8ze35g99u2zfd'; + it('should return generator fee reward entries', async () => { jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return '0400000000000000'; + }, requestIndexer() { - return undefined; + return { + data: { + chainID: '04000000', + }, + }; }, }; }); - const { getRewardAssignedInfo } = require('../../../shared/transactionsExport'); - expect(getRewardAssignedInfo(undefined)).rejects.toThrow(); - }); -}); - -describe('Test getAddressFromParams method', () => { - it('should return address from address in params', async () => { - const result = getAddressFromParams({ address }); - expect(result).toBe(address); - }); - - it('should return address from publicKey in params', async () => { - const result = getAddressFromParams({ publicKey }); - expect(result).toBe(address); - }); -}); + const { getLegacyAccountReclaimEntries } = require('../../../shared/transactionsExport'); -describe('Test getToday method', () => { - it(`should return current date in '${config.excel.dateFormat}' format`, async () => { - const today = getToday(); - expect(today).toBe(moment().format(config.excel.dateFormat)); - }); -}); - -describe('Test normalizeTransaction method', () => { - it('should return a transaction normalized', async () => { - const normalizedTx = await normalizeTransaction( - tokenTransfer.toOther.sender, - tokenTransfer.toOther.transaction, - chainID, - txFeeTokenID, - ); - const expectedFields = Object.values(fieldMappings.transactionMappings).map(v => - v.key !== 'blockReward' ? v.key : undefined, + const legacyAccountReclaimEntries = await getLegacyAccountReclaimEntries( + address, + events.accountReclaimed, + transactions.reclaim, + blocks[0], ); - expect(Object.keys(normalizedTx)).toEqual( - expect.arrayContaining(expectedFields.filter(e => e)), - ); - }); -}); -describe('Test getPartialFilenameFromParams method', () => { - it('should return partial filename when called with address', async () => { - const params = { address, interval: interval.startEnd }; - const partialFilename = await getPartialFilenameFromParams(params, interval.onlyStart); - expect(partialFilename.endsWith(partialFilenameExtension)).toBeTruthy(); - expect(partialFilename).toContain(address); - expect(partialFilename).toMatch(PARTIAL_FILENAME); - }); + const expectedResult = [ + { + amount: '100000000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'Legacy account balance reclaimed', + receivingChainID: '04000000', + recipientAddress: 'lskqz6gpqfu9tb5yc2jtqmqvqp3x8ze35g99u2zfd', + recipientPublicKey: null, + senderAddress: null, + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: '6cff643daaa2bd1112d1b4591abef3e62f9e4f6e37a260fcd7508ce6a06f061c', + txFeeTokenID: null, + }, + ]; - it('should return partial filename when called with publicKey', async () => { - const params = { publicKey, interval: interval.onlyStart }; - const partialFilename = await getPartialFilenameFromParams(params, interval.onlyStart); - expect(partialFilename.endsWith(partialFilenameExtension)).toBeTruthy(); - expect(partialFilename).toContain(address); - expect(partialFilename).toMatch(PARTIAL_FILENAME); + expect(legacyAccountReclaimEntries).toEqual(expectedResult); }); }); -describe('Test resolveChainIDs method', () => { - it('should return same sendingChainID and receivingChainID when called with token transfer transaction', async () => { - const response = resolveChainIDs(transactions.tokenTransfer, chainID); - const expectedResponse = { - receivingChainID: '04000000', - sendingChainID: '04000000', - }; - expect(response).toEqual(expectedResponse); - }); +describe('Test getPomEntries method', () => { + it('should return PoM entries reward deduction', async () => { + const address = 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5'; + jest.mock(mockedRequestFilePath, () => { + const actual = jest.requireActual(mockedRequestFilePath); + return { + ...actual, + requestConnector() { + return { + posTokenID: '0400000000000000', + }; + }, + requestIndexer() { + return { + data: { + chainID: '04000000', + }, + }; + }, + }; + }); - it('should return sendingChainID and receivingChainID when called with token transferCrossChain transaction', async () => { - const response = resolveChainIDs(transactions.tokenTransferCrossChain, chainID); - const expectedResponse = { - receivingChainID: '04000001', - sendingChainID: '04000000', - }; - expect(response).toEqual(expectedResponse); - }); + const { getPomEntries } = require('../../../shared/transactionsExport'); - it('should return empty object when called with non-token transferCrossChain transaction', async () => { - const response = resolveChainIDs(transactions.stake, chainID); - expect(Object.getOwnPropertyNames(response).length).toBe(0); - }); -}); + const pomEntries = await getPomEntries( + address, + events.tokenTransfer, + events.validatorPunished, + transactions.reportMisbehavior, + blocks[0], + ); -describe('Test normalizeBlocks method', () => { - it('should return a blocks normalized when called with valid blocks', async () => { - const normalizedBlocks = await normalizeBlocks(blocks); - const expectedResponse = [ - { - blockHeight: blocks[0].height, - blockReward: blocks[0].reward, - date: dateFromTimestamp(blocks[0].timestamp), - time: timeFromTimestamp(blocks[0].timestamp), - }, + const expectedResult = [ { - blockHeight: blocks[1].height, - blockReward: blocks[1].reward, - date: dateFromTimestamp(blocks[1].timestamp), - time: timeFromTimestamp(blocks[1].timestamp), + amount: '-100000000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'PoM punishment validator reward deduction', + receivingChainID: '04000000', + recipientAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + recipientPublicKey: null, + senderAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1', + txFeeTokenID: null, }, ]; - expect(normalizedBlocks).toEqual(expectedResponse); - }); - it('should throw error when called with null', async () => { - expect(normalizeBlocks(null)).rejects.toThrow(); + expect(pomEntries).toEqual(expectedResult); }); - it('should throw error when called with undefined', async () => { - expect(normalizeBlocks(undefined)).rejects.toThrow(); - }); -}); - -describe('Test validateIfAccountExists method', () => { - it('should return true when account exists', async () => { + it('should return PoM entries reward addition', async () => { + const address = 'lskqz6gpqfu9tb5yc2jtqmqvqp3x8ze35g99u2zfd'; jest.mock(mockedRequestFilePath, () => { const actual = jest.requireActual(mockedRequestFilePath); return { ...actual, + requestConnector() { + return { + posTokenID: '0400000000000000', + }; + }, requestIndexer() { return { - data: { isExists: true }, - meta: {}, + data: { + chainID: '04000000', + }, }; }, }; }); - const { validateIfAccountExists } = require('../../../shared/transactionsExport'); + const { getPomEntries } = require('../../../shared/transactionsExport'); - const isAccountExists = await validateIfAccountExists( - 'lskyvvam5rxyvbvofxbdfcupxetzmqxu22phm4yuo', + const pomEntries = await getPomEntries( + address, + events.tokenTransfer, + events.validatorPunished, + transactions.reportMisbehavior, + blocks[0], ); - expect(isAccountExists).toEqual(true); + + const expectedResult = [ + { + amount: '100000000', + amountTokenID: '0400000000000000', + blockHeight: 15, + date: '2022-11-17', + fee: null, + moduleCommand: null, + note: 'PoM successful report reward', + receivingChainID: '04000000', + recipientAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + recipientPublicKey: null, + senderAddress: 'lskmjt3zuxo6rv3oc9qyanppe76hk22m8ca2ra7h5', + senderPublicKey: null, + sendingChainID: '04000000', + time: '11:52:28', + transactionID: 'ce7082673acce922263e0256e717dc151fe86a88c6827bf53d42038ee387eca1', + txFeeTokenID: null, + }, + ]; + + expect(pomEntries).toEqual(expectedResult); }); }); diff --git a/services/export/yarn.lock b/services/export/yarn.lock index ef9cf2fe3e..b0365da911 100644 --- a/services/export/yarn.lock +++ b/services/export/yarn.lock @@ -575,9 +575,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -700,9 +700,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -847,13 +847,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -867,16 +867,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" async@^3.2.4: @@ -889,10 +890,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1158,14 +1159,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1188,9 +1190,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chainsaw@~0.1.0: version "0.1.0" @@ -1499,14 +1501,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1570,9 +1573,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1608,9 +1611,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -1635,7 +1638,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1685,6 +1688,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1735,9 +1743,9 @@ es6-symbol@^3.1.0, es6-symbol@^3.1.1, es6-symbol@^3.1.3: ext "^1.1.2" escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -1846,9 +1854,9 @@ fast-json-stable-stringify@^2.1.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-xml-parser@^4.2.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz#aeaf5778392329f17168c40c51bcbfec8ff965be" - integrity sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg== + version "4.3.4" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz#385cc256ad7bbc57b91515a38a22502a9e1fca0d" + integrity sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA== dependencies: strnum "^1.0.5" @@ -1991,11 +1999,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2017,12 +2026,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2102,12 +2111,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" @@ -2212,11 +2221,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2270,14 +2279,13 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2399,12 +2407,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -2994,9 +3002,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3006,6 +3014,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3316,9 +3325,9 @@ moment-range@^4.0.2: es6-symbol "^3.1.0" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3348,9 +3357,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -3457,7 +3466,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3681,14 +3690,14 @@ process-nextick-args@~2.0.0: integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -3931,12 +3940,12 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -3962,9 +3971,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -4002,14 +4011,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -4053,13 +4063,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4462,13 +4473,13 @@ type@^2.7.2: integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -4642,16 +4653,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.2: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/fee-estimator/package.json b/services/fee-estimator/package.json index cf6cd0c4a4..b504edb8a2 100644 --- a/services/fee-estimator/package.json +++ b/services/fee-estimator/package.json @@ -35,7 +35,7 @@ "@liskhq/lisk-transactions": "6.0.0", "bluebird": "^3.7.2", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz" + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz" }, "devDependencies": { "@babel/preset-env": "^7.14.0", diff --git a/services/fee-estimator/yarn.lock b/services/fee-estimator/yarn.lock index f91bc6cea2..8fe1ab515c 100644 --- a/services/fee-estimator/yarn.lock +++ b/services/fee-estimator/yarn.lock @@ -80,9 +80,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1253,9 +1253,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -1446,9 +1446,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1572,13 +1572,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1592,16 +1592,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -1609,10 +1610,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1882,14 +1883,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1912,9 +1914,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== casual-browserify@^1.5.19: version "1.5.19" @@ -2190,14 +2192,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2259,9 +2262,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -2297,9 +2300,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -2324,7 +2327,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -2374,6 +2377,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -2398,9 +2406,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2617,11 +2625,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2643,12 +2652,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2728,12 +2737,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" @@ -2833,11 +2842,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2883,14 +2892,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -3005,12 +3013,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0: version "1.0.0" @@ -3626,9 +3634,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3638,6 +3646,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3873,9 +3882,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3905,9 +3914,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -4002,7 +4011,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -4216,14 +4225,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -4483,12 +4492,12 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4509,9 +4518,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -4549,14 +4558,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -4595,13 +4605,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4958,13 +4969,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -5144,16 +5155,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/gateway/package.json b/services/gateway/package.json index 6ef11d31f1..527761daf8 100644 --- a/services/gateway/package.json +++ b/services/gateway/package.json @@ -33,7 +33,7 @@ "bluebird": "^3.7.2", "fastest-validator": "^1.10.1", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "moleculer": "^0.14.13", "moment": "^2.29.4", "rate-limiter-flexible": "^2.2.4", diff --git a/services/gateway/yarn.lock b/services/gateway/yarn.lock index e2a2415831..b0e3c47d65 100644 --- a/services/gateway/yarn.lock +++ b/services/gateway/yarn.lock @@ -550,9 +550,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -658,9 +658,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -745,13 +745,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -765,16 +765,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -782,10 +783,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -984,14 +985,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1014,9 +1016,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1236,14 +1238,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1300,9 +1303,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1338,9 +1341,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -1365,7 +1368,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1415,6 +1418,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1439,9 +1447,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -1643,11 +1651,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -1669,12 +1678,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -1754,12 +1763,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -1845,11 +1854,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -1895,14 +1904,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2017,12 +2025,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -2564,9 +2572,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -2576,6 +2584,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -2776,9 +2785,9 @@ moleculer@^0.14.13, moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -2808,9 +2817,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -2905,7 +2914,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3108,14 +3117,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -3304,12 +3313,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" safe-regex@^2.1.1: @@ -3330,9 +3339,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -3370,14 +3379,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -3408,13 +3418,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -3766,13 +3777,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -3910,16 +3921,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/market/package.json b/services/market/package.json index fb61f85575..b23510f842 100644 --- a/services/market/package.json +++ b/services/market/package.json @@ -32,7 +32,7 @@ "dependencies": { "bluebird": "^3.7.2", "joi": "^17.4.0", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "moment": "^2.29.4", "node-cron": "=2.0.3" }, diff --git a/services/market/yarn.lock b/services/market/yarn.lock index bc719982e9..9ddfce30f9 100644 --- a/services/market/yarn.lock +++ b/services/market/yarn.lock @@ -562,9 +562,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -574,10 +574,10 @@ dependencies: debug "^3.1.0" -"@sideway/address@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== dependencies: "@hapi/hoek" "^9.0.0" @@ -687,9 +687,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -774,13 +774,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -794,16 +794,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -811,10 +812,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1013,14 +1014,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1043,9 +1045,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1265,14 +1267,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1329,9 +1332,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1367,9 +1370,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -1394,7 +1397,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1444,6 +1447,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1468,9 +1476,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -1672,11 +1680,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -1698,12 +1707,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -1783,12 +1792,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -1874,11 +1883,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -1924,14 +1933,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2046,12 +2054,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -2487,13 +2495,13 @@ jest@^29.7.0: jest-cli "^29.7.0" joi@^17.4.0: - version "17.12.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5" - integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw== + version "17.12.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.1.tgz#3347ecf4cd3301962d42191c021b165eef1f395b" + integrity sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.4" + "@sideway/address" "^4.1.5" "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" @@ -2604,9 +2612,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -2616,6 +2624,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -2816,9 +2825,9 @@ moleculer@^0.14.17, moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -2848,9 +2857,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -2945,7 +2954,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3148,14 +3157,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -3334,12 +3343,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -3353,9 +3362,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -3393,14 +3402,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -3431,13 +3441,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -3789,13 +3800,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -3933,16 +3944,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/services/template/config.js b/services/template/config.js index d0d00f28d7..648e5a7840 100644 --- a/services/template/config.js +++ b/services/template/config.js @@ -19,7 +19,7 @@ const config = {}; // Moleculer broker config config.transporter = process.env.SERVICE_BROKER || 'redis://lisk:password@127.0.0.1:6379/0'; -config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 5; // in seconds +config.brokerTimeout = Number(process.env.SERVICE_BROKER_TIMEOUT) || 10; // in seconds // Logging config.log = { diff --git a/services/template/package.json b/services/template/package.json index 0628416744..d2cb185e26 100644 --- a/services/template/package.json +++ b/services/template/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "node-cron": "=2.0.3" } } diff --git a/services/template/yarn.lock b/services/template/yarn.lock index 1f02d6ca56..4b051e442e 100644 --- a/services/template/yarn.lock +++ b/services/template/yarn.lock @@ -15,9 +15,9 @@ integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -45,9 +45,9 @@ "@types/node" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -76,13 +76,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -96,16 +96,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -113,10 +114,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -221,14 +222,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" camelcase@5.0.0: version "5.0.0" @@ -362,14 +364,15 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -439,9 +442,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -459,7 +462,7 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -509,6 +512,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -533,9 +541,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -654,11 +662,12 @@ generate-function@^2.3.1: dependencies: is-property "^1.0.2" -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -675,12 +684,12 @@ get-port@^5.1.1: integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -750,12 +759,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -818,11 +827,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -868,14 +877,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-bigint@^1.0.1: version "1.0.4" @@ -965,12 +973,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -1053,9 +1061,9 @@ leven@2.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -1065,6 +1073,7 @@ leven@2.1.0: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -1219,9 +1228,9 @@ moleculer@^0.14.21: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -1251,9 +1260,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -1321,7 +1330,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -1440,14 +1449,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" proxy-from-env@^1.1.0: @@ -1591,12 +1600,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -1605,9 +1614,9 @@ safe-regex-test@^1.0.0: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== semver@^7.3.2, semver@^7.3.5: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -1645,14 +1654,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -1671,13 +1681,14 @@ setprototypeof@1.2.0: integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signals@^1.0.0: version "1.0.0" @@ -1900,13 +1911,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -2020,16 +2031,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" wrappy@1: version "1.0.2" diff --git a/services/transaction-statistics/package.json b/services/transaction-statistics/package.json index e089668a60..487ead1954 100644 --- a/services/transaction-statistics/package.json +++ b/services/transaction-statistics/package.json @@ -33,7 +33,7 @@ "big-number": "=2.0.0", "bluebird": "^3.7.2", "ioredis": "^5.3.2", - "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz", + "lisk-service-framework": "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz", "moment": "^2.29.4" }, "devDependencies": { diff --git a/services/transaction-statistics/yarn.lock b/services/transaction-statistics/yarn.lock index 6adc67ec84..2e33814127 100644 --- a/services/transaction-statistics/yarn.lock +++ b/services/transaction-statistics/yarn.lock @@ -80,9 +80,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1253,9 +1253,9 @@ "@jridgewell/sourcemap-codec" "^1.4.14" "@keyv/redis@^2.1.2": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.3.tgz#c8f39a3bc37af1ee2cd6301f06f2ad52573e02af" - integrity sha512-su/JZZUlhI9HaSNslQpi/5uYHh69NpxevXFeSStDoPe2Qo52w0LLHe+sywZim52NPVKjHNyvfeIyif8Prvi3Ug== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.8.4.tgz#0d1afb74ef4588c849658509fb69051648ac17d9" + integrity sha512-osO4C+i+Gi844wHjvXuHwhl+sDx3289Of309ZlLcj6SJReTLmPXzNiVR81N88wOu5aC+lVFdmx9FUQkkjdbPRQ== dependencies: ioredis "^5.3.2" @@ -1361,9 +1361,9 @@ "@types/istanbul-lib-report" "*" "@types/node@*", "@types/node@>=10.0.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1455,13 +1455,13 @@ args@^5.0.3: leven "2.1.0" mri "1.1.4" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array.prototype.reduce@^1.0.6: version "1.0.6" @@ -1475,16 +1475,17 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" asynckit@^0.4.0: @@ -1492,10 +1493,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== axios@^1.6.0: version "1.6.7" @@ -1755,14 +1756,15 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1785,9 +1787,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2019,14 +2021,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2083,9 +2086,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -2121,9 +2124,9 @@ engine.io-client@~6.5.2: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -2148,7 +2151,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -2198,6 +2201,11 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -2222,9 +2230,9 @@ es6-error@^4.1.1: integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2431,11 +2439,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2457,12 +2466,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" getopts@2.3.0: version "2.3.0" @@ -2542,12 +2551,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hasown@^2.0.0: version "2.0.0" @@ -2633,11 +2642,11 @@ ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -2683,14 +2692,13 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2805,12 +2813,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0: version "1.0.0" @@ -3421,9 +3429,9 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz": - version "1.6.11" - resolved "https://github.com/LiskHQ/lisk-service/raw/5cb6fc8e9b9798595d1a4652b9148afcbfaaed1f/framework/dist/lisk-service-framework-1.6.11.tgz#c06803a3214ec800672b56b7a3cb81102638e574" +"lisk-service-framework@https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz": + version "1.6.12" + resolved "https://github.com/LiskHQ/lisk-service/raw/8859790842fc7a1a937d25b59d1b6286c5e1176d/framework/dist/lisk-service-framework-1.6.12.tgz#3ced8a507be57a1889b13b4f71c5216ba2a6f466" dependencies: "@keyv/redis" "^2.1.2" "@log4js-node/gelf" "github:MichalTuleja/log4js-node-gelf#89d9933" @@ -3433,6 +3441,7 @@ lines-and-columns@^1.1.6: debug "^4.3.1" fastest-validator "^1.10.1" http-status-codes "^1.4.0" + ioredis "^5.3.2" json-colorizer "^2.2.2" keyv "^4.0.3" keyv-lru "^3.0.4" @@ -3638,9 +3647,9 @@ moleculer@^0.14.21, moleculer@^0.14.28: recursive-watch "^1.1.4" moment-timezone@^0.5.31: - version "0.5.44" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" - integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== dependencies: moment "^2.29.4" @@ -3670,9 +3679,9 @@ ms@2.1.3, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mysql2@^3.5.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.0.tgz#92fce31d7b13b5724bc56e18e270a9a1c984a0ff" - integrity sha512-yS7FtbnO9sYqUZbjaiUwflh1bJAENJ3DQ9aHEYj9G+Hi15+FP7UKaTDNe6SeXx/LpkU6coAQ6vIYQaAmsFA+qQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.1.tgz#d1d7dee5ea55ba07f18c445267b2846f6faf9c68" + integrity sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -3767,7 +3776,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3970,14 +3979,14 @@ prettyjson@^1.2.1: minimist "^1.2.0" promise.prototype.finally@^3.1.2: - version "3.1.7" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.7.tgz#9d163f58edf3004d14878c988a22b1cb45e03407" - integrity sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz#b97bc1bbca74dc21b6e978c85a70752a7a0b7c3a" + integrity sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" define-properties "^1.2.1" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" set-function-name "^2.0.1" prompts@^2.0.1: @@ -4199,12 +4208,12 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4218,9 +4227,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -4258,14 +4267,15 @@ serve-static@^1.14.1: parseurl "~1.3.3" send "0.18.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -4296,13 +4306,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4654,13 +4665,13 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -4828,16 +4839,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2" diff --git a/tests/yarn.lock b/tests/yarn.lock index efe17febc1..1e23236b8d 100644 --- a/tests/yarn.lock +++ b/tests/yarn.lock @@ -24,10 +24,10 @@ lodash "^4.17.19" ms "^2.1.3" -"@artilleryio/int-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@artilleryio/int-core/-/int-core-2.3.0.tgz#18a60d0a14dec1459731007f3d6080bfea029114" - integrity sha512-Q1W+60mAS9fTBbMq2cH1nJCeIvjhKxlFbXP8oe0Xa5G+jXa8e8htPk0bMBW/Eb/ISZkEMr4il+W5M2jSTCrYhQ== +"@artilleryio/int-core@2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@artilleryio/int-core/-/int-core-2.3.1.tgz#3fed1fe3f9432a7b2081c90830d13ed6f10b65a3" + integrity sha512-32MvNeZQ/sCbh2HsDS++4NQ4Ma5N2kJhlABgpieiaETDV4yIt5vS6N0e992SrBrdgkPxj/w625/B//0gh+Q7rA== dependencies: "@artilleryio/int-commons" "2.0.4" "@artilleryio/sketches-js" "^2.1.1" @@ -121,25 +121,25 @@ tslib "^1.11.1" "@aws-sdk/client-cloudwatch@^3.370.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch/-/client-cloudwatch-3.501.0.tgz#01394a9485d10aebd3a60db31fa67b19dadac086" - integrity sha512-E7jw4dUudIYKnNOi5BqlSRDOpL/kEexGIEekyMy71O5CVJv8fDn50z/HovNWqYkYB6xQgCJM1T6Fk89eff3Jew== + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch/-/client-cloudwatch-3.507.0.tgz#0f0cd4893dac987c576fb47e2638a36ed6ab31c0" + integrity sha512-QKF9Bz5/iiipCDFWVQGomIdZnH6Co3//SZi9Z01HabUMxwU+V5wYrkRdxlSNG0iK93JxPA42ZidLyibHVr6dEQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.501.0" + "@aws-sdk/client-sts" "3.507.0" "@aws-sdk/core" "3.496.0" - "@aws-sdk/credential-provider-node" "3.501.0" - "@aws-sdk/middleware-host-header" "3.496.0" - "@aws-sdk/middleware-logger" "3.496.0" - "@aws-sdk/middleware-recursion-detection" "3.496.0" - "@aws-sdk/middleware-signing" "3.496.0" - "@aws-sdk/middleware-user-agent" "3.496.0" - "@aws-sdk/region-config-resolver" "3.496.0" - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" - "@aws-sdk/util-user-agent-browser" "3.496.0" - "@aws-sdk/util-user-agent-node" "3.496.0" + "@aws-sdk/credential-provider-node" "3.507.0" + "@aws-sdk/middleware-host-header" "3.502.0" + "@aws-sdk/middleware-logger" "3.502.0" + "@aws-sdk/middleware-recursion-detection" "3.502.0" + "@aws-sdk/middleware-signing" "3.502.0" + "@aws-sdk/middleware-user-agent" "3.502.0" + "@aws-sdk/region-config-resolver" "3.502.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" + "@aws-sdk/util-user-agent-browser" "3.502.0" + "@aws-sdk/util-user-agent-node" "3.502.0" "@smithy/config-resolver" "^2.1.1" "@smithy/core" "^1.3.1" "@smithy/fetch-http-handler" "^2.4.1" @@ -168,26 +168,26 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-cognito-identity@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.501.0.tgz#232543d91b1d236cfeac7c0168c56eddff1aafd3" - integrity sha512-ynWW9VVT7CTMQBh8l7WFt2SNekg3667gwjQmeGN8+DDMDqt2Z+L52717S0AN1pQDUMbh/DuKKPk+Sr30HBK3vA== +"@aws-sdk/client-cognito-identity@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.507.0.tgz#161c4721b7fe1292c0b75cd5f537010d4e66be80" + integrity sha512-LzxPdA/XYtc7xcm5xvvxdbUZdrt0t9PsPjPLBEAiZ8Ptv4CPACwPhEAHKh8xZwNGPjkV5ugzCYyytJzzeta/7A== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.501.0" + "@aws-sdk/client-sts" "3.507.0" "@aws-sdk/core" "3.496.0" - "@aws-sdk/credential-provider-node" "3.501.0" - "@aws-sdk/middleware-host-header" "3.496.0" - "@aws-sdk/middleware-logger" "3.496.0" - "@aws-sdk/middleware-recursion-detection" "3.496.0" - "@aws-sdk/middleware-signing" "3.496.0" - "@aws-sdk/middleware-user-agent" "3.496.0" - "@aws-sdk/region-config-resolver" "3.496.0" - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" - "@aws-sdk/util-user-agent-browser" "3.496.0" - "@aws-sdk/util-user-agent-node" "3.496.0" + "@aws-sdk/credential-provider-node" "3.507.0" + "@aws-sdk/middleware-host-header" "3.502.0" + "@aws-sdk/middleware-logger" "3.502.0" + "@aws-sdk/middleware-recursion-detection" "3.502.0" + "@aws-sdk/middleware-signing" "3.502.0" + "@aws-sdk/middleware-user-agent" "3.502.0" + "@aws-sdk/region-config-resolver" "3.502.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" + "@aws-sdk/util-user-agent-browser" "3.502.0" + "@aws-sdk/util-user-agent-node" "3.502.0" "@smithy/config-resolver" "^2.1.1" "@smithy/core" "^1.3.1" "@smithy/fetch-http-handler" "^2.4.1" @@ -214,23 +214,68 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/client-sso@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz#765cbfb3afcbe7bc8f2430e40afd4d542a0d58fb" - integrity sha512-fuaMuxKg7CMUsP9l3kxYWCOxFsBjdA0xj5nlikaDm1661/gB4KkAiGqRY8LsQkpNXvXU8Nj+f7oCFADFyGYzyw== +"@aws-sdk/client-sso-oidc@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.507.0.tgz#d1357d212d9510146d325ca1e6acd06d5744623b" + integrity sha512-ms5CH2ImhqqCIbo5irxayByuPOlVAmSiqDVfjZKwgIziqng2bVgNZMeKcT6t0bmrcgScEAVnZwY7j/iZTIw73g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.507.0" + "@aws-sdk/core" "3.496.0" + "@aws-sdk/middleware-host-header" "3.502.0" + "@aws-sdk/middleware-logger" "3.502.0" + "@aws-sdk/middleware-recursion-detection" "3.502.0" + "@aws-sdk/middleware-signing" "3.502.0" + "@aws-sdk/middleware-user-agent" "3.502.0" + "@aws-sdk/region-config-resolver" "3.502.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" + "@aws-sdk/util-user-agent-browser" "3.502.0" + "@aws-sdk/util-user-agent-node" "3.502.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/core" "^1.3.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.507.0.tgz#90a5de90f662aa680c0ffdc5e04695734ca8afb2" + integrity sha512-pFeaKwqv4tXD6QVxWC2V4N62DUoP3bPSm/mCe2SPhaNjNsmwwA53viUHz/nwxIbs8w4vV44UQsygb0AgKm+HoQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" "@aws-sdk/core" "3.496.0" - "@aws-sdk/middleware-host-header" "3.496.0" - "@aws-sdk/middleware-logger" "3.496.0" - "@aws-sdk/middleware-recursion-detection" "3.496.0" - "@aws-sdk/middleware-user-agent" "3.496.0" - "@aws-sdk/region-config-resolver" "3.496.0" - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" - "@aws-sdk/util-user-agent-browser" "3.496.0" - "@aws-sdk/util-user-agent-node" "3.496.0" + "@aws-sdk/middleware-host-header" "3.502.0" + "@aws-sdk/middleware-logger" "3.502.0" + "@aws-sdk/middleware-recursion-detection" "3.502.0" + "@aws-sdk/middleware-user-agent" "3.502.0" + "@aws-sdk/region-config-resolver" "3.502.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" + "@aws-sdk/util-user-agent-browser" "3.502.0" + "@aws-sdk/util-user-agent-node" "3.502.0" "@smithy/config-resolver" "^2.1.1" "@smithy/core" "^1.3.1" "@smithy/fetch-http-handler" "^2.4.1" @@ -257,24 +302,23 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/client-sts@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.501.0.tgz#f3ab15d11517f28f1fdd3bd2b0c4dcf15a88b5aa" - integrity sha512-Uwc/xuxsA46dZS5s+4U703LBNDrGpWF7RB4XYEEMD21BLfGuqntxLLQux8xxKt3Pcur0CsXNja5jXt3uLnE5MA== +"@aws-sdk/client-sts@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.507.0.tgz#0a99b5b04ca8d2e30a52840cc67181b3f2ac990a" + integrity sha512-TOWBe0ApEh32QOib0R+irWGjd1F9wnhbGV5PcB9SakyRwvqwG5MKOfYxG7ocoDqLlaRwzZMidcy/PV8/OEVNKg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" "@aws-sdk/core" "3.496.0" - "@aws-sdk/credential-provider-node" "3.501.0" - "@aws-sdk/middleware-host-header" "3.496.0" - "@aws-sdk/middleware-logger" "3.496.0" - "@aws-sdk/middleware-recursion-detection" "3.496.0" - "@aws-sdk/middleware-user-agent" "3.496.0" - "@aws-sdk/region-config-resolver" "3.496.0" - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" - "@aws-sdk/util-user-agent-browser" "3.496.0" - "@aws-sdk/util-user-agent-node" "3.496.0" + "@aws-sdk/middleware-host-header" "3.502.0" + "@aws-sdk/middleware-logger" "3.502.0" + "@aws-sdk/middleware-recursion-detection" "3.502.0" + "@aws-sdk/middleware-user-agent" "3.502.0" + "@aws-sdk/region-config-resolver" "3.502.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" + "@aws-sdk/util-user-agent-browser" "3.502.0" + "@aws-sdk/util-user-agent-node" "3.502.0" "@smithy/config-resolver" "^2.1.1" "@smithy/core" "^1.3.1" "@smithy/fetch-http-handler" "^2.4.1" @@ -315,33 +359,33 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-cognito-identity@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.501.0.tgz#9df440eea01125130226fdd1619f5b728f4db9c0" - integrity sha512-U9fjzliKzMiPx/EWLNLCEoF5wWhVtlluTEc4/WhNtSryV2PyihqIAK8nK4+MFaXB4xOrlRnpYMd7oqm03wMGyw== +"@aws-sdk/credential-provider-cognito-identity@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.507.0.tgz#8bf3032a5dc78d37e22994b453aeb0fc4a1a829f" + integrity sha512-5i14xU1B7r+ALdz8FSYL1p9UlhCXtj+LV5EjrZozWzs7K3Z4jpxr2txB9CMhn0ByPp5Sjf9y2115hMbqSJV/WQ== dependencies: - "@aws-sdk/client-cognito-identity" "3.501.0" - "@aws-sdk/types" "3.496.0" + "@aws-sdk/client-cognito-identity" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-env@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz#5055bd2e3a169e5c10b37c40e0f356046947e707" - integrity sha512-lukQMJ8SWWP5RqkRNOHi/H+WMhRvSWa3Fc5Jf/VP6xHiPLfF1XafcvthtV91e0VwPCiseI+HqChrcGq8pvnxHw== +"@aws-sdk/credential-provider-env@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.502.0.tgz#800e63b2b9d90b078a120d474d5a3b1ec5b48514" + integrity sha512-KIB8Ae1Z7domMU/jU4KiIgK4tmYgvuXlhR54ehwlVHxnEoFPoPuGHFZU7oFn79jhhSLUFQ1lRYMxP0cEwb7XeQ== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-http@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.496.0.tgz#7ff281bc0c80a041c69f0062e82b6def2e2a7de5" - integrity sha512-iphFlFX0qDFsE24XmFlcKmsR4uyNaqQrK+Y18mwSZMs1yWtL4Sck0rcTXU/cU2W3/xisjh7xFXK5L5aowjMZOg== +"@aws-sdk/credential-provider-http@3.503.1": + version "3.503.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.503.1.tgz#e882a4b740c9193650053033b3001b03ca4b12c8" + integrity sha512-rTdlFFGoPPFMF2YjtlfRuSgKI+XsF49u7d98255hySwhsbwd3Xp+utTTPquxP+CwDxMHbDlI7NxDzFiFdsoZug== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/fetch-http-handler" "^2.4.1" "@smithy/node-http-handler" "^2.3.1" "@smithy/property-provider" "^2.1.1" @@ -351,130 +395,133 @@ "@smithy/util-stream" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-ini@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.501.0.tgz#66f56d56858267460614260b6bfd70cd18ba868b" - integrity sha512-6UXnwLtYIr298ljveumCVXsH+x7csGscK5ylY+veRFy514NqyloRdJt8JY26hhh5SF9MYnkW+JyWSJ2Ls3tOjQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.496.0" - "@aws-sdk/credential-provider-process" "3.496.0" - "@aws-sdk/credential-provider-sso" "3.501.0" - "@aws-sdk/credential-provider-web-identity" "3.496.0" - "@aws-sdk/types" "3.496.0" +"@aws-sdk/credential-provider-ini@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.507.0.tgz#c2b9cd1bf172a0057bf0ad888c19ce5450df13f2" + integrity sha512-2CnyduoR9COgd7qH1LPYK8UggGqVs8R4ASDMB5bwGxbg9ZerlStDiHpqvJNNg1k+VlejBr++utxfmHd236XgmQ== + dependencies: + "@aws-sdk/client-sts" "3.507.0" + "@aws-sdk/credential-provider-env" "3.502.0" + "@aws-sdk/credential-provider-process" "3.502.0" + "@aws-sdk/credential-provider-sso" "3.507.0" + "@aws-sdk/credential-provider-web-identity" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/credential-provider-imds" "^2.2.1" "@smithy/property-provider" "^2.1.1" "@smithy/shared-ini-file-loader" "^2.3.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-node@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.501.0.tgz#6cb96dc5c1bfaf8dcb580063beeed9ef9db33961" - integrity sha512-NM62D8gYrQ1nyLYwW4k48B2/lMHDzHDcQccS1wJakr6bg5sdtG06CumwlVcY+LAa0o1xRnhHmh/yiwj/nN4avw== - dependencies: - "@aws-sdk/credential-provider-env" "3.496.0" - "@aws-sdk/credential-provider-ini" "3.501.0" - "@aws-sdk/credential-provider-process" "3.496.0" - "@aws-sdk/credential-provider-sso" "3.501.0" - "@aws-sdk/credential-provider-web-identity" "3.496.0" - "@aws-sdk/types" "3.496.0" +"@aws-sdk/credential-provider-node@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.507.0.tgz#b6c9f3c2c8294911c4f12e267f16a26e1eba4813" + integrity sha512-tkQnmOLkRBXfMLgDYHzogrqTNdtl0Im0ipzJb2IV5hfM5NoTfCf795e9A9isgwjSP/g/YEU0xQWxa4lq8LRtuA== + dependencies: + "@aws-sdk/credential-provider-env" "3.502.0" + "@aws-sdk/credential-provider-http" "3.503.1" + "@aws-sdk/credential-provider-ini" "3.507.0" + "@aws-sdk/credential-provider-process" "3.502.0" + "@aws-sdk/credential-provider-sso" "3.507.0" + "@aws-sdk/credential-provider-web-identity" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/credential-provider-imds" "^2.2.1" "@smithy/property-provider" "^2.1.1" "@smithy/shared-ini-file-loader" "^2.3.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-process@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz#1d623bed61229767f389feab560e3a3117bf2d26" - integrity sha512-/YZscCTGOKVmGr916Th4XF8Sz6JDtZ/n2loHG9exok9iy/qIbACsTRNLP9zexPxhPoue/oZqecY5xbVljfY34A== +"@aws-sdk/credential-provider-process@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.502.0.tgz#6c41d8845a1c7073491a064c158363de04640381" + integrity sha512-fJJowOjQ4infYQX0E1J3xFVlmuwEYJAFk0Mo1qwafWmEthsBJs+6BR2RiWDELHKrSK35u4Pf3fu3RkYuCtmQFw== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/shared-ini-file-loader" "^2.3.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.501.0.tgz#a96b859b59d3825f54158de8c692d69bd6edf5e6" - integrity sha512-y90dlvvZ55PwecODFdMx0NiNlJJfm7X6S61PKdLNCMRcu1YK+eWn0CmPHGHobBUQ4SEYhnFLcHSsf+VMim6BtQ== +"@aws-sdk/credential-provider-sso@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.507.0.tgz#e98cf7fad69b4c12aa85c44affe9aae4cc81d796" + integrity sha512-6WBjou52QukFpDi4ezb19bcAx/bM8ge8qnJnRT02WVRmU6zFQ5yLD2fW1MFsbX3cwbey+wSqKd5FGE1Hukd5wQ== dependencies: - "@aws-sdk/client-sso" "3.496.0" - "@aws-sdk/token-providers" "3.501.0" - "@aws-sdk/types" "3.496.0" + "@aws-sdk/client-sso" "3.507.0" + "@aws-sdk/token-providers" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/shared-ini-file-loader" "^2.3.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-web-identity@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz#7ad6d755445d1616a80dfa286a78c84dc1c3f14b" - integrity sha512-IbP+qLlvJSpNPj+zW6TtFuLRTK5Tf0hW+2pom4vFyi5YSH4pn8UOC136UdewX8vhXGS9BJQ5zBDMasIyl5VeGQ== +"@aws-sdk/credential-provider-web-identity@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.507.0.tgz#22e028e2dd2a0a927707da1408099bc4f5b7a606" + integrity sha512-f+aGMfazBimX7S06224JRYzGTaMh1uIhfj23tZylPJ05KxTVi5IO1RoqeI/uHLJ+bDOx+JHBC04g/oCdO4kHvw== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/client-sts" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" "@aws-sdk/credential-providers@^3.127.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.501.0.tgz#15321a2028e9ee36d5333da222386abb81e24553" - integrity sha512-nyfGzzYKcAny2kUyQjVDhSzfFTwkfZjGyJZ79WaLkNcCsVSsHBbptPRmRV2b4N0EoHTCfGqkbB02as4av/OQrw== - dependencies: - "@aws-sdk/client-cognito-identity" "3.501.0" - "@aws-sdk/client-sso" "3.496.0" - "@aws-sdk/client-sts" "3.501.0" - "@aws-sdk/credential-provider-cognito-identity" "3.501.0" - "@aws-sdk/credential-provider-env" "3.496.0" - "@aws-sdk/credential-provider-http" "3.496.0" - "@aws-sdk/credential-provider-ini" "3.501.0" - "@aws-sdk/credential-provider-node" "3.501.0" - "@aws-sdk/credential-provider-process" "3.496.0" - "@aws-sdk/credential-provider-sso" "3.501.0" - "@aws-sdk/credential-provider-web-identity" "3.496.0" - "@aws-sdk/types" "3.496.0" + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.507.0.tgz#f7a22ef78b5196bfb12205fdbbea18f4739c5948" + integrity sha512-3DQNtsHS5OzHNe2jQKCPZ1Gt7nU3TNRnv2XpubVvUGlYpZ8nsmCSeo1UYwVkDD3/9X36iI1Z/CfeNU8alMGTAA== + dependencies: + "@aws-sdk/client-cognito-identity" "3.507.0" + "@aws-sdk/client-sso" "3.507.0" + "@aws-sdk/client-sts" "3.507.0" + "@aws-sdk/credential-provider-cognito-identity" "3.507.0" + "@aws-sdk/credential-provider-env" "3.502.0" + "@aws-sdk/credential-provider-http" "3.503.1" + "@aws-sdk/credential-provider-ini" "3.507.0" + "@aws-sdk/credential-provider-node" "3.507.0" + "@aws-sdk/credential-provider-process" "3.502.0" + "@aws-sdk/credential-provider-sso" "3.507.0" + "@aws-sdk/credential-provider-web-identity" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/credential-provider-imds" "^2.2.1" "@smithy/property-provider" "^2.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-host-header@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz#e17de11d553548872566c72669c5ea2e7164722b" - integrity sha512-jUdPpSJeqCYXf6hSjfwsfHway7peIV8Vz51w/BN91bF4vB/bYwAC5o9/iJiK/EoByp5asxA8fg9wFOyGjzdbLg== +"@aws-sdk/middleware-host-header@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.502.0.tgz#2651fb3509990271c89eb50133fb17cb8ae435f6" + integrity sha512-EjnG0GTYXT/wJBmm5/mTjDcAkzU8L7wQjOzd3FTXuTCNNyvAvwrszbOj5FlarEw5XJBbQiZtBs+I5u9+zy560w== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/protocol-http" "^3.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-logger@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz#96f867ae50144eb6bae91a427e315a0f0eb783b0" - integrity sha512-EwMVSY6iBMeGbVnvwdaFl/ClMS/YWtxCAo+bcEtgk8ltRuo7qgbJem8Km/fvWC1vdWvIbe4ArdJ8iGzq62ffAw== +"@aws-sdk/middleware-logger@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.502.0.tgz#558cefdd233779f15687957f9f07497199b22d72" + integrity sha512-FDyv6K4nCoHxbjLGS2H8ex8I0KDIiu4FJgVRPs140ZJy6gE5Pwxzv6YTzZGLMrnqcIs9gh065Lf6DjwMelZqaw== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-recursion-detection@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz#c14e1bbe609e4af3ec9037c2379e2b64d660e4dd" - integrity sha512-+IuOcFsfqg2WAnaEzH6KhVbicqCxtOq9w3DH2jwTpddRlCx2Kqf6wCzg8luhHRGyjBZdsbIS+OXwyMevoppawA== +"@aws-sdk/middleware-recursion-detection@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.502.0.tgz#c22e2c0c1d551e58c788264687324bb7186af2cc" + integrity sha512-hvbyGJbxeuezxOu8VfFmcV4ql1hKXLxHTe5FNYfEBat2KaZXVhc1Hg+4TvB06/53p+E8J99Afmumkqbxs2esUA== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/protocol-http" "^3.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-signing@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz#265cb5a9d7825c111c53bb555e5cb2619f804dd1" - integrity sha512-Oq73Brs4IConvWnRlh8jM1V7LHoTw9SVQklu/QW2FPlNrB3B8fuTdWHHYIWv7ybw1bykXoCY99v865Mmq/Or/g== +"@aws-sdk/middleware-signing@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.502.0.tgz#48b3503147eecb1a53a63633462de353668f635a" + integrity sha512-4hF08vSzJ7L6sB+393gOFj3s2N6nLusYS0XrMW6wYNFU10IDdbf8Z3TZ7gysDJJHEGQPmTAesPEDBsasGWcMxg== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" "@smithy/protocol-http" "^3.1.1" "@smithy/signature-v4" "^2.1.1" @@ -482,86 +529,55 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/middleware-user-agent@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz#82b49fd8613ae5a9ceafc9117c34271615d0f002" - integrity sha512-+iMtRxFk0GmFWNUF4ilxylOQd9PZdR4ZC9jkcPIh1PZlvKtpCyFywKlk5RRZKklSoJ/CttcqwhMvOXTNbWm/0w== +"@aws-sdk/middleware-user-agent@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.502.0.tgz#dd740f150d6f3110cf5b08fedf361d202f899c93" + integrity sha512-TxbBZbRiXPH0AUxegqiNd9aM9zNSbfjtBs5MEfcBsweeT/B2O7K1EjP9+CkB8Xmk/5FLKhAKLr19b1TNoE27rw== dependencies: - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/types" "3.502.0" + "@aws-sdk/util-endpoints" "3.502.0" "@smithy/protocol-http" "^3.1.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/region-config-resolver@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz#133c8a4a6d5e7672077ba124751f40b2d6efc3ed" - integrity sha512-URrNVOPHPgEDm6QFu6lDC2cUFs+Jx23mA3jEwCvoKlXiEY/ZoWjH8wlX3OMUlLrF1qoUTuD03jjrJzF6zoCgug== +"@aws-sdk/region-config-resolver@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.502.0.tgz#c18a04060879eb03c47c05b05fc296119ee073ba" + integrity sha512-mxmsX2AGgnSM+Sah7mcQCIneOsJQNiLX0COwEttuf8eO+6cLMAZvVudH3BnWTfea4/A9nuri9DLCqBvEmPrilg== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/node-config-provider" "^2.2.1" "@smithy/types" "^2.9.1" "@smithy/util-config-provider" "^2.2.1" "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/token-providers@3.501.0": - version "3.501.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.501.0.tgz#33fc8130ffecfa99b88a54ebaa74ff3225f79875" - integrity sha512-MvLPhNxlStmQqVm2crGLUqYWvK/AbMmI9j4FbEfJ15oG/I+730zjSJQEy2MvdiqbJRDPZ/tRCL89bUedOrmi0g== +"@aws-sdk/token-providers@3.507.0": + version "3.507.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.507.0.tgz#7456cec822a7f59a4b58a2eda1a0ff963c4c3c6b" + integrity sha512-ehOINGjoGJc6Puzon7ev4bXckkaZx18WNgMTNttYJhj3vTpj5LPSQbI/5SS927bEbpGMFz1+hJ6Ra5WGfbTcEQ== dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/middleware-host-header" "3.496.0" - "@aws-sdk/middleware-logger" "3.496.0" - "@aws-sdk/middleware-recursion-detection" "3.496.0" - "@aws-sdk/middleware-user-agent" "3.496.0" - "@aws-sdk/region-config-resolver" "3.496.0" - "@aws-sdk/types" "3.496.0" - "@aws-sdk/util-endpoints" "3.496.0" - "@aws-sdk/util-user-agent-browser" "3.496.0" - "@aws-sdk/util-user-agent-node" "3.496.0" - "@smithy/config-resolver" "^2.1.1" - "@smithy/fetch-http-handler" "^2.4.1" - "@smithy/hash-node" "^2.1.1" - "@smithy/invalid-dependency" "^2.1.1" - "@smithy/middleware-content-length" "^2.1.1" - "@smithy/middleware-endpoint" "^2.4.1" - "@smithy/middleware-retry" "^2.1.1" - "@smithy/middleware-serde" "^2.1.1" - "@smithy/middleware-stack" "^2.1.1" - "@smithy/node-config-provider" "^2.2.1" - "@smithy/node-http-handler" "^2.3.1" + "@aws-sdk/client-sso-oidc" "3.507.0" + "@aws-sdk/types" "3.502.0" "@smithy/property-provider" "^2.1.1" - "@smithy/protocol-http" "^3.1.1" "@smithy/shared-ini-file-loader" "^2.3.1" - "@smithy/smithy-client" "^2.3.1" "@smithy/types" "^2.9.1" - "@smithy/url-parser" "^2.1.1" - "@smithy/util-base64" "^2.1.1" - "@smithy/util-body-length-browser" "^2.1.1" - "@smithy/util-body-length-node" "^2.2.1" - "@smithy/util-defaults-mode-browser" "^2.1.1" - "@smithy/util-defaults-mode-node" "^2.1.1" - "@smithy/util-endpoints" "^1.1.1" - "@smithy/util-retry" "^2.1.1" - "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/types@3.496.0", "@aws-sdk/types@^3.222.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.496.0.tgz#cdde44a94a57cf8f97cf05e4d0bdce2f56ce4eeb" - integrity sha512-umkGadK4QuNQaMoDICMm7NKRI/mYSXiyPjcn3d53BhsuArYU/52CebGQKdt4At7SwwsiVJZw9RNBHyN5Mm0HVw== +"@aws-sdk/types@3.502.0", "@aws-sdk/types@^3.222.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.502.0.tgz#c23dda4df7fdbe32642d4f5ab23516f455fb6aba" + integrity sha512-M0DSPYe/gXhwD2QHgoukaZv5oDxhW3FfvYIrJptyqUq3OnPJBcDbihHjrE0PBtfh/9kgMZT60/fQ2NVFANfa2g== dependencies: "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/util-endpoints@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz#5ce7d3efd7ab67db556e2c199e73826c44d22ecd" - integrity sha512-1QzOiWHi383ZwqSi/R2KgKCd7M+6DxkxI5acqLPm8mvDRDP2jRjrnVaC0g9/tlttWousGEemDUWStwrD2mVYSw== +"@aws-sdk/util-endpoints@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.502.0.tgz#aee818c0c53dfedfd49599fc260cd880faea5e82" + integrity sha512-6LKFlJPp2J24r1Kpfoz5ESQn+1v5fEjDB3mtUKRdpwarhm3syu7HbKlHCF3KbcCOyahobvLvhoedT78rJFEeeg== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/types" "^2.9.1" "@smithy/util-endpoints" "^1.1.1" tslib "^2.5.0" @@ -573,22 +589,22 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz#494b086dd8b07acdd6be65034c51545e5bcee37b" - integrity sha512-4j2spN+h0I0qfSMsGvJXTfQBu1e18rPdekKvzsGJxhaAE1tNgUfUT4nbvc5uVn0sNjZmirskmJ3kfbzVOrqIFg== +"@aws-sdk/util-user-agent-browser@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.502.0.tgz#87b42abff6944052c78a84981637ac21859dd016" + integrity sha512-v8gKyCs2obXoIkLETAeEQ3AM+QmhHhst9xbM1cJtKUGsRlVIak/XyyD+kVE6kmMm1cjfudHpHKABWk9apQcIZQ== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/types" "^2.9.1" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-user-agent-node@3.496.0": - version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz#db14e02cf82af556c826570efc7db1e57de3262d" - integrity sha512-h0Ax0jlDc7UIo3KoSI4C4tVLBFoiAdx3+DhTVfgLS7x93d41dMlziPoBX2RgdcFn37qnzw6AQKTVTMwDbRCGpg== +"@aws-sdk/util-user-agent-node@3.502.0": + version "3.502.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.502.0.tgz#04ac4d0371d4f243f12ddc23b42ca8ceb27dfad9" + integrity sha512-9RjxpkGZKbTdl96tIJvAo+vZoz4P/cQh36SBUt9xfRfW0BtsaLyvSrvlR5wyUYhvRcC12Axqh/8JtnAPq//+Vw== dependencies: - "@aws-sdk/types" "3.496.0" + "@aws-sdk/types" "3.502.0" "@smithy/node-config-provider" "^2.2.1" "@smithy/types" "^2.9.1" tslib "^2.5.0" @@ -670,9 +686,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz#fddfdf51fca28f23d16b9e3935a4732690acfad6" - integrity sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -1591,9 +1607,9 @@ node-source-walk "^6.0.1" "@grpc/grpc-js@^1.7.1": - version "1.9.14" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.14.tgz#236378822876cbf7903f9d61a0330410e8dcc5a1" - integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw== + version "1.10.0" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.0.tgz#23b5defd6a021a20924b4baca2dd1b3a3ecc3716" + integrity sha512-tx+eoEsqkMkLCHR4OOplwNIaJ7SVZWzeVKzEMBz8VR+TbssgBYOP4a0P+KQiQ6LaTG4SGaIEu7YTS8xOmkOWLA== dependencies: "@grpc/proto-loader" "^0.7.8" "@types/node" ">=12.12.47" @@ -2397,12 +2413,12 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz#83f7479c524ab523ac2df702ade30b9724476c72" integrity sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g== -"@playwright/browser-chromium@1.39.0": - version "1.39.0" - resolved "https://registry.yarnpkg.com/@playwright/browser-chromium/-/browser-chromium-1.39.0.tgz#549ea67a4734e8a17d5d3fdeabcdcf1e02cffd84" - integrity sha512-s1WPO0qOE7PIZcdcJEd4CHQgXf9rOwy00Den8DsXTI26n/Eqa2HzFSbLRE1Eh2nIJZFSGyKLbopHR0HkT8ClZw== +"@playwright/browser-chromium@1.41.0": + version "1.41.0" + resolved "https://registry.yarnpkg.com/@playwright/browser-chromium/-/browser-chromium-1.41.0.tgz#ef8817bf6cef13d4419e7523f8f59c090368d225" + integrity sha512-TaHfh3rDsz4+tVKdMMo4kdFOk8/4U6cPyMXHhoiJVmhOhjHXjR0qPMoa5gz5jDGl478cn5SoXmtgKPgTDFuS0g== dependencies: - playwright-core "1.39.0" + playwright-core "1.41.0" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -2462,10 +2478,10 @@ resolved "https://registry.yarnpkg.com/@servie/events/-/events-1.0.0.tgz#8258684b52d418ab7b86533e861186638ecc5dc1" integrity sha512-sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw== -"@sideway/address@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== dependencies: "@hapi/hoek" "^9.0.0" @@ -2806,9 +2822,9 @@ tslib "^2.5.0" "@smithy/util-defaults-mode-node@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02" - integrity sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.0.tgz#72fd6f945c265f1ef9be647fe829d55df5101390" + integrity sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA== dependencies: "@smithy/config-resolver" "^2.1.1" "@smithy/credential-provider-imds" "^2.2.1" @@ -3035,9 +3051,9 @@ "@types/node" "*" "@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -3389,14 +3405,14 @@ arrivals@^2.1.2: debug "^4.0.1" nanotimer "0.3.14" -artillery-engine-playwright@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/artillery-engine-playwright/-/artillery-engine-playwright-1.2.0.tgz#082a7a9c5de7afee996aa053dc05399ea051ef40" - integrity sha512-38oC+5ftIijo03wwGhZ0ObzzPzOKcsPQ4dY7/6JJxnXT3xrssRf4TDyYPftHuG21TQvW+Du0oc+ibokpVq+CXw== +artillery-engine-playwright@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/artillery-engine-playwright/-/artillery-engine-playwright-1.3.0.tgz#662d93ae74b8962884947ec26eeb934b9380dbae" + integrity sha512-FT4W7chMXx0jcIbMJDkj9nfQWDqwwhI5q98cRjXJnl+jYHS88i9bKpX3hXSJnxrGzKtdrYy/Pje7+cZFJQOfcg== dependencies: - "@playwright/browser-chromium" "1.39.0" + "@playwright/browser-chromium" "1.41.0" debug "^4.3.2" - playwright "1.39.0" + playwright "1.41.0" artillery-engine-socketio-v3@^1.2.0: version "1.2.0" @@ -3449,10 +3465,10 @@ artillery-plugin-metrics-by-endpoint@1.2.0: dependencies: debug "^4.3.2" -artillery-plugin-publish-metrics@2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/artillery-plugin-publish-metrics/-/artillery-plugin-publish-metrics-2.10.0.tgz#dd387826ec6a71ad0a44a59ff52e87da00b970e2" - integrity sha512-oG94cLOvFztca6qJX8ifz9ofHTd+Kc4UQBk5CGQPA4AGQH/6F+WDeaDVOU0fawcFRz/q5MAHl6XwZW60m8I7dw== +artillery-plugin-publish-metrics@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/artillery-plugin-publish-metrics/-/artillery-plugin-publish-metrics-2.11.0.tgz#0576b1ddbc4306bdd7eb432dcd1cb19bfdd9cf3b" + integrity sha512-JIWDJDWERRkYe2SskgVaDF5HeVPKbfT9vuP88fhYzRsEoqXn5x7XKtzS2KZqiQGHowIYLdeK+XBcjGZaqWloxA== dependencies: "@aws-sdk/client-cloudwatch" "^3.370.0" "@opentelemetry/api" "^1.4.1" @@ -3535,24 +3551,24 @@ artillery@^1.6.1: ws "^5.1.1" artillery@^2.0.0-38: - version "2.0.4" - resolved "https://registry.yarnpkg.com/artillery/-/artillery-2.0.4.tgz#b5dfb0c354cb839bcc07bcf47abe87894d40c0c4" - integrity sha512-EyTFXPbYl1ukO1HEANrMpi+Td5kri34kxfAk35P6x20CcloLM1qJj923nq7Njb4b/gVnoKVYmDypX13fsNHADw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/artillery/-/artillery-2.0.5.tgz#3938f5fb547c6cda2f1ad47f2ad67716acf52cef" + integrity sha512-7ZKr4NiQhaCCrGQ+ZEpo4joTRYzdep+YtmdMEndotyK0r2kFO1lIRUj65047v3KdHg77i2dfG2IcDUeYxB/7yA== dependencies: "@artilleryio/int-commons" "2.0.4" - "@artilleryio/int-core" "2.3.0" + "@artilleryio/int-core" "2.3.1" "@aws-sdk/credential-providers" "^3.127.0" "@oclif/core" "^2.8.11" "@oclif/plugin-help" "^5.2.11" "@oclif/plugin-not-found" "^2.3.1" archiver "^5.3.1" - artillery-engine-playwright "1.2.0" + artillery-engine-playwright "1.3.0" artillery-plugin-apdex "1.0.1" artillery-plugin-ensure "1.3.0" artillery-plugin-expect "2.3.3" artillery-plugin-fake-data "1.0.2" artillery-plugin-metrics-by-endpoint "1.2.0" - artillery-plugin-publish-metrics "2.10.0" + artillery-plugin-publish-metrics "2.11.0" async "^2.6.4" aws-sdk "^2.1338.0" chalk "^2.4.2" @@ -3658,10 +3674,10 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== await-to-js@=2.1.1: version "2.1.1" @@ -3669,9 +3685,9 @@ await-to-js@=2.1.1: integrity sha512-CHBC6gQGCIzjZ09tJ+XmpQoZOn4GdWePB4qUweCaKNJ0D3f115YdhmYVTZ4rMVpiJ3cFzZcTYK1VMYEICV4YXw== aws-sdk@^2.1271.0, aws-sdk@^2.1338.0: - version "2.1545.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1545.0.tgz#8678ae8117a426d4a6602408e7f47f176356d7ca" - integrity sha512-iDUv6ksG7lTA0l/HlOgYdO6vfYFA1D2/JzAEXSdgKY0C901WgJqBtfs2CncOkCgDe2CjmlMuqciBzAfxCIiKFA== + version "2.1552.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1552.0.tgz#b5b7b1b21d8cbd9647164485095608068b650761" + integrity sha512-sRuzlCeSHXUsdLqsV/E+nPrgBn1EI3BoA38D5qfNMRcPTd9j4G8M4AyMymKyNxLoWOKLqz7xFBa801MHflGwEg== dependencies: buffer "4.9.2" events "1.1.1" @@ -4055,14 +4071,15 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -4085,9 +4102,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== capture-stack-trace@^1.0.0: version "1.0.2" @@ -4736,14 +4753,15 @@ defer-to-connect@^2.0.0: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0: version "1.2.1" @@ -4994,9 +5012,9 @@ ejs@^3.1.8: jake "^10.8.5" electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -5055,9 +5073,9 @@ engine.io-parser@~2.2.0: has-binary2 "~1.0.2" engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== engine.io@~6.5.2: version "6.5.4" @@ -5100,15 +5118,20 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + esbuild-wasm@^0.19.8: version "0.19.12" resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.19.12.tgz#4edf5c2f3a8d90a8e0d38c1c92968ae4a050ded4" integrity sha512-Zmc4hk6FibJZBcTx5/8K/4jT3/oG1vkGTEeKJUQFCUQKimD6Q7+adp/bdVQyYJFolMKaXkQnVZdV4O5ZaTYmyQ== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@4.0.0: version "4.0.0" @@ -5369,9 +5392,9 @@ fastest-levenshtein@^1.0.7: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.0.tgz#ca5e1a90b5e68f97fc8b61330d5819b82f5fab03" - integrity sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -5596,11 +5619,12 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -5802,17 +5826,17 @@ has-proto@^1.0.1: resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbols@^1.0.2, has-symbols@^1.0.3: +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== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has-value@^0.3.1: version "0.3.1" @@ -5990,9 +6014,9 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== import-lazy@^2.1.0: version "2.1.0" @@ -6294,11 +6318,11 @@ is-stream@^2.0.0: integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-typed-array@^1.1.3: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-url-superb@^4.0.0: version "4.0.0" @@ -6916,13 +6940,13 @@ jmespath@0.16.0, jmespath@^0.16.0: integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== joi@^17.6.0: - version "17.12.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5" - integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw== + version "17.12.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.1.tgz#3347ecf4cd3301962d42191c021b165eef1f395b" + integrity sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.4" + "@sideway/address" "^4.1.5" "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" @@ -7726,7 +7750,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -8063,17 +8087,17 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -playwright-core@1.39.0: - version "1.39.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.39.0.tgz#efeaea754af4fb170d11845b8da30b2323287c63" - integrity sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw== +playwright-core@1.41.0: + version "1.41.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.41.0.tgz#dbda9c3948df28a8deae76cc90b424e47174f9d7" + integrity sha512-UGKASUhXmvqm2Lxa1fNr8sFwAtqjpgBRr9jQ7XBI8Rn5uFiEowGUGwrruUQsVPIom4bk7Lt+oLGpXobnXzrBIw== -playwright@1.39.0: - version "1.39.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.39.0.tgz#184c81cd6478f8da28bcd9e60e94fcebf566e077" - integrity sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw== +playwright@1.41.0: + version "1.41.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.41.0.tgz#77ab5f3a5fde479522167f74a5070e72ce884bff" + integrity sha512-XOsfl5ZtAik/T9oek4V0jAypNlaCNzuKOwVhqhgYT3os6kH34PzbRb74F0VWcLYa5WFdnmxl7qyAHBXvPv7lqQ== dependencies: - playwright-core "1.39.0" + playwright-core "1.41.0" optionalDependencies: fsevents "2.3.2" @@ -8141,9 +8165,9 @@ postcss-values-parser@^6.0.2: quote-unquote "^1.0.0" postcss@^8.4.23: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + version "8.4.34" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.34.tgz#563276e86b4ff20dfa5eed0d394d4c53853b2051" + integrity sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -8715,9 +8739,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -8735,14 +8759,15 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -8798,13 +8823,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -9751,16 +9777,16 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.14, which-typed-array@^1.1.2: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^1.2.9: version "1.3.1" diff --git a/yarn.lock b/yarn.lock index 5b5d252552..6060ffc054 100644 --- a/yarn.lock +++ b/yarn.lock @@ -725,9 +725,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/node@*": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "20.11.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" + integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ== dependencies: undici-types "~5.26.4" @@ -1013,13 +1013,13 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array-includes@^3.1.1, array-includes@^3.1.7: version "3.1.7" @@ -1037,16 +1037,27 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.filter@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" + integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.findlastindex@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" + integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.2.3, array.prototype.flat@^1.3.2: version "1.3.2" @@ -1069,16 +1080,17 @@ array.prototype.flatmap@^1.3.2: es-shim-unscopables "^1.0.0" arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" astral-regex@^2.0.0: @@ -1086,10 +1098,10 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== babel-jest@^29.7.0: version "29.7.0" @@ -1193,14 +1205,15 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" + integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.3" + set-function-length "^1.2.0" callsites@^3.0.0: version "3.1.0" @@ -1218,9 +1231,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + version "1.0.30001584" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd" + integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ== chalk@^2.4.2: version "2.4.2" @@ -1375,14 +1388,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" + integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== dependencies: - get-intrinsic "^1.2.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -1433,9 +1447,9 @@ doctrine@^3.0.0: esutils "^2.0.2" electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== + version "1.4.659" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz#e93af8119b6610cb4d2614a47508a74543b96ce5" + integrity sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg== emittery@^0.13.1: version "0.13.1" @@ -1462,7 +1476,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -1507,6 +1521,16 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.13" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" @@ -1516,7 +1540,7 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== @@ -1533,9 +1557,9 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^1.0.5: version "1.0.5" @@ -1906,9 +1930,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.0.tgz#ca5e1a90b5e68f97fc8b61330d5819b82f5fab03" - integrity sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -2022,11 +2046,12 @@ get-caller-file@^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.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -2043,12 +2068,12 @@ get-stream@^6.0.0: integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.1.tgz#c0de911bfaa9ea8da52b5e702d2b3b51b8791ec4" + integrity sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" glob-parent@^5.0.0, glob-parent@^5.1.2: version "5.1.2" @@ -2156,12 +2181,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has@^1.0.3: version "1.0.4" @@ -2196,9 +2221,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -2235,22 +2260,21 @@ inherits@2: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -2369,12 +2393,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -3063,7 +3087,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -3102,14 +3126,15 @@ object.fromentries@^2.0.7: es-abstract "^1.22.1" object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" + integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + array.prototype.filter "^1.0.3" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" object.values@^1.1.1, object.values@^1.1.7: version "1.1.7" @@ -3445,12 +3470,12 @@ safe-array-concat@^1.0.1: isarray "^2.0.5" safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "semver@2 || 3 || 4 || 5": @@ -3464,20 +3489,21 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -3503,13 +3529,14 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -3770,13 +3797,13 @@ type-fest@^0.21.3: integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -3878,16 +3905,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.13, which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^2.0.1: version "2.0.2"