diff --git a/locales/pt-BR/pdf.json b/locales/pt-BR/pdf.json deleted file mode 100644 index 84c3c04b..00000000 --- a/locales/pt-BR/pdf.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "template": { - "title": "Informes", - "statementDetails": "Detalhes da declaração", - "statementDate": "Data da declaração", - "snapshotAt": "Captura de", - "period": "Período", - "username": "Nome de Usuário", - "email": "e-mail", - "errorMessage": "Seu arquivo não pode ser completado, por favor tente novamente", - "reportGenAt": "Informe gerado em ", - "copyright": "Copyright © 2013-{{currYear}} iFinex Inc. Todos os direitos reservados.", - "page": "Página", - "from": "de" - } -} diff --git a/package-lock.json b/package-lock.json index d3b12d18..ac41001a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitfinex/bfx-report", - "version": "5.2.2", + "version": "5.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitfinex/bfx-report", - "version": "5.2.2", + "version": "5.3.0", "license": "Apache-2.0", "dependencies": { "@bitfinex/bfx-facs-deflate": "git+https://github.com/bitfinexcom/bfx-facs-deflate.git", @@ -18,19 +18,19 @@ "ajv": "8.18.0", "ajv-formats": "3.0.1", "async": "3.2.4", - "bitfinex-api-node": "7.0.0", + "bitfinex-api-node": "9.1.0", "colors": "1.4.0", "csv": "5.5.3", "i18next": "23.15.1", - "i18next-fs-backend": "2.3.2", - "inversify": "6.0.1", + "i18next-fs-backend": "2.6.7", + "inversify": "7.11.0", "lru": "3.1.0", "moment": "2.29.4", "moment-timezone": "0.5.39", "pug": "3.0.3", - "reflect-metadata": "0.1.13", + "reflect-metadata": "0.2.2", "triple-beam": "1.3.0", - "uuid": "9.0.0", + "uuid": "11.1.0", "winston": "3.18.3", "winston-transport": "4.9.0", "yargs": "17.2.1" @@ -39,16 +39,16 @@ "@bitfinex/bfx-report-express": "git+https://github.com/bitfinexcom/bfx-report-express.git", "bfx-api-mock-srv": "2.0.0", "chai": "4.3.4", - "concurrently": "9.2.1", + "concurrently": "10.0.4", "cross-env": "10.1.0", "grenache-grape": "1.0.0", "mocha": "11.1.0", "nodemon": "3.1.14", - "standard": "17.0.0", + "standard": "17.1.2", "supertest": "7.1.0" }, "engines": { - "node": ">=20.18.1" + "node": ">=22" } }, "node_modules/@babel/helper-string-parser": { @@ -152,14 +152,14 @@ "license": "MIT" }, "node_modules/@bitfinex/bfx-facs-grc": { - "version": "1.1.0", - "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-facs-grc.git#a8eac3157f97002eb2ae18d556e2fefaed5a1555", + "version": "1.2.1", + "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-facs-grc.git#f21c0ef37a7c467b1d473bee70f6a01625f2d8db", "license": "Apache-2.0", "dependencies": { "@bitfinex/bfx-facs-base": "git+https://github.com/bitfinexcom/bfx-facs-base.git", - "@bitfinexcom/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base#v1.20.0", + "@bitfinex/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base#v2.0.2", "async": "3.2.6", - "grenache-nodejs-http": "1.0.1", + "grenache-nodejs-http": "1.0.2", "grenache-nodejs-link": "1.0.2" }, "engines": { @@ -183,9 +183,39 @@ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "license": "MIT" }, + "node_modules/@bitfinex/bfx-facs-grc/node_modules/grenache-nodejs-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grenache-nodejs-base/-/grenache-nodejs-base-1.1.0.tgz", + "integrity": "sha512-f96z38JRQyBf/IriFJ5MbGqXclKKEtSLs23bFGwbnxURWin7bv1IMjSv6Xn1bvIq9VhfFRNjPd67zDrJeXf8rw==", + "license": "Apache-2.0", + "dependencies": { + "@bitfinex/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base.git#v2.0.0", + "async": "3.2.6", + "duplexify": "4.1.3", + "pump": "3.0.2", + "uuid": "11.1.0" + } + }, + "node_modules/@bitfinex/bfx-facs-grc/node_modules/grenache-nodejs-http": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grenache-nodejs-http/-/grenache-nodejs-http-1.0.2.tgz", + "integrity": "sha512-gf5GMB6tkvVPqn28NP6pnUpCibwA9ZEJfoPLilwIcoPDufzkxwGxiDZDjehmbAjFiqOYhdzMZWSgHgVllMt1TQ==", + "license": "Apache-2.0", + "dependencies": { + "async": "3.2.6", + "duplexify": "4.1.3", + "grenache-nodejs-base": "1.1.0", + "grenache-nodejs-link": "1.0.2", + "node-fetch": "2.7.0", + "pump": "3.0.2" + }, + "engines": { + "node": ">=16.0" + } + }, "node_modules/@bitfinex/bfx-facs-lokue": { - "version": "1.0.0", - "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-facs-lokue.git#98bf62b80f6b6c4b19c598cdc875c6c08ed75175", + "version": "1.0.1", + "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-facs-lokue.git#2af383bd96d459a2f698efa78e05d3c340ffea23", "license": "Apache-2.0", "dependencies": { "@bitfinex/bfx-facs-base": "git+https://github.com/bitfinexcom/bfx-facs-base.git", @@ -274,17 +304,17 @@ } }, "node_modules/@bitfinex/bfx-svc-boot-js": { - "version": "1.1.0", - "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-svc-boot-js.git#be28ca5387eef34e651042e64d278feedf9b3a61", + "version": "1.3.1", + "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-svc-boot-js.git#c9217dadefeb194cc77d79cba5666b61eb7310d9", "license": "Apache-2.0", "dependencies": { - "lodash": "^4.17.21", + "lodash": "^4.18.1", "yargs": "^17.2.1" } }, "node_modules/@bitfinex/bfx-wrk-api": { - "version": "1.0.1", - "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-wrk-api.git#7441bf8ed01087e2882e985a5ab17fac32740a8b", + "version": "1.1.0", + "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-wrk-api.git#d0b3978aff098de8cd5011e480095d7468183805", "license": "Apache-2.0", "dependencies": { "@bitfinex/bfx-facs-api": "git+https://github.com/bitfinexcom/bfx-facs-api.git", @@ -298,12 +328,12 @@ } }, "node_modules/@bitfinex/bfx-wrk-base": { - "version": "1.0.1", - "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-wrk-base.git#dea1cd61dc276f4f78ef020ee9c5a6f131900363", + "version": "1.1.1", + "resolved": "git+ssh://git@github.com/bitfinexcom/bfx-wrk-base.git#9a09dedbb86c82ef849e7a04ee1ff639b037c3db", "license": "Apache-2.0", "dependencies": { "async": "^3.2.1", - "lodash": "^4.17.21" + "lodash": "^4.18.1" }, "engines": { "node": ">=16.0" @@ -317,6 +347,7 @@ "node_modules/@bitfinexcom/lib-js-util-base": { "version": "1.20.0", "resolved": "git+ssh://git@github.com/bitfinexcom/lib-js-util-base.git#c71422aea971508f6a605ac12a56bde4425f0d3b", + "dev": true, "license": "MIT" }, "node_modules/@colors/colors": { @@ -471,6 +502,47 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@inversifyjs/common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inversifyjs/common/-/common-1.5.2.tgz", + "integrity": "sha512-WlzR9xGadABS9gtgZQ+luoZ8V6qm4Ii6RQfcfC9Ho2SOlE6ZuemFo7PKJvKI0ikm8cmKbU8hw5UK6E4qovH21w==", + "license": "MIT" + }, + "node_modules/@inversifyjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-Nm7BR6KmpgshIHpVQWuEDehqRVb6GBm8LFEuhc2s4kSZWrArZ15RmXQzROLk4m+hkj4kMXgvMm5Qbopot/D6Sg==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.5.2", + "@inversifyjs/prototype-utils": "0.1.3", + "@inversifyjs/reflect-metadata-utils": "1.4.1" + } + }, + "node_modules/@inversifyjs/core/node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-1.4.1.tgz", + "integrity": "sha512-Cp77C4d2wLaHXiUB7iH6Cxb7i1lD/YDuTIHLTDzKINqGSz0DCSoL/Dg2wVkW/6Qx03r/yQMLJ+32Agl32N2X8g==", + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "~0.2.2" + } + }, + "node_modules/@inversifyjs/plugin": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@inversifyjs/plugin/-/plugin-0.2.0.tgz", + "integrity": "sha512-R/JAdkTSD819pV1zi0HP54mWHyX+H2m8SxldXRgPQarS3ySV4KPyRdosWcfB8Se0JJZWZLHYiUNiS6JvMWSPjw==", + "license": "MIT" + }, + "node_modules/@inversifyjs/prototype-utils": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/prototype-utils/-/prototype-utils-0.1.3.tgz", + "integrity": "sha512-EzRamZzNgE9Sn3QtZ8NncNa2lpPMZfspqbK6BWFguWnOpK8ymp2TUuH46ruFHZhrHKnknPd7fG22ZV7iF517TQ==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.5.2" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -922,18 +994,20 @@ "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1230,9 +1304,9 @@ } }, "node_modules/bfx-api-node-models": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bfx-api-node-models/-/bfx-api-node-models-2.1.0.tgz", - "integrity": "sha512-S4C6xS6x/Vlds+8HOJFm+hG+LUzk1xnlUomHvMCHLf/96/J+B1iP3NMMt2D22jryvEgezE8tFptgN81CZWgK9Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bfx-api-node-models/-/bfx-api-node-models-2.1.2.tgz", + "integrity": "sha512-LVX5CDIpVJB7t62iOIAh7bGL6ovQBrTQeTHRNFNzYw1w8jXPZpeeh6S5Niv0NLRht1RVd9Vsv7sN1EUzWDB28w==", "license": "MIT", "dependencies": { "bfx-api-node-util": "^1.0.10", @@ -1270,9 +1344,9 @@ "license": "MIT" }, "node_modules/bfx-api-node-rest": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bfx-api-node-rest/-/bfx-api-node-rest-6.0.0.tgz", - "integrity": "sha512-LaS5HuJ8hESIAtsfT4XhJlpCParc2wTduA6/U71Ysee+jO4PU91j3EGbqAyFLUJ6tTjwy24GIjqwByb4qZYZ5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/bfx-api-node-rest/-/bfx-api-node-rest-8.1.0.tgz", + "integrity": "sha512-hTGVPTZUfSG8mA695p3HIXU7mDS0HU55zU2/a9XkMCdH/iVtdhvcr3+5KmzV5wc3vRZ2op+mdTrRCGSPraGU1w==", "license": "MIT", "dependencies": { "bfx-api-node-models": "^2.0.0", @@ -1283,7 +1357,7 @@ "node-fetch": "^2.6.9" }, "engines": { - "node": ">=8.3.0" + "node": ">=16.0.0" } }, "node_modules/bfx-api-node-rest/node_modules/debug": { @@ -1412,13 +1486,13 @@ } }, "node_modules/bitfinex-api-node": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/bitfinex-api-node/-/bitfinex-api-node-7.0.0.tgz", - "integrity": "sha512-mK1WL2y+DxUGum41YM/h1LVVYSUBsxAiw21KgJG06+zbn5GIfvMHaVlOwecpGexLOoZUhtfddyFnwgzd5Qn2bQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/bitfinex-api-node/-/bitfinex-api-node-9.1.0.tgz", + "integrity": "sha512-zBbrGZaVTXL5qv/5DVWoMyVu+bS8ZuLulIVXzE9nozoG3b2MkfozzFyloSOOwHeEJ0hTuWqFfKKlX6ldAXTkPQ==", "license": "MIT", "dependencies": { "bfx-api-node-models": "^2.0.0", - "bfx-api-node-rest": "^6.0.0", + "bfx-api-node-rest": "^8.1.0", "bfx-api-node-util": "^1.0.12", "bfx-api-node-ws1": "^1.0.0", "bignumber.js": "9.0.0", @@ -1510,9 +1584,9 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "version": "1.20.6", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz", + "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==", "dev": true, "license": "MIT", "dependencies": { @@ -1524,7 +1598,7 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "on-finished": "~2.4.1", - "qs": "~6.14.0", + "qs": "~6.15.1", "raw-body": "~2.5.3", "type-is": "~1.6.18", "unpipe": "~1.0.0" @@ -1572,6 +1646,23 @@ "dev": true, "license": "MIT" }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/body-parser/node_modules/raw-body": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", @@ -1599,9 +1690,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -2084,62 +2175,182 @@ "license": "MIT" }, "node_modules/concurrently": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", - "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-10.0.4.tgz", + "integrity": "sha512-trZql+7l/0+WRAsAnEdctr4+iiOS6ZrViI6H8QWcCF9MFS/LT0dKpe8vluB1to6it+OxSI4VospFTIFMW8DJRw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "4.1.2", + "chalk": "5.6.2", "rxjs": "7.8.2", - "shell-quote": "1.8.3", - "supports-color": "8.1.1", + "shell-quote": "1.9.0", + "supports-color": "10.2.2", "tree-kill": "1.2.2", - "yargs": "17.7.2" + "yargs": "18.0.0" }, "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" + "conc": "dist/bin/index.js", + "concurrently": "dist/bin/index.js" }, "engines": { - "node": ">=18" + "node": ">=22" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, + "node_modules/concurrently/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/concurrently/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/concurrently/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/concurrently/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concurrently/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/concurrently/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^8.0.1", + "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^7.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/concurrently/node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/config": { @@ -2650,9 +2861,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "dev": true, "license": "MIT", "dependencies": { @@ -2660,18 +2871,18 @@ "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -2683,21 +2894,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -2706,7 +2920,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -2907,9 +3121,9 @@ } }, "node_modules/eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", "dev": true, "funding": [ { @@ -2926,10 +3140,13 @@ } ], "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", "eslint-plugin-promise": "^6.0.0" } }, @@ -2959,15 +3176,15 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", "dev": true, "license": "MIT", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2980,10 +3197,34 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", "dev": true, "license": "MIT", "dependencies": { @@ -3055,30 +3296,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -3164,9 +3405,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", "dependencies": { @@ -3180,7 +3421,7 @@ "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.8", + "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", @@ -3521,9 +3762,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", "funding": [ { "type": "github", @@ -3703,17 +3944,17 @@ } }, "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" @@ -3833,6 +4074,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", @@ -4086,6 +4340,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/grenache-nodejs-base/-/grenache-nodejs-base-1.0.0.tgz", "integrity": "sha512-SHjd/CRckIPIx2oqqubjKx3E8G6KmaX/nn0ZmYe5A+Yp4s+d6X9ew8F9FcECcgNTTvaOLpkI0/7xePmKC3GrOw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@bitfinexcom/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base.git#v1.20.0", @@ -4099,25 +4354,14 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, "license": "MIT" }, - "node_modules/grenache-nodejs-base/node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/grenache-nodejs-http": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/grenache-nodejs-http/-/grenache-nodejs-http-1.0.1.tgz", "integrity": "sha512-SLqq6eHTvAQzrSWUw1ExpFlkkUN2wXSKUnor1df/i2a3SeCcWeM1AJfO1DsK0DrJ9xARUISQA6yDFdDxaQjOXw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "async": "3.2.6", @@ -4135,6 +4379,7 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, "license": "MIT" }, "node_modules/grenache-nodejs-link": { @@ -4156,19 +4401,6 @@ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "license": "MIT" }, - "node_modules/grenache-nodejs-link/node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/grenache-nodejs-ws": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grenache-nodejs-ws/-/grenache-nodejs-ws-1.0.0.tgz", @@ -4186,20 +4418,6 @@ "node": ">=16.0" } }, - "node_modules/grenache-nodejs-ws/node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -4280,9 +4498,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -4342,9 +4560,9 @@ } }, "node_modules/i18next-fs-backend": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.3.2.tgz", - "integrity": "sha512-LIwUlkqDZnUI8lnUxBnEj8K/FrHQTT/Sc+1rvDm9E8YvvY5YxzoEAASNx+W5M9DfD5s77lI5vSAFWeTp26B/3Q==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.6.7.tgz", + "integrity": "sha512-nN2TIycyR/d+OVuLm1ugPyOlMprqPRnQ7QktBgn44F3H8l7TeTH4ffHJ7nUsd4QVJfetWW7/VZ3s+4g7FoAZUA==", "license": "MIT" }, "node_modules/iconv-lite": { @@ -4469,10 +4687,39 @@ } }, "node_modules/inversify": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz", - "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==", - "license": "MIT" + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-7.11.0.tgz", + "integrity": "sha512-yZDprSSr8TyVeMGI/AOV4ws6gwjX22hj9Z8/oHAVpJORY6WRFTcUzhnZtibBUHEw2U8ArvHcR+i863DplQ3Cwg==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.5.2", + "@inversifyjs/container": "1.15.0", + "@inversifyjs/core": "9.2.0" + } + }, + "node_modules/inversify/node_modules/@inversifyjs/container": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@inversifyjs/container/-/container-1.15.0.tgz", + "integrity": "sha512-U2xYsPrJTz5za2TExi5lg8qOWf8TEVBpN+pQM7B8BVA2rajtbRE9A66SLRHk8c1eGXmg+0K4Hdki6tWAsSQBUA==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.5.2", + "@inversifyjs/core": "9.2.0", + "@inversifyjs/plugin": "0.2.0", + "@inversifyjs/reflect-metadata-utils": "1.4.1" + }, + "peerDependencies": { + "reflect-metadata": "~0.2.2" + } + }, + "node_modules/inversify/node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-1.4.1.tgz", + "integrity": "sha512-Cp77C4d2wLaHXiUB7iH6Cxb7i1lD/YDuTIHLTDzKINqGSz0DCSoL/Dg2wVkW/6Qx03r/yQMLJ+32Agl32N2X8g==", + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "~0.2.2" + } }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -4589,12 +4836,12 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -4728,6 +4975,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5012,10 +5272,20 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -5587,9 +5857,9 @@ } }, "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", "dev": true, "license": "MIT", "dependencies": { @@ -5772,6 +6042,35 @@ "node": ">= 0.6" } }, + "node_modules/node-exports-info": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", + "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -5832,16 +6131,16 @@ } }, "node_modules/nodemon/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/nodemon/node_modules/has-flag": { @@ -6709,9 +7008,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { @@ -7177,9 +7476,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", + "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", "dev": true, "license": "MIT", "engines": { @@ -7190,15 +7489,15 @@ } }, "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" }, @@ -7210,14 +7509,14 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -7334,9 +7633,9 @@ } }, "node_modules/standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz", - "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz", + "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==", "dev": true, "funding": [ { @@ -7354,17 +7653,18 @@ ], "license": "MIT", "dependencies": { - "eslint": "^8.13.0", - "eslint-config-standard": "17.0.0", + "eslint": "^8.41.0", + "eslint-config-standard": "17.1.0", "eslint-config-standard-jsx": "^11.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.1.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-react": "^7.28.0", - "standard-engine": "^15.0.0" + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.36.1", + "standard-engine": "^15.1.0", + "version-guard": "^1.1.1" }, "bin": { - "standard": "bin/cmd.js" + "standard": "bin/cmd.cjs" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7410,6 +7710,20 @@ "node": ">= 0.8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-shift": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", @@ -8006,12 +8320,16 @@ } }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/vary": { @@ -8024,6 +8342,16 @@ "node": ">= 0.8" } }, + "node_modules/version-guard": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.3.tgz", + "integrity": "sha512-JwPr6erhX53EWH/HCSzfy1tTFrtPXUe927wdM1jqBBeYp1OM+qPHjWbsvv6pIBduqdgxxS+ScfG7S28pzyr2DQ==", + "dev": true, + "license": "0BSD", + "engines": { + "node": ">=0.10.48" + } + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", diff --git a/package.json b/package.json index 4f704a88..0770692b 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "@bitfinex/bfx-report", - "version": "5.2.2", + "version": "5.3.0", "description": "Reporting tool", "main": "worker.js", "engines": { - "node": ">=20.18.1" + "node": ">=22" }, "license": "Apache-2.0", "contributors": [ @@ -22,19 +22,19 @@ "ajv": "8.18.0", "ajv-formats": "3.0.1", "async": "3.2.4", - "bitfinex-api-node": "7.0.0", + "bitfinex-api-node": "9.1.0", "colors": "1.4.0", "csv": "5.5.3", "i18next": "23.15.1", - "i18next-fs-backend": "2.3.2", - "inversify": "6.0.1", + "i18next-fs-backend": "2.6.7", + "inversify": "7.11.0", "lru": "3.1.0", "moment": "2.29.4", "moment-timezone": "0.5.39", "pug": "3.0.3", - "reflect-metadata": "0.1.13", + "reflect-metadata": "0.2.2", "triple-beam": "1.3.0", - "uuid": "9.0.0", + "uuid": "11.1.0", "winston": "3.18.3", "winston-transport": "4.9.0", "yargs": "17.2.1" @@ -43,12 +43,12 @@ "@bitfinex/bfx-report-express": "git+https://github.com/bitfinexcom/bfx-report-express.git", "bfx-api-mock-srv": "2.0.0", "chai": "4.3.4", - "concurrently": "9.2.1", + "concurrently": "10.0.4", "cross-env": "10.1.0", "grenache-grape": "1.0.0", "mocha": "11.1.0", "nodemon": "3.1.14", - "standard": "17.0.0", + "standard": "17.1.2", "supertest": "7.1.0" }, "standard": { diff --git a/test/1-api.spec.js b/test/1-api.spec.js index 97dd5484..bbe90dca 100644 --- a/test/1-api.spec.js +++ b/test/1-api.spec.js @@ -778,6 +778,38 @@ describe('API', () => { ]) }) + it('it should be successfully performed by the getLedgers method filtered by wallet', async function () { + this.timeout(5000) + + const res = await agent + .post(`${basePath}/json-rpc`) + .type('json') + .send({ + auth, + method: 'getLedgers', + params: { + wallet: 'exchange', + start: 0, + end, + limit: 2 + }, + id: 5 + }) + .expect('Content-Type', /json/) + .expect(200) + + assert.isObject(res.body) + assert.propertyVal(res.body, 'id', 5) + assert.isObject(res.body.result) + assert.isArray(res.body.result.res) + assert.isNumber(res.body.result.nextPage) + + for (const resItem of res.body.result.res) { + assert.isObject(resItem) + assert.deepEqual(resItem.wallet, 'exchange') + } + }) + it('it should be successfully performed by the getLedgers method, without params', async function () { this.timeout(5000) diff --git a/test/helpers/mock-data.js b/test/helpers/mock-data.js index ae11d980..bf178010 100644 --- a/test/helpers/mock-data.js +++ b/test/helpers/mock-data.js @@ -209,7 +209,7 @@ module.exports = new Map([ [[ 12345, 'BTC', - null, + 'exchange', _ms, null, -0.00001, diff --git a/test/test-cases/report-file-generations.js b/test/test-cases/report-file-generations.js index f5f34262..07af5124 100644 --- a/test/test-cases/report-file-generations.js +++ b/test/test-cases/report-file-generations.js @@ -777,11 +777,6 @@ module.exports = ( it('it should be successfully performed by the getWeightedAveragesReportFile method', async function () { this.timeout(60000) - // TODO: Wait for implementation of pdf template in the next release - if (isPDFRequired) { - this.skip() - } - const procPromise = queueToPromise(params.processorQueue) const aggrPromise = queueToPromise(params.aggregatorQueue) diff --git a/workers/api.service.report.wrk.js b/workers/api.service.report.wrk.js index 45ca9047..4c4832db 100644 --- a/workers/api.service.report.wrk.js +++ b/workers/api.service.report.wrk.js @@ -88,12 +88,12 @@ class WrkReportServiceApi extends WrkApi { loadCoreDeps (...args) { this.coreDeps.push(coreDeps(...args)) - this.container.load(...this.coreDeps) + this.container.loadSync(...this.coreDeps) } loadAppDeps (...args) { this.appDeps.push(appDeps(...args)) - this.container.load(...this.appDeps) + this.container.loadSync(...this.appDeps) } async getI18next (i18nextConfigs) { @@ -267,9 +267,9 @@ class WrkReportServiceApi extends WrkApi { next => { this.stopService().then(next).catch(next) }, next => { super._stop(next) }, next => { - this.container.unbindAll() - this.container.unload(...this.coreDeps) - this.container.unload(...this.appDeps) + this.container.unbindAllSync() + this.container.unloadSync(...this.coreDeps) + this.container.unloadSync(...this.appDeps) next() } diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 325146ad..bed2e5db 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -152,6 +152,10 @@ module.exports = { candleTimeframe: { type: 'string', minLength: 2 + }, + wallet: { + type: 'string', + minLength: 1 } } } diff --git a/workers/loc.api/data-validator/schemas/getLedgersFileReq.js b/workers/loc.api/data-validator/schemas/getLedgersFileReq.js index 524896a6..841b5f7e 100644 --- a/workers/loc.api/data-validator/schemas/getLedgersFileReq.js +++ b/workers/loc.api/data-validator/schemas/getLedgersFileReq.js @@ -19,6 +19,9 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMinItem' }, + wallet: { + $ref: 'defs#/definitions/wallet' + }, category: { type: ['string', 'integer'], if: { diff --git a/workers/loc.api/data-validator/schemas/getLedgersReq.js b/workers/loc.api/data-validator/schemas/getLedgersReq.js index cdf049e6..fa8cbce9 100644 --- a/workers/loc.api/data-validator/schemas/getLedgersReq.js +++ b/workers/loc.api/data-validator/schemas/getLedgersReq.js @@ -19,6 +19,9 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMinItem' }, + wallet: { + $ref: 'defs#/definitions/wallet' + }, category: { type: ['string', 'integer'], if: { diff --git a/workers/loc.api/di/app.deps.js b/workers/loc.api/di/app.deps.js index f3af548b..0682fed1 100644 --- a/workers/loc.api/di/app.deps.js +++ b/workers/loc.api/di/app.deps.js @@ -43,7 +43,7 @@ module.exports = ({ link, i18next }) => { - return new ContainerModule((bind) => { + return new ContainerModule(({ bind }) => { bind(TYPES.RService).toConstantValue(rService) bind(TYPES.RootPath).toConstantValue(rService.ctx.rootPath) bind(TYPES.I18next).toConstantValue(i18next) @@ -60,13 +60,13 @@ module.exports = ({ ]) bind(TYPES.RServiceDepsSchemaAliase) .toDynamicValue((ctx) => { - return ctx.container.get(TYPES.RServiceDepsSchema) + return ctx.get(TYPES.RServiceDepsSchema) }) bind(TYPES.InjectDepsToRService) .toDynamicValue((ctx) => { return bindDepsToInstance( - ctx.container.get(TYPES.RService), - ctx.container.get(TYPES.RServiceDepsSchemaAliase) + ctx.get(TYPES.RService), + ctx.get(TYPES.RServiceDepsSchemaAliase) ) }) .inSingletonScope() diff --git a/workers/loc.api/di/core.deps.js b/workers/loc.api/di/core.deps.js index eaa52ffb..94bda690 100644 --- a/workers/loc.api/di/core.deps.js +++ b/workers/loc.api/di/core.deps.js @@ -9,11 +9,11 @@ const loggerFactory = require('../logger') const dataValidator = require('../data-validator') module.exports = () => { - return new ContainerModule((bind) => { - bind(TYPES.LoggerFactory).toFunction(loggerFactory) + return new ContainerModule(({ bind }) => { + bind(TYPES.LoggerFactory).toConstantValue(loggerFactory) bind(TYPES.Logger).toDynamicValue((ctx) => { return bindDepsToFn( - ctx.container.get(TYPES.LoggerFactory), + ctx.get(TYPES.LoggerFactory), [TYPES.CONF] ) }).inSingletonScope() diff --git a/workers/loc.api/generate-report-file/pdf-writer/template-file-names.js b/workers/loc.api/generate-report-file/pdf-writer/template-file-names.js index df828418..d62fbcd0 100644 --- a/workers/loc.api/generate-report-file/pdf-writer/template-file-names.js +++ b/workers/loc.api/generate-report-file/pdf-writer/template-file-names.js @@ -1,5 +1,6 @@ 'use strict' module.exports = { - MAIN: 'main.pug' + MAIN: 'main.pug', + WEIGHTED_AVERAGES_REPORT: 'weighted-averages-report.pug' } diff --git a/workers/loc.api/generate-report-file/pdf-writer/templates/style.css b/workers/loc.api/generate-report-file/pdf-writer/templates/style.css index 8e3c6e08..9481e3d6 100644 --- a/workers/loc.api/generate-report-file/pdf-writer/templates/style.css +++ b/workers/loc.api/generate-report-file/pdf-writer/templates/style.css @@ -54,30 +54,34 @@ html, body, .header, .footer { font-size: 11px; } -h1 { +h1, .h1 { font-size: 16px; } -h2 { +h2, .h2 { font-size: 14px; } -h3 { +h3, .h3 { font-size: 12px; } -h4 { +h4, .h4 { font-size: 11px; } -h5 { +h5, .h5 { font-size: 10px; } -h6 { +h6, .h6 { font-size: 9px; } +h7, .h7 { + font-size: 8px; +} + .footer { width: 100%; } diff --git a/workers/loc.api/generate-report-file/pdf-writer/templates/weighted-averages-report.pug b/workers/loc.api/generate-report-file/pdf-writer/templates/weighted-averages-report.pug new file mode 100644 index 00000000..ebf9b4a6 --- /dev/null +++ b/workers/loc.api/generate-report-file/pdf-writer/templates/weighted-averages-report.pug @@ -0,0 +1,29 @@ +extends base.pug + +block commonHeader + - const data = Array.isArray(apiData) ? apiData : [{}] + - const columns = reportColumns ?? Object.keys(data?.[0] ?? {}) + - const columnArr = Array.isArray(columns) ? [...columns] : Object.keys(columns) + - const topColumns = columnArr.fill('') + - topColumns[1] = 'Buy' + - topColumns[4] = 'Sell' + - topColumns[7] = 'Cumulative' + + .content + ul.responsive-table.h7 + li.table-header + each columnVal, columnKey in topColumns + .col #{columnVal} + li.table-header + each columnVal, columnKey in columns + .col #{columnVal} + +block content + - const data = Array.isArray(apiData) ? apiData : [{}] + - const columns = reportColumns ?? Object.keys(data?.[0] ?? {}) + + ul.responsive-table.h7 + each dataItem, dataIndex in data + li.table-row + each columnVal, columnKey in columns + .col #{dataItem[columnKey]} diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 9e719135..bc347107 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -14,6 +14,7 @@ const { FindMethodToGetReportFileError, SymbolsTypeError } = require('../errors') +const TEMPLATE_FILE_NAMES = require('./pdf-writer/template-file-names') const depsTypes = (TYPES) => [ TYPES.RService, @@ -1234,7 +1235,8 @@ class ReportFileJobData { firstTradeMts: 'date', lastTradeMts: 'date' }, - csvCustomWriter: this.weightedAveragesReportCsvWriter + csvCustomWriter: this.weightedAveragesReportCsvWriter, + pdfCustomTemplateName: TEMPLATE_FILE_NAMES.WEIGHTED_AVERAGES_REPORT } return jobData diff --git a/workers/loc.api/helpers/prepare-response/helpers/get-params-map.js b/workers/loc.api/helpers/prepare-response/helpers/get-params-map.js index f70c446b..1a569561 100644 --- a/workers/loc.api/helpers/prepare-response/helpers/get-params-map.js +++ b/workers/loc.api/helpers/prepare-response/helpers/get-params-map.js @@ -27,7 +27,8 @@ const PARAMS_MAP = { ledgers: { ...MAIN_PARAMS_MAP, symbol: 'filters.ccy', - category: 'filters.category' + category: 'filters.category', + wallet: 'filters.wallet' }, statusMessages: { type: 'type', diff --git a/workers/loc.api/i18next/index.js b/workers/loc.api/i18next/index.js index 82f7de12..8634e941 100644 --- a/workers/loc.api/i18next/index.js +++ b/workers/loc.api/i18next/index.js @@ -24,7 +24,6 @@ module.exports = (params) => { { fallbackLng: { es: ['es-EM', 'en'], - pt: ['pt-BR', 'en'], zh: ['zh-CN', 'en'], default: ['en'] },