@mojaloop/sdk-scheme-adapter 24.15.2 → 24.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.grype.yaml +2 -1
- package/.yarn/cache/@babel-compat-data-npm-7.28.5-41f8d327e8-5a5ff00b18.zip +0 -0
- package/.yarn/cache/@babel-core-npm-7.28.5-cd68c2d8db-2f1e224125.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.28.5-fd8f3ae6b1-ae618f0a17.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.28.5-1953d49d2b-8e5d9b0133.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.28.5-f2345a6b62-8d9bfb437a.zip +0 -0
- package/.yarn/cache/@babel-plugin-bugfix-firefox-class-in-computed-class-key-npm-7.28.5-086662e626-750de98b34.zip +0 -0
- package/.yarn/cache/{@babel-plugin-transform-block-scoping-npm-7.28.4-f325d4f6d4-0848c681b0.zip → @babel-plugin-transform-block-scoping-npm-7.28.5-83f7baa513-4b695360ed.zip} +0 -0
- package/.yarn/cache/@babel-plugin-transform-destructuring-npm-7.28.5-5a0083928d-9cc67d3377.zip +0 -0
- package/.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.28.5-b1db8006da-da9bb5acd3.zip +0 -0
- package/.yarn/cache/@babel-plugin-transform-logical-assignment-operators-npm-7.28.5-6bdd0633bb-c76778f4b1.zip +0 -0
- package/.yarn/cache/{@babel-plugin-transform-modules-systemjs-npm-7.27.1-8b05b5a514-06d7bf76ac.zip → @babel-plugin-transform-modules-systemjs-npm-7.28.5-1fe3e218f1-1b91b48488.zip} +0 -0
- package/.yarn/cache/@babel-plugin-transform-optional-chaining-npm-7.28.5-18f86d8ec3-0bc900bff6.zip +0 -0
- package/.yarn/cache/{@babel-preset-env-npm-7.28.3-ec87d1a73a-b09991276a.zip → @babel-preset-env-npm-7.28.5-6424c6f247-e9a5136a7e.zip} +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.28.5-2b51d83636-1fce426f5e.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.28.5-582d7cca8a-4256bb9fb2.zip +0 -0
- package/.yarn/cache/@eslint-compat-npm-2.0.0-75620fa055-b1f63053ac.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-1.0.0-2978d0dbb2-0e2fc001ec.zip +0 -0
- package/.yarn/cache/@hapi-hapi-npm-21.4.4-eec3850bb0-1173d7c4a8.zip +0 -0
- package/.yarn/cache/@hapi-statehood-npm-8.2.1-d8a714324b-58053334b1.zip +0 -0
- package/.yarn/cache/{@mojaloop-central-services-error-handling-npm-13.1.3-d798c7ad31-4eae5147c7.zip → @mojaloop-central-services-error-handling-npm-13.1.4-d3bef7695b-13ce908b20.zip} +0 -0
- package/.yarn/cache/{@mojaloop-central-services-metrics-npm-12.8.0-e245e8b50d-627dc16865.zip → @mojaloop-central-services-metrics-npm-12.8.1-7935c82b41-49044a40a6.zip} +0 -0
- package/.yarn/cache/{@mojaloop-central-services-shared-npm-18.34.2-df841bbba3-3daa9af31e.zip → @mojaloop-central-services-shared-npm-18.34.4-d26093c3d3-cf81014269.zip} +0 -0
- package/.yarn/cache/@mojaloop-logging-bc-public-types-lib-npm-0.5.7-3097ca5ddc-fb1c4687f7.zip +0 -0
- package/.yarn/cache/@mojaloop-platform-shared-lib-messaging-types-lib-npm-0.7.4-0e37630881-a372496a09.zip +0 -0
- package/.yarn/cache/{@redis-bloom-npm-5.8.3-892faaab15-031bfb7d85.zip → @redis-bloom-npm-5.10.0-53ea64af9f-c9d3d3113a.zip} +0 -0
- package/.yarn/cache/{@redis-client-npm-5.8.3-acc7573cc3-402e5f4520.zip → @redis-client-npm-5.10.0-ef0f7a1b55-c60d7de94a.zip} +0 -0
- package/.yarn/cache/{@redis-json-npm-5.8.3-bbddd9239e-fc81b7e638.zip → @redis-json-npm-5.10.0-c3d224094a-68ee37f6b1.zip} +0 -0
- package/.yarn/cache/{@redis-search-npm-5.8.3-07f03dcedf-74c4ef9d3f.zip → @redis-search-npm-5.10.0-2b9245aed1-677980fd6a.zip} +0 -0
- package/.yarn/cache/{@redis-time-series-npm-5.8.3-a029734baa-20ab29dfe1.zip → @redis-time-series-npm-5.10.0-2f21ddfb1d-17a3328b69.zip} +0 -0
- package/.yarn/cache/@types-express-npm-5.0.6-a43836c0f4-da2cc3de1b.zip +0 -0
- package/.yarn/cache/@types-formidable-npm-3.4.6-e4589e1e18-25ddb37eb1.zip +0 -0
- package/.yarn/cache/@types-koa-npm-3.0.1-68d382ee88-b1581d31d5.zip +0 -0
- package/.yarn/cache/@types-node-npm-24.10.1-d514f50dfd-ddac8c97be.zip +0 -0
- package/.yarn/cache/@types-serve-static-npm-2.2.0-5b97070e23-f2bad1304c.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-eslint-plugin-npm-8.46.1-a9079cb527-9fd8c27958.zip → @typescript-eslint-eslint-plugin-npm-8.46.3-11cf690280-0c1eb81a43.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-eslint-plugin-npm-8.45.0-92bb8b7596-6d31dbd335.zip → @typescript-eslint-eslint-plugin-npm-8.48.0-1ac1de2061-c9cd87c72d.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-parser-npm-8.46.1-cfdf46e1e9-4edcb49bb0.zip → @typescript-eslint-parser-npm-8.46.3-4b6a18a0cc-d36edeba9c.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-parser-npm-8.45.0-9132cc3400-4f8b7c73ae.zip → @typescript-eslint-parser-npm-8.48.0-d35c0e4145-5919642345.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-project-service-npm-8.46.1-ebb88f07ff-d63cbb8852.zip → @typescript-eslint-project-service-npm-8.46.3-7b731144a3-2f041dfc66.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.48.0-5f7bff822d-5853a2f57b.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-scope-manager-npm-8.46.1-ad4c0a55e0-3d73812087.zip → @typescript-eslint-scope-manager-npm-8.46.3-20b51e3735-6bb6c3210b.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.48.0-39d88ccf91-963af7af23.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-tsconfig-utils-npm-8.46.1-4c9ab3591b-f033d68a53.zip → @typescript-eslint-tsconfig-utils-npm-8.46.3-aca33a5784-e7a16eadf7.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.48.0-7573843ebd-e480cd8049.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-type-utils-npm-8.46.1-2441cbea81-db989c1f55.zip → @typescript-eslint-type-utils-npm-8.46.3-10f94e440e-b29cd001c7.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-type-utils-npm-8.45.0-7a1226a6e4-81017b3f47.zip → @typescript-eslint-type-utils-npm-8.48.0-544dc34636-dfda42624d.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.46.3-236ab30652-3de35df2ec.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.48.0-f3b7599e59-cd14a7ecd1.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-typescript-estree-npm-8.46.1-7899272fc5-af068a14d6.zip → @typescript-eslint-typescript-estree-npm-8.46.3-8915f6d2e4-b55cf72fe3.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.48.0-2e1bfd8907-8ee6b9e98d.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-utils-npm-8.46.1-c04d3c3a0c-a8fed8aebd.zip → @typescript-eslint-utils-npm-8.46.3-6931f1e5e2-369c962bc2.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.48.0-e33cb54739-980b9faeaa.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-visitor-keys-npm-8.46.1-6179cc42f8-eed1c5ce08.zip → @typescript-eslint-visitor-keys-npm-8.46.3-a6e2e64cde-02659a4cc4.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.48.0-2326c862a8-f9eaff8225.zip +0 -0
- package/.yarn/cache/{eslint-plugin-jest-npm-29.0.1-fe022b91da-d7b0a3fbdb.zip → eslint-plugin-jest-npm-29.2.1-ffd5e9b8a1-1ebb7b349c.zip} +0 -0
- package/.yarn/cache/immutable-npm-5.1.4-cddca3d05c-0655b33af2.zip +0 -0
- package/.yarn/cache/joi-npm-18.0.2-79a3fbcace-0cf4980caf.zip +0 -0
- package/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-a52d0519f0.zip +0 -0
- package/.yarn/cache/koa-body-npm-7.0.0-535082bb2a-b3c35a0805.zip +0 -0
- package/.yarn/cache/{koa-npm-3.0.1-b25d97703b-0e56f77f71.zip → koa-npm-3.0.3-69f0f9bdfc-15df9a7777.zip} +0 -0
- package/.yarn/cache/{nodemon-npm-3.1.10-a345fb1076-af5f63d0b4.zip → nodemon-npm-3.1.11-eb55b13338-0f43d2c70a.zip} +0 -0
- package/.yarn/cache/redis-npm-5.10.0-dec025e9a2-f88a7098e2.zip +0 -0
- package/.yarn/cache/{tar-npm-7.5.1-7b414f7fec-4848cd2fa2.zip → tar-npm-7.5.2-6d8cfb7a13-dbad9c9a07.zip} +0 -0
- package/.yarn/cache/{ts-jest-npm-29.4.5-5dad11fc5b-48d867e070.zip → ts-jest-npm-29.4.6-a9cc323ce9-e0ff9e13f6.zip} +0 -0
- package/.yarn/cache/{undici-types-npm-7.14.0-d9eb643e6a-0f8709b214.zip → undici-types-npm-7.16.0-0e23b08124-db43439f69.zip} +0 -0
- package/.yarn/cache/{validator-npm-13.15.15-143146ad19-a43d9271c8.zip → validator-npm-13.15.20-81be70a87b-498f9b201d.zip} +0 -0
- package/.yarn/cache/zod-npm-4.1.12-8e1ffc4d68-c5f04e6ac3.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/{yarn-4.10.3.cjs → yarn-4.11.0.cjs} +300 -300
- package/.yarnrc.yml +1 -1
- package/CHANGELOG.md +24 -0
- package/modules/api-svc/jest.config.js +4 -4
- package/modules/api-svc/package.json +15 -13
- package/modules/api-svc/src/lib/model/OutboundTransfersModel.js +40 -2
- package/modules/outbound-command-event-handler/jest.config.js +4 -4
- package/modules/outbound-command-event-handler/package.json +12 -12
- package/modules/outbound-domain-event-handler/jest.config.js +4 -4
- package/modules/outbound-domain-event-handler/package.json +10 -10
- package/modules/private-shared-lib/jest.config.js +4 -4
- package/modules/private-shared-lib/package.json +12 -10
- package/package.json +11 -8
- package/{sbom-v24.15.1.csv → sbom-v24.15.3.csv} +200 -199
- package/.yarn/cache/@babel-plugin-bugfix-firefox-class-in-computed-class-key-npm-7.27.1-f0c584df24-fe65257d5b.zip +0 -0
- package/.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.27.1-ce51b745ac-dbbedd2472.zip +0 -0
- package/.yarn/cache/@babel-plugin-transform-logical-assignment-operators-npm-7.27.1-b46ecdb249-2757955d81.zip +0 -0
- package/.yarn/cache/@eslint-compat-npm-1.4.0-2352faedcd-204f80bfde.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.16.0-ceefcac859-3cea45971b.zip +0 -0
- package/.yarn/cache/@types-formidable-npm-2.0.6-94d53f71b6-808a9bc112.zip +0 -0
- package/.yarn/cache/@types-koa-npm-2.15.0-fe318dc6d8-2be9dff1ef.zip +0 -0
- package/.yarn/cache/@types-node-npm-24.8.1-bc0371b5f2-4f94446676.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.46.1-79fefa883d-d162ddf6d7.zip +0 -0
- package/.yarn/cache/koa-body-npm-6.0.1-e672d44ab2-d241d4d228.zip +0 -0
- package/.yarn/cache/redis-npm-5.8.3-3369ceaea3-3843f0ad95.zip +0 -0
- package/.yarn/cache/zod-npm-3.25.76-7de26333f8-f0c963ec40.zip +0 -0
package/.yarnrc.yml
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
1
|
# Changelog: [mojaloop/sdk-scheme-adapter](https://github.com/mojaloop/sdk-scheme-adapter)
|
|
2
|
+
## [24.16.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.15.3...v24.16.0) (2025-12-02)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add metrics for fx steps in model ([#635](https://github.com/mojaloop/sdk-scheme-adapter/issues/635)) ([f4e4082](https://github.com/mojaloop/sdk-scheme-adapter/commit/f4e40824f40b652ff16786c8c5c522d2107cdcb3))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Chore
|
|
11
|
+
|
|
12
|
+
* **sbom:** update sbom [skip ci] ([426600b](https://github.com/mojaloop/sdk-scheme-adapter/commit/426600bdf4a557ca034ec2f3492a4e00704b5605))
|
|
13
|
+
|
|
14
|
+
### [24.15.3](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.15.2...v24.15.3) (2025-11-11)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Chore
|
|
18
|
+
|
|
19
|
+
* **sbom:** update sbom [skip ci] ([b87dfbd](https://github.com/mojaloop/sdk-scheme-adapter/commit/b87dfbd1098208de521e4dc522bb5105387b2a88))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Tests
|
|
23
|
+
|
|
24
|
+
* re-enable code coverage pi29 ([#627](https://github.com/mojaloop/sdk-scheme-adapter/issues/627)) ([5c69d9a](https://github.com/mojaloop/sdk-scheme-adapter/commit/5c69d9a08dc5d2e2bd30a458de4a98dbcef8886f))
|
|
25
|
+
|
|
2
26
|
### [24.15.2](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.15.1...v24.15.2) (2025-10-17)
|
|
3
27
|
|
|
4
28
|
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
"test": "yarn run test:unit",
|
|
29
29
|
"test:unit": "jest --runInBand --ci --reporters=default --reporters=jest-junit --env=node test/unit/ --setupFilesAfterEnv=./test/unit/setup.js",
|
|
30
30
|
"test:xunit": "JEST_JUNIT_OUTPUT_DIR=../test/reports/ JEST_JUNIT_OUTPUT_NAME=xunit-api-svc.xml yarn run test:unit -- --reporters=jest-junit",
|
|
31
|
+
"test:coverage": "jest --runInBand --ci --coverage --env=node test/unit/ --setupFilesAfterEnv=./test/unit/setup.js",
|
|
32
|
+
"test:coverage-check": "jest --runInBand --ci --coverage --env=node test/unit/ --setupFilesAfterEnv=./test/unit/setup.js",
|
|
31
33
|
"test:integration": "jest --ci --reporters=default --reporters=jest-junit --env=node test/integration/",
|
|
32
34
|
"test:integration-pm4ml": "jest --ci --reporters=default --reporters=jest-junit --env=node test/integration-pm4ml/",
|
|
33
35
|
"test:pm4ml-run-mock-servers": "node test/integration-pm4ml/mockServers/index.js",
|
|
@@ -64,19 +66,19 @@
|
|
|
64
66
|
},
|
|
65
67
|
"dependencies": {
|
|
66
68
|
"@koa/cors": "5.0.0",
|
|
67
|
-
"@mojaloop/api-snippets": "18.2.
|
|
68
|
-
"@mojaloop/central-services-error-handling": "13.1.
|
|
69
|
+
"@mojaloop/api-snippets": "18.2.1",
|
|
70
|
+
"@mojaloop/central-services-error-handling": "13.1.4",
|
|
69
71
|
"@mojaloop/central-services-logger": "11.10.1",
|
|
70
|
-
"@mojaloop/central-services-metrics": "12.8.
|
|
71
|
-
"@mojaloop/central-services-shared": "18.34.
|
|
72
|
+
"@mojaloop/central-services-metrics": "12.8.1",
|
|
73
|
+
"@mojaloop/central-services-shared": "18.34.4",
|
|
72
74
|
"@mojaloop/event-sdk": "14.8.1",
|
|
73
75
|
"@mojaloop/logging-bc-client-lib": "0.5.8",
|
|
74
76
|
"@mojaloop/ml-schema-transformer-lib": "2.7.8",
|
|
75
77
|
"@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
|
|
76
78
|
"@mojaloop/sdk-standard-components": "19.18.0",
|
|
77
79
|
"ajv": "8.17.1",
|
|
78
|
-
"axios": "1.
|
|
79
|
-
"body-parser": "2.2.
|
|
80
|
+
"axios": "1.13.2",
|
|
81
|
+
"body-parser": "2.2.1",
|
|
80
82
|
"co-body": "6.2.0",
|
|
81
83
|
"dotenv": "17.2.3",
|
|
82
84
|
"env-var": "7.5.0",
|
|
@@ -84,11 +86,11 @@
|
|
|
84
86
|
"fast-json-patch": "3.1.1",
|
|
85
87
|
"fast-safe-stringify": "2.1.1",
|
|
86
88
|
"javascript-state-machine": "3.1.0",
|
|
87
|
-
"js-yaml": "4.1.
|
|
89
|
+
"js-yaml": "4.1.1",
|
|
88
90
|
"json-schema-ref-parser": "9.0.9",
|
|
89
91
|
"knex": "3.1.0",
|
|
90
|
-
"koa": "3.
|
|
91
|
-
"koa-body": "
|
|
92
|
+
"koa": "3.1.1",
|
|
93
|
+
"koa-body": "7.0.0",
|
|
92
94
|
"lodash": "4.17.21",
|
|
93
95
|
"module-alias": "2.2.3",
|
|
94
96
|
"oauth2-server": "4.0.0-dev.2",
|
|
@@ -96,14 +98,14 @@
|
|
|
96
98
|
"prom-client": "15.1.3",
|
|
97
99
|
"promise-timeout": "1.3.0",
|
|
98
100
|
"random-word-slugs": "0.1.7",
|
|
99
|
-
"redis": "5.
|
|
101
|
+
"redis": "5.10.0",
|
|
100
102
|
"retry": "^0.13.1",
|
|
101
103
|
"uuidv4": "6.2.13",
|
|
102
104
|
"ws": "8.18.3"
|
|
103
105
|
},
|
|
104
106
|
"devDependencies": {
|
|
105
|
-
"@babel/core": "7.28.
|
|
106
|
-
"@babel/preset-env": "7.28.
|
|
107
|
+
"@babel/core": "7.28.5",
|
|
108
|
+
"@babel/preset-env": "7.28.5",
|
|
107
109
|
"@redocly/openapi-cli": "1.0.0-beta.95",
|
|
108
110
|
"@types/jest": "30.0.0",
|
|
109
111
|
"@types/retry": "^0",
|
|
@@ -112,7 +114,7 @@
|
|
|
112
114
|
"eslint": "9.15.0",
|
|
113
115
|
"eslint-config-airbnb-base": "15.0.0",
|
|
114
116
|
"eslint-plugin-import": "2.32.0",
|
|
115
|
-
"eslint-plugin-jest": "29.
|
|
117
|
+
"eslint-plugin-jest": "29.2.1",
|
|
116
118
|
"jest": "29.7.0",
|
|
117
119
|
"jest-junit": "16.0.0",
|
|
118
120
|
"npm-check-updates": "16.7.10",
|
|
@@ -135,12 +135,24 @@ class OutboundTransfersModel {
|
|
|
135
135
|
quoteResponses: config.metricsClient.getCounter(
|
|
136
136
|
'mojaloop_connector_outbound_quote_response_count',
|
|
137
137
|
'Count of responses received to outbound quote requests'),
|
|
138
|
+
fxQuoteRequests: config.metricsClient.getCounter(
|
|
139
|
+
'mojaloop_connector_outbound_fx_quote_request_count',
|
|
140
|
+
'Count of outbound FX quote requests sent'),
|
|
141
|
+
fxQuoteResponses: config.metricsClient.getCounter(
|
|
142
|
+
'mojaloop_connector_outbound_fx_quote_response_count',
|
|
143
|
+
'Count of responses received to outbound FX quote requests'),
|
|
138
144
|
transferPrepares: config.metricsClient.getCounter(
|
|
139
145
|
'mojaloop_connector_outbound_transfer_prepare_count',
|
|
140
146
|
'Count of outbound transfer prepare requests sent'),
|
|
141
147
|
transferFulfils: config.metricsClient.getCounter(
|
|
142
148
|
'mojaloop_connector_outbound_transfer_fulfil_response_count',
|
|
143
149
|
'Count of responses received to outbound transfer prepares'),
|
|
150
|
+
fxTransferPrepares: config.metricsClient.getCounter(
|
|
151
|
+
'mojaloop_connector_outbound_fx_transfer_prepare_count',
|
|
152
|
+
'Count of outbound FX transfer prepare requests sent'),
|
|
153
|
+
fxTransferFulfils: config.metricsClient.getCounter(
|
|
154
|
+
'mojaloop_connector_outbound_fx_transfer_fulfil_response_count',
|
|
155
|
+
'Count of responses received to outbound FX transfer prepares'),
|
|
144
156
|
partyLookupLatency: config.metricsClient.getHistogram(
|
|
145
157
|
'mojaloop_connector_outbound_party_lookup_latency',
|
|
146
158
|
'Time taken for a response to a party lookup request to be received'),
|
|
@@ -149,7 +161,13 @@ class OutboundTransfersModel {
|
|
|
149
161
|
'Time taken for a response to a quote request to be received'),
|
|
150
162
|
transferLatency: config.metricsClient.getHistogram(
|
|
151
163
|
'mojaloop_connector_outbound_transfer_latency',
|
|
152
|
-
'Time taken for a response to a transfer prepare to be received')
|
|
164
|
+
'Time taken for a response to a transfer prepare to be received'),
|
|
165
|
+
fxQuoteLatency: config.metricsClient.getHistogram(
|
|
166
|
+
'mojaloop_connector_outbound_fx_quote_latency',
|
|
167
|
+
'Time taken for a response to an FX quote request to be received'),
|
|
168
|
+
fxTransferLatency: config.metricsClient.getHistogram(
|
|
169
|
+
'mojaloop_connector_outbound_fx_transfer_latency',
|
|
170
|
+
'Time taken for a response to an FX transfer to be received')
|
|
153
171
|
};
|
|
154
172
|
|
|
155
173
|
this.getServicesFxpResponse = config.getServicesFxpResponse;
|
|
@@ -570,11 +588,13 @@ class OutboundTransfersModel {
|
|
|
570
588
|
}
|
|
571
589
|
|
|
572
590
|
async _requestFxQuote() {
|
|
591
|
+
let latencyTimerDone;
|
|
573
592
|
try {
|
|
574
593
|
this.data.fxQuoteExpiration = this._getExpirationTimestamp();
|
|
575
594
|
const payload = dto.outboundPostFxQuotePayloadDto(this.data);
|
|
576
595
|
const channel = `${CacheKeyPrefixes.FX_QUOTE_CALLBACK_CHANNEL}_${payload.conversionRequestId}`;
|
|
577
596
|
|
|
597
|
+
latencyTimerDone = this.metrics.fxQuoteLatency.startTimer();
|
|
578
598
|
const subscribing = this._cache.subscribeToOneMessageWithTimer(channel);
|
|
579
599
|
|
|
580
600
|
const resp = await this._requests.postFxQuotes(
|
|
@@ -590,10 +610,16 @@ class OutboundTransfersModel {
|
|
|
590
610
|
body: payload,
|
|
591
611
|
headers: originalRequest.headers
|
|
592
612
|
};
|
|
613
|
+
this.metrics.fxQuoteRequests.inc();
|
|
593
614
|
this._logger.isVerboseEnabled && this._logger.push({ fxQuotePayload: payload }).verbose('fxQuote request is sent to hub');
|
|
594
615
|
|
|
595
616
|
const message = await subscribing;
|
|
596
617
|
|
|
618
|
+
if (latencyTimerDone) {
|
|
619
|
+
latencyTimerDone();
|
|
620
|
+
}
|
|
621
|
+
this.metrics.fxQuoteResponses.inc();
|
|
622
|
+
|
|
597
623
|
if (message instanceof Error) throw message;
|
|
598
624
|
const { body, headers } = message.data;
|
|
599
625
|
|
|
@@ -622,6 +648,9 @@ class OutboundTransfersModel {
|
|
|
622
648
|
|
|
623
649
|
return payload; // think, if we need to return something at this point
|
|
624
650
|
} catch (err) {
|
|
651
|
+
if (latencyTimerDone) {
|
|
652
|
+
latencyTimerDone();
|
|
653
|
+
}
|
|
625
654
|
this._logger.push({ err }).error(`error in _requestFxQuote: ${err.message}`);
|
|
626
655
|
throw err;
|
|
627
656
|
}
|
|
@@ -812,20 +841,26 @@ class OutboundTransfersModel {
|
|
|
812
841
|
|
|
813
842
|
|
|
814
843
|
async _executeFxTransfer() {
|
|
844
|
+
let latencyTimerDone;
|
|
815
845
|
try {
|
|
816
|
-
|
|
817
846
|
this.data.fxTransferExpiration = this._getExpirationTimestamp();
|
|
818
847
|
const payload = dto.outboundPostFxTransferPayloadDto(this.data);
|
|
819
848
|
const channel = `${CacheKeyPrefixes.FX_TRANSFER_CALLBACK_CHANNEL}_${payload.commitRequestId}`;
|
|
820
849
|
|
|
850
|
+
latencyTimerDone = this.metrics.fxTransferLatency.startTimer();
|
|
821
851
|
const subscribing = this._cache.subscribeToOneMessageWithTimer(channel);
|
|
822
852
|
|
|
823
853
|
const { originalRequest } = await this._requests.postFxTransfers(payload, payload.counterPartyFsp, this.#createOtelHeaders());
|
|
824
854
|
this.data.fxTransferRequest = { body: payload , headers: originalRequest.headers };
|
|
855
|
+
this.metrics.fxTransferPrepares.inc();
|
|
825
856
|
this._logger.push({ originalRequest }).verbose('fxTransfers request is sent to hub');
|
|
826
857
|
|
|
827
858
|
const message = await subscribing;
|
|
828
859
|
|
|
860
|
+
if (latencyTimerDone) {
|
|
861
|
+
latencyTimerDone();
|
|
862
|
+
}
|
|
863
|
+
this.metrics.fxTransferFulfils.inc();
|
|
829
864
|
if (message instanceof Error) throw message;
|
|
830
865
|
|
|
831
866
|
const { body, headers } = message.data;
|
|
@@ -856,6 +891,9 @@ class OutboundTransfersModel {
|
|
|
856
891
|
|
|
857
892
|
return payload; // think, if we need to return something at this point
|
|
858
893
|
} catch (err) {
|
|
894
|
+
if (latencyTimerDone) {
|
|
895
|
+
latencyTimerDone();
|
|
896
|
+
}
|
|
859
897
|
this._logger.push({ err }).error(`error in _executeFxTransfer: ${err.message}`);
|
|
860
898
|
throw err;
|
|
861
899
|
}
|
|
@@ -20,10 +20,10 @@ module.exports = {
|
|
|
20
20
|
clearMocks: true,
|
|
21
21
|
coverageThreshold: {
|
|
22
22
|
"global": {
|
|
23
|
-
"branches":
|
|
24
|
-
"functions":
|
|
25
|
-
"lines":
|
|
26
|
-
"statements": -
|
|
23
|
+
"branches": 14,
|
|
24
|
+
"functions": 44,
|
|
25
|
+
"lines": 30,
|
|
26
|
+
"statements": -525
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' })
|
|
@@ -34,47 +34,47 @@
|
|
|
34
34
|
"test:xunit": "JEST_JUNIT_OUTPUT_DIR=../test/reports/ JEST_JUNIT_OUTPUT_NAME=xunit-command.xml yarn run test:unit -- --reporters=jest-junit",
|
|
35
35
|
"test:integration": "jest --runInBand --passWithNoTests --testMatch '**/test/integration/**/*.test.ts' ",
|
|
36
36
|
"test:coverage": "jest --passWithNoTests --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
37
|
-
"test:coverage-check
|
|
37
|
+
"test:coverage-check": "jest --runInBand --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
38
38
|
"dep:check": "ncu -e 2",
|
|
39
39
|
"dep:update": "ncu -u",
|
|
40
40
|
"release": "standard-version --skip.changelog --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'",
|
|
41
41
|
"snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@mojaloop/api-snippets": "18.2.
|
|
45
|
-
"@mojaloop/central-services-shared": "18.34.
|
|
44
|
+
"@mojaloop/api-snippets": "18.2.1",
|
|
45
|
+
"@mojaloop/central-services-shared": "18.34.4",
|
|
46
46
|
"@mojaloop/logging-bc-client-lib": "0.5.8",
|
|
47
|
-
"@mojaloop/logging-bc-public-types-lib": "0.5.
|
|
47
|
+
"@mojaloop/logging-bc-public-types-lib": "0.5.7",
|
|
48
48
|
"@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
|
|
49
49
|
"ajv": "8.17.1",
|
|
50
50
|
"ajv-formats": "3.0.1",
|
|
51
51
|
"convict": "6.2.4",
|
|
52
52
|
"express": "4.21.2",
|
|
53
53
|
"openapi-backend": "5.15.0",
|
|
54
|
-
"redis": "5.
|
|
54
|
+
"redis": "5.10.0",
|
|
55
55
|
"swagger-ui-express": "5.0.1",
|
|
56
56
|
"yamljs": "0.3.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@eslint/compat": "
|
|
59
|
+
"@eslint/compat": "2.0.0",
|
|
60
60
|
"@types/convict": "6.1.6",
|
|
61
|
-
"@types/express": "5.0.
|
|
61
|
+
"@types/express": "5.0.6",
|
|
62
62
|
"@types/jest": "30.0.0",
|
|
63
|
-
"@types/node": "24.
|
|
63
|
+
"@types/node": "24.10.1",
|
|
64
64
|
"@types/node-cache": "4.2.5",
|
|
65
65
|
"@types/supertest": "6.0.3",
|
|
66
66
|
"@types/swagger-ui-express": "4.1.8",
|
|
67
67
|
"@types/yamljs": "0.2.34",
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
69
|
-
"@typescript-eslint/parser": "8.
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "8.48.0",
|
|
69
|
+
"@typescript-eslint/parser": "8.48.0",
|
|
70
70
|
"copyfiles": "2.4.1",
|
|
71
71
|
"eslint": "9.15.0",
|
|
72
72
|
"jest": "29.7.0",
|
|
73
|
-
"nodemon": "3.1.
|
|
73
|
+
"nodemon": "3.1.11",
|
|
74
74
|
"npm-check-updates": "16.7.10",
|
|
75
75
|
"replace": "1.2.2",
|
|
76
76
|
"standard-version": "9.5.0",
|
|
77
|
-
"ts-jest": "29.4.
|
|
77
|
+
"ts-jest": "29.4.6",
|
|
78
78
|
"ts-node": "10.9.2",
|
|
79
79
|
"typescript": "5.9.3"
|
|
80
80
|
},
|
|
@@ -34,44 +34,44 @@
|
|
|
34
34
|
"test:xunit": "JEST_JUNIT_OUTPUT_DIR=../test/reports/ JEST_JUNIT_OUTPUT_NAME=xunit-event.xml yarn run test:unit -- --reporters=jest-junit",
|
|
35
35
|
"test:integration": "jest --runInBand --passWithNoTests --testMatch '**/test/integration/**/*.test.ts'",
|
|
36
36
|
"test:coverage": "jest --passWithNoTests --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
37
|
-
"test:coverage-check
|
|
37
|
+
"test:coverage-check": "jest --runInBand --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
38
38
|
"dep:check": "ncu -e 2",
|
|
39
39
|
"dep:update": "ncu -u",
|
|
40
40
|
"release": "standard-version --skip.changelog --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'",
|
|
41
41
|
"snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@mojaloop/api-snippets": "18.2.
|
|
44
|
+
"@mojaloop/api-snippets": "18.2.1",
|
|
45
45
|
"@mojaloop/logging-bc-client-lib": "0.5.8",
|
|
46
|
-
"@mojaloop/logging-bc-public-types-lib": "0.5.
|
|
46
|
+
"@mojaloop/logging-bc-public-types-lib": "0.5.7",
|
|
47
47
|
"@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
|
|
48
48
|
"ajv-formats": "3.0.1",
|
|
49
49
|
"convict": "6.2.4",
|
|
50
50
|
"express": "4.21.2",
|
|
51
51
|
"openapi-backend": "5.15.0",
|
|
52
|
-
"redis": "5.
|
|
52
|
+
"redis": "5.10.0",
|
|
53
53
|
"swagger-ui-express": "5.0.1",
|
|
54
54
|
"yamljs": "0.3.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/convict": "6.1.6",
|
|
58
|
-
"@types/express": "5.0.
|
|
58
|
+
"@types/express": "5.0.6",
|
|
59
59
|
"@types/jest": "30.0.0",
|
|
60
|
-
"@types/node": "24.
|
|
60
|
+
"@types/node": "24.10.1",
|
|
61
61
|
"@types/node-cache": "4.2.5",
|
|
62
62
|
"@types/supertest": "6.0.3",
|
|
63
63
|
"@types/swagger-ui-express": "4.1.8",
|
|
64
64
|
"@types/yamljs": "0.2.34",
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
66
|
-
"@typescript-eslint/parser": "8.
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "8.48.0",
|
|
66
|
+
"@typescript-eslint/parser": "8.48.0",
|
|
67
67
|
"copyfiles": "2.4.1",
|
|
68
68
|
"eslint": "9.15.0",
|
|
69
69
|
"jest": "29.7.0",
|
|
70
|
-
"nodemon": "3.1.
|
|
70
|
+
"nodemon": "3.1.11",
|
|
71
71
|
"npm-check-updates": "16.7.10",
|
|
72
72
|
"replace": "1.2.2",
|
|
73
73
|
"standard-version": "9.5.0",
|
|
74
|
-
"ts-jest": "29.4.
|
|
74
|
+
"ts-jest": "29.4.6",
|
|
75
75
|
"ts-node": "10.9.2",
|
|
76
76
|
"typescript": "5.9.3"
|
|
77
77
|
},
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"build": "tsc",
|
|
21
21
|
"test:unit": "jest --passWithNoTests --testMatch '**/test/unit/**/*.test.ts'",
|
|
22
22
|
"test:xunit": "JEST_JUNIT_OUTPUT_DIR=../test/reports/ JEST_JUNIT_OUTPUT_NAME=xunit-lib.xml yarn run test:unit -- --reporters=jest-junit",
|
|
23
|
+
"test:coverage": "jest --passWithNoTests --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
24
|
+
"test:coverage-check": "jest --runInBand --coverage --testMatch '**/test/unit/**/*.test.ts'",
|
|
23
25
|
"lint": "eslint --debug ./src/",
|
|
24
26
|
"lint:fix": "eslint ./src/ --fix",
|
|
25
27
|
"clean:dist": "rm -Rf dist",
|
|
@@ -29,27 +31,27 @@
|
|
|
29
31
|
"snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'"
|
|
30
32
|
},
|
|
31
33
|
"dependencies": {
|
|
32
|
-
"@mojaloop/api-snippets": "18.2.
|
|
33
|
-
"@mojaloop/central-services-shared": "18.34.
|
|
34
|
-
"@mojaloop/logging-bc-public-types-lib": "0.5.
|
|
35
|
-
"@mojaloop/platform-shared-lib-messaging-types-lib": "0.7.
|
|
34
|
+
"@mojaloop/api-snippets": "18.2.1",
|
|
35
|
+
"@mojaloop/central-services-shared": "18.34.4",
|
|
36
|
+
"@mojaloop/logging-bc-public-types-lib": "0.5.7",
|
|
37
|
+
"@mojaloop/platform-shared-lib-messaging-types-lib": "0.7.4",
|
|
36
38
|
"@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "0.5.18",
|
|
37
39
|
"ajv": "8.17.1",
|
|
38
|
-
"redis": "5.
|
|
40
|
+
"redis": "5.10.0",
|
|
39
41
|
"uuid": "11.1.0"
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
42
|
-
"@eslint/compat": "
|
|
43
|
-
"@types/node": "24.
|
|
44
|
+
"@eslint/compat": "2.0.0",
|
|
45
|
+
"@types/node": "24.10.1",
|
|
44
46
|
"@types/uuid": "10.0.0",
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
46
|
-
"@typescript-eslint/parser": "8.
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "8.48.0",
|
|
48
|
+
"@typescript-eslint/parser": "8.48.0",
|
|
47
49
|
"eslint": "9.15.0",
|
|
48
50
|
"jest": "29.7.0",
|
|
49
51
|
"npm-check-updates": "16.7.10",
|
|
50
52
|
"replace": "1.2.2",
|
|
51
53
|
"standard-version": "9.5.0",
|
|
52
|
-
"ts-jest": "29.4.
|
|
54
|
+
"ts-jest": "29.4.6",
|
|
53
55
|
"tslib": "2.8.1",
|
|
54
56
|
"typescript": "5.9.3"
|
|
55
57
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaloop/sdk-scheme-adapter",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.16.0",
|
|
4
4
|
"description": "mojaloop sdk-scheme-adapter",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/mojaloop/sdk-scheme-adapter",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"Yevhen Kyriukha <yevhen.kyriukha@modusbox.com>",
|
|
19
19
|
"Vijay Kumar Guthi <vijaya.guthi@modusbox.com>"
|
|
20
20
|
],
|
|
21
|
-
"packageManager": "yarn@4.
|
|
21
|
+
"packageManager": "yarn@4.11.0",
|
|
22
22
|
"engines": {
|
|
23
23
|
"yarn": "3.2.0"
|
|
24
24
|
},
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"test:coverage": "nx run-many --parallel --all --target=test:coverage",
|
|
61
61
|
"test:coverage:affected": "nx affected --parallel --target=test:coverage",
|
|
62
62
|
"test:coverage-check": "yarn install --immutable && yarn run build && yarn run test:coverage-check-dev",
|
|
63
|
-
"test:coverage-check-dev": "nx run-many --
|
|
63
|
+
"test:coverage-check-dev": "nx run-many --all --target=test:coverage-check -- --detectOpenHandles",
|
|
64
64
|
"test:coverage-check:affected": "nx affected --parallel --target=test:coverage-check",
|
|
65
65
|
"test:functional": "./test/scripts/test-functional.sh",
|
|
66
66
|
"test:integration": "./test/scripts/test-integration.sh",
|
|
@@ -83,10 +83,10 @@
|
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
85
|
"@types/jest": "30.0.0",
|
|
86
|
-
"@types/node": "24.
|
|
86
|
+
"@types/node": "24.10.1",
|
|
87
87
|
"@types/node-cache": "4.2.5",
|
|
88
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
89
|
-
"@typescript-eslint/parser": "8.
|
|
88
|
+
"@typescript-eslint/eslint-plugin": "8.48.0",
|
|
89
|
+
"@typescript-eslint/parser": "8.48.0",
|
|
90
90
|
"audit-ci": "7.1.0",
|
|
91
91
|
"eslint": "9.15.0",
|
|
92
92
|
"eslint-config-airbnb-typescript": "18.0.0",
|
|
@@ -94,11 +94,11 @@
|
|
|
94
94
|
"husky": "9.1.7",
|
|
95
95
|
"jest": "29.7.0",
|
|
96
96
|
"knex": "3.1.0",
|
|
97
|
-
"nodemon": "3.1.
|
|
97
|
+
"nodemon": "3.1.11",
|
|
98
98
|
"npm-check-updates": "16.7.10",
|
|
99
99
|
"replace": "1.2.2",
|
|
100
100
|
"standard-version": "9.5.0",
|
|
101
|
-
"ts-jest": "29.4.
|
|
101
|
+
"ts-jest": "29.4.6",
|
|
102
102
|
"ts-node": "10.9.2",
|
|
103
103
|
"typescript": "5.9.3",
|
|
104
104
|
"yarn-audit-fix": "10.1.1"
|
|
@@ -125,6 +125,7 @@
|
|
|
125
125
|
"express": "4.21.2",
|
|
126
126
|
"form-data": "4.0.4",
|
|
127
127
|
"formidable": "3.5.4",
|
|
128
|
+
"koa": "3.0.3",
|
|
128
129
|
"on-headers": "1.1.0",
|
|
129
130
|
"path-to-regexp": "0.1.12",
|
|
130
131
|
"serve-static": "1.16.2",
|
|
@@ -138,6 +139,8 @@
|
|
|
138
139
|
"swagger-ui-express/express": "4.19.2",
|
|
139
140
|
"shins/express": "4.19.2",
|
|
140
141
|
"serve-static/send": "0.19.0",
|
|
142
|
+
"tar": "7.5.2",
|
|
143
|
+
"validator": "13.15.20",
|
|
141
144
|
"widdershins/yargs-parser": "13.1.2",
|
|
142
145
|
"widdershins/markdown-it": "12.3.2",
|
|
143
146
|
"widdershins/swagger2openapi": "7.0.8",
|