ml-testing-toolkit 18.19.2 → 18.20.0-infitx.1
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 +5 -12
- package/Dockerfile +3 -2
- package/audit-ci.jsonc +2 -3
- package/examples/collections/dfsp/p2p_fx_happy_path.json +6 -34
- package/examples/collections/dfsp/p2p_happy_path.json +4 -39
- package/examples/environments/dfsp_local_environment.json +6 -6
- package/package.json +6 -6
- package/{sbom-v18.19.0.csv → sbom-v18.19.2.csv} +274 -269
- package/spec_files/rules_callback/default.json +5 -5
- package/src/index.js +16 -0
- package/src/lib/api-management.js +7 -1
- package/src/lib/api-routes/config.js +22 -0
- package/src/lib/api-server.js +35 -0
- package/src/lib/arrayStore.js +14 -1
- package/src/lib/httpAgentStore.js +22 -2
- package/src/lib/mocking/middleware-functions/ilpModel.js +5 -5
- package/src/lib/mocking/openApiMockHandler.js +7 -1
- package/src/lib/notificationEmitter.js +7 -0
- package/src/lib/objectStore.js +14 -1
- package/src/lib/performanceOptimizer.js +102 -0
- package/src/lib/requestLogger.js +2 -1
- package/src/lib/test-outbound/outbound-initiator.js +1 -1
package/.grype.yaml
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
scan-type: source
|
|
2
2
|
|
|
3
3
|
ignore:
|
|
4
|
-
- vulnerability: GHSA-37qj-frw5-hhjh
|
|
5
|
-
- vulnerability: GHSA-xxjr-mmjv-4gpg
|
|
6
|
-
- vulnerability: GHSA-7h2j-956f-4vf2
|
|
7
4
|
- vulnerability: CVE-2025-60876
|
|
8
5
|
- vulnerability: GHSA-5j98-mcp5-4vw2
|
|
9
6
|
- vulnerability: GHSA-34x7-hfp2-rc4v
|
|
10
|
-
- vulnerability: GHSA-
|
|
7
|
+
- vulnerability: GHSA-83g3-92jg-28cx
|
|
11
8
|
- vulnerability: GHSA-8qq5-rm4j-mr97
|
|
12
|
-
- vulnerability: GHSA-29xp-372q-xqph
|
|
13
9
|
- vulnerability: GHSA-73rr-hh4g-fpgx
|
|
14
|
-
- vulnerability: GHSA-
|
|
10
|
+
- vulnerability: GHSA-7r86-cg39-jmmj
|
|
11
|
+
- vulnerability: GHSA-23c5-xmqv-rm74
|
|
12
|
+
- vulnerability: GHSA-fj3w-jwp8-x2g3
|
|
13
|
+
- vulnerability: GHSA-r6q2-hw4h-h46w
|
|
15
14
|
- vulnerability: GHSA-3ppc-4f35-3m26
|
|
16
15
|
include-aliases: true
|
|
17
16
|
reason: >-
|
|
@@ -25,15 +24,9 @@ ignore:
|
|
|
25
24
|
- vulnerability: CVE-2026-27171
|
|
26
25
|
include-aliases: true
|
|
27
26
|
reason: "Alpine base image package (apk): zlib - no npm fix available as of 2026-02-25 (moderate severity)"
|
|
28
|
-
- vulnerability: GHSA-m7jm-9gc2-mpf2
|
|
29
|
-
include-aliases: true
|
|
30
|
-
reason: "Unfixable npm transitive vulnerability: fast-xml-parser (critical severity) as of 2026-02-25"
|
|
31
27
|
- vulnerability: GHSA-2g4f-4pwh-qvx6
|
|
32
28
|
include-aliases: true
|
|
33
29
|
reason: "Unfixable npm transitive vulnerability: ajv (high severity) as of 2026-02-25"
|
|
34
|
-
- vulnerability: GHSA-jmr7-xgp7-cmfj
|
|
35
|
-
include-aliases: true
|
|
36
|
-
reason: "Unfixable npm transitive vulnerability: fast-xml-parser (high severity) as of 2026-02-25"
|
|
37
30
|
output:
|
|
38
31
|
- table
|
|
39
32
|
- json
|
package/Dockerfile
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Arguments
|
|
2
|
-
ARG NODE_VERSION=
|
|
2
|
+
ARG NODE_VERSION=lts-alpine
|
|
3
|
+
|
|
3
4
|
# NOTE: Ensure you set NODE_VERSION Build Argument as follows...
|
|
4
5
|
#
|
|
5
6
|
# export NODE_VERSION="$(cat .nvmrc)-alpine" \
|
|
6
7
|
# docker build \
|
|
7
8
|
# --build-arg NODE_VERSION=$NODE_VERSION \
|
|
8
|
-
# -t mojaloop/
|
|
9
|
+
# -t mojaloop/ml-testing-toolkit:local \
|
|
9
10
|
# . \
|
|
10
11
|
#
|
|
11
12
|
|
package/audit-ci.jsonc
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
// Only use one of ["low": true, "moderate": true, "high": true, "critical": true]
|
|
5
5
|
"moderate": true,
|
|
6
6
|
"allowlist": [ // NOTE: Please add as much information as possible to any items added to the allowList
|
|
7
|
-
"GHSA-
|
|
8
|
-
"GHSA-2g4f-4pwh-qvx6"
|
|
9
|
-
"GHSA-jmr7-xgp7-cmfj"
|
|
7
|
+
"GHSA-23c5-xmqv-rm74",
|
|
8
|
+
"GHSA-2g4f-4pwh-qvx6"
|
|
10
9
|
]
|
|
11
10
|
}
|
|
@@ -159,13 +159,6 @@
|
|
|
159
159
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
160
160
|
]
|
|
161
161
|
},
|
|
162
|
-
{
|
|
163
|
-
"id": 4,
|
|
164
|
-
"description": "Callback FSP Destination equal to request FSP Source",
|
|
165
|
-
"exec": [
|
|
166
|
-
"expect(callback.headers['fspiop-destination']).to.equal('{$request.headers['FSPIOP-Source']}')"
|
|
167
|
-
]
|
|
168
|
-
},
|
|
169
162
|
{
|
|
170
163
|
"id": 5,
|
|
171
164
|
"description": "Callback body should contain conversionTerms",
|
|
@@ -211,8 +204,8 @@
|
|
|
211
204
|
"operationPath": "/quotes",
|
|
212
205
|
"method": "post",
|
|
213
206
|
"headers": {
|
|
214
|
-
"Accept": "
|
|
215
|
-
"Content-Type": "
|
|
207
|
+
"Accept": "{$inputs.acceptQuotes}",
|
|
208
|
+
"Content-Type": "{$inputs.contentTypeQuotes}",
|
|
216
209
|
"Date": "{$function.generic.curDate}",
|
|
217
210
|
"FSPIOP-Source": "{$inputs.fromFspId}",
|
|
218
211
|
"FSPIOP-Destination": "{$prev.1.callback.body.party.partyIdInfo.fspId}"
|
|
@@ -276,13 +269,6 @@
|
|
|
276
269
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
277
270
|
]
|
|
278
271
|
},
|
|
279
|
-
{
|
|
280
|
-
"id": 4,
|
|
281
|
-
"description": "Callback FSP Destination equal to request FSP Source",
|
|
282
|
-
"exec": [
|
|
283
|
-
"expect(callback.headers['fspiop-destination']).to.equal('{$request.headers['FSPIOP-Source']}')"
|
|
284
|
-
]
|
|
285
|
-
},
|
|
286
272
|
{
|
|
287
273
|
"id": 5,
|
|
288
274
|
"description": "Callback body should contain transferAmount",
|
|
@@ -348,8 +334,8 @@
|
|
|
348
334
|
"path": "/fxTransfers",
|
|
349
335
|
"method": "post",
|
|
350
336
|
"headers": {
|
|
351
|
-
"Accept": "application/vnd.interoperability.fxTransfers+json;version=
|
|
352
|
-
"Content-Type": "application/vnd.interoperability.fxTransfers+json;version=
|
|
337
|
+
"Accept": "application/vnd.interoperability.fxTransfers+json;version=2.0",
|
|
338
|
+
"Content-Type": "application/vnd.interoperability.fxTransfers+json;version=2.0",
|
|
353
339
|
"Date": "{$function.generic.curDate}",
|
|
354
340
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
355
341
|
},
|
|
@@ -392,13 +378,6 @@
|
|
|
392
378
|
"exec": [
|
|
393
379
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
394
380
|
]
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
"id": 4,
|
|
398
|
-
"description": "Callback FSP Destination equal to request FSP Source",
|
|
399
|
-
"exec": [
|
|
400
|
-
"expect(callback.headers['fspiop-destination']).to.equal('{$request.headers['FSPIOP-Source']}')"
|
|
401
|
-
]
|
|
402
381
|
}
|
|
403
382
|
]
|
|
404
383
|
},
|
|
@@ -416,8 +395,8 @@
|
|
|
416
395
|
"operationPath": "/transfers",
|
|
417
396
|
"method": "post",
|
|
418
397
|
"headers": {
|
|
419
|
-
"Accept": "
|
|
420
|
-
"Content-Type": "
|
|
398
|
+
"Accept": "{$inputs.acceptTransfers}",
|
|
399
|
+
"Content-Type": "{$inputs.contentTransfers}",
|
|
421
400
|
"Date": "{$function.generic.curDate}",
|
|
422
401
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
423
402
|
},
|
|
@@ -456,13 +435,6 @@
|
|
|
456
435
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
457
436
|
]
|
|
458
437
|
},
|
|
459
|
-
{
|
|
460
|
-
"id": 4,
|
|
461
|
-
"description": "Callback FSP Destination equal to request FSP Source",
|
|
462
|
-
"exec": [
|
|
463
|
-
"expect(callback.headers['fspiop-destination']).to.equal('{$request.headers['FSPIOP-Source']}')"
|
|
464
|
-
]
|
|
465
|
-
},
|
|
466
438
|
{
|
|
467
439
|
"id": 5,
|
|
468
440
|
"description": "Callback transferState to be COMMITTED",
|
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfsp-p2p-tests",
|
|
3
|
-
"inputValues": {
|
|
4
|
-
"fromIdType": "MSISDN",
|
|
5
|
-
"fromIdValue": "44123456789",
|
|
6
|
-
"fromFirstName": "Firstname-Test",
|
|
7
|
-
"fromLastName": "Lastname-Test",
|
|
8
|
-
"fromDOB": "1984-01-01",
|
|
9
|
-
"note": "Test Payment",
|
|
10
|
-
"currency": "USD",
|
|
11
|
-
"amount": "100",
|
|
12
|
-
"homeTransactionId": "123ABC",
|
|
13
|
-
"fromFspId": "testingtoolkitdfsp",
|
|
14
|
-
"accept": "application/vnd.interoperability.parties+json;version=1.0",
|
|
15
|
-
"contentType": "application/vnd.interoperability.parties+json;version=1.0",
|
|
16
|
-
"toIdValue": "9876543210",
|
|
17
|
-
"toIdType": "MSISDN",
|
|
18
|
-
"toFspId": "userdfsp",
|
|
19
|
-
"acceptQuotes": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
20
|
-
"contentTypeQuotes": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
21
|
-
"acceptTransfers": "application/vnd.interoperability.transfers+json;version=1.0",
|
|
22
|
-
"contentTransfers": "application/vnd.interoperability.transfers+json;version=1.0"
|
|
23
|
-
},
|
|
24
3
|
"test_cases": [
|
|
25
4
|
{
|
|
26
5
|
"id": 1,
|
|
@@ -121,8 +100,8 @@
|
|
|
121
100
|
"operationPath": "/quotes",
|
|
122
101
|
"method": "post",
|
|
123
102
|
"headers": {
|
|
124
|
-
"Accept": "
|
|
125
|
-
"Content-Type": "
|
|
103
|
+
"Accept": "{$inputs.acceptQuotes}",
|
|
104
|
+
"Content-Type": "{$inputs.contentTypeQuotes}",
|
|
126
105
|
"Date": "{$function.generic.curDate}",
|
|
127
106
|
"FSPIOP-Source": "{$inputs.fromFspId}",
|
|
128
107
|
"FSPIOP-Destination": "{$prev.1.callback.body.party.partyIdInfo.fspId}"
|
|
@@ -208,13 +187,6 @@
|
|
|
208
187
|
"expect(callback.body.transferAmount.currency).to.equal('{$request.body.amount.currency}')"
|
|
209
188
|
]
|
|
210
189
|
},
|
|
211
|
-
{
|
|
212
|
-
"id": 7,
|
|
213
|
-
"description": "Callback content-type to be quotes",
|
|
214
|
-
"exec": [
|
|
215
|
-
"expect(callback.headers['content-type']).to.equal('application/vnd.interoperability.quotes+json;version=1.0')"
|
|
216
|
-
]
|
|
217
|
-
},
|
|
218
190
|
{
|
|
219
191
|
"id": 8,
|
|
220
192
|
"description": "Request amountType to be SEND",
|
|
@@ -258,8 +230,8 @@
|
|
|
258
230
|
"operationPath": "/transfers",
|
|
259
231
|
"method": "post",
|
|
260
232
|
"headers": {
|
|
261
|
-
"Accept": "
|
|
262
|
-
"Content-Type": "
|
|
233
|
+
"Accept": "{$inputs.acceptTransfers}",
|
|
234
|
+
"Content-Type": "{$inputs.contentTransfers}",
|
|
263
235
|
"Date": "{$function.generic.curDate}",
|
|
264
236
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
265
237
|
},
|
|
@@ -312,13 +284,6 @@
|
|
|
312
284
|
"expect(callback.body.transferState).to.equal('COMMITTED')"
|
|
313
285
|
]
|
|
314
286
|
},
|
|
315
|
-
{
|
|
316
|
-
"id": 6,
|
|
317
|
-
"description": "Callback content-type to be transfers",
|
|
318
|
-
"exec": [
|
|
319
|
-
"expect(callback.headers['content-type']).to.equal('application/vnd.interoperability.transfers+json;version=1.0')"
|
|
320
|
-
]
|
|
321
|
-
},
|
|
322
287
|
{
|
|
323
288
|
"id": 7,
|
|
324
289
|
"description": "Request transferId same as quote request transferId",
|
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
"HOST_SIMULATOR": "http://moja-simulator.local",
|
|
10
10
|
"HOST_TRANSACTION_REQUESTS_SERVICE": "http://transaction-request-service.local",
|
|
11
11
|
"HUB_OPERATOR_BEARER_TOKEN": "NOT_APPLICABLE",
|
|
12
|
-
"accept": "application/vnd.interoperability.parties+json;version=
|
|
13
|
-
"acceptQuotes": "application/vnd.interoperability.quotes+json;version=
|
|
14
|
-
"acceptTransfers": "application/vnd.interoperability.transfers+json;version=
|
|
12
|
+
"accept": "application/vnd.interoperability.parties+json;version=2.0",
|
|
13
|
+
"acceptQuotes": "application/vnd.interoperability.quotes+json;version=2.0",
|
|
14
|
+
"acceptTransfers": "application/vnd.interoperability.transfers+json;version=2.0",
|
|
15
15
|
"accountId": "6",
|
|
16
16
|
"amount": "100",
|
|
17
17
|
"condition": "HOr22-H3AfTDHrSkPjJtVPRdKouuMkDXTR4ejlQa8Ks",
|
|
18
|
-
"contentTransfers": "application/vnd.interoperability.transfers+json;version=
|
|
19
|
-
"contentType": "application/vnd.interoperability.parties+json;version=
|
|
20
|
-
"contentTypeQuotes": "application/vnd.interoperability.quotes+json;version=
|
|
18
|
+
"contentTransfers": "application/vnd.interoperability.transfers+json;version=2.0",
|
|
19
|
+
"contentType": "application/vnd.interoperability.parties+json;version=2.0",
|
|
20
|
+
"contentTypeQuotes": "application/vnd.interoperability.quotes+json;version=2.0",
|
|
21
21
|
"currency": "USD",
|
|
22
22
|
"fromDOB": "1984-01-01",
|
|
23
23
|
"fromFirstName": "Firstname-Test",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ml-testing-toolkit",
|
|
3
3
|
"description": "Testing Toolkit for Mojaloop implementations",
|
|
4
|
-
"version": "18.
|
|
4
|
+
"version": "18.20.0-infitx.1",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Vijaya Kumar Guthi, ModusBox Inc. ",
|
|
7
7
|
"contributors": [
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"adm-zip": "0.5.16",
|
|
90
90
|
"ajv-formats": "3.0.1",
|
|
91
91
|
"atob": "2.1.2",
|
|
92
|
-
"axios": "1.13.
|
|
92
|
+
"axios": "1.13.6",
|
|
93
93
|
"chai": "4.4.1",
|
|
94
94
|
"connection-string": "^5.0.0",
|
|
95
95
|
"cookie-parser": "1.4.7",
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"json-rules-engine": "7.3.1",
|
|
109
109
|
"jsonwebtoken": "9.0.3",
|
|
110
110
|
"lodash": "4.17.23",
|
|
111
|
-
"mongoose": "9.2.
|
|
112
|
-
"multer": "2.0
|
|
111
|
+
"mongoose": "9.2.3",
|
|
112
|
+
"multer": "2.1.0",
|
|
113
113
|
"mustache": "4.2.0",
|
|
114
114
|
"mv": "2.1.1",
|
|
115
115
|
"node-dir": "0.1.17",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"jest": "29.7.0",
|
|
139
139
|
"jest-junit": "16.0.0",
|
|
140
140
|
"nodemon": "3.1.14",
|
|
141
|
-
"npm-check-updates": "19.
|
|
141
|
+
"npm-check-updates": "19.6.3",
|
|
142
142
|
"nyc": "18.0.0",
|
|
143
143
|
"parse-strings-in-object": "1.6.0",
|
|
144
144
|
"pre-commit": "1.2.2",
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
}
|
|
170
170
|
},
|
|
171
171
|
"overrides": {
|
|
172
|
-
"axios": "1.13.
|
|
172
|
+
"axios": "1.13.6",
|
|
173
173
|
"form-data": "4.0.5",
|
|
174
174
|
"brace-expansion": "1.1.12",
|
|
175
175
|
"npm-check-updates": {
|