ml-testing-toolkit 18.18.0 → 18.19.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 +11 -15
- package/CHANGELOG.md +19 -0
- package/audit-ci.jsonc +0 -2
- package/examples/collections/dfsp/p2p_fx_happy_path.json +34 -6
- package/examples/collections/dfsp/p2p_happy_path.json +39 -4
- package/examples/environments/dfsp_local_environment.json +6 -6
- package/package.json +9 -6
- package/{sbom-v18.17.3.csv → sbom-v18.19.0.csv} +48 -47
- package/spec_files/rules_callback/default.json +5 -5
- package/src/index.js +0 -16
- package/src/lib/api-management.js +1 -7
- package/src/lib/api-routes/config.js +0 -22
- package/src/lib/api-server.js +0 -35
- package/src/lib/arrayStore.js +1 -14
- package/src/lib/httpAgentStore.js +2 -22
- package/src/lib/mocking/middleware-functions/ilpModel.js +5 -5
- package/src/lib/mocking/openApiMockHandler.js +12 -11
- package/src/lib/mocking/openApiRulesEngine.js +3 -1
- package/src/lib/notificationEmitter.js +0 -7
- package/src/lib/objectStore.js +1 -14
- package/src/lib/requestLogger.js +1 -2
- package/src/lib/scripting-engines/postman-sandbox.js +9 -114
- package/src/lib/scripting-engines/vm-javascript-sandbox.js +1 -115
- package/src/lib/test-outbound/outbound-initiator.js +11 -15
- package/src/lib/utils.js +82 -0
- package/src/lib/performanceOptimizer.js +0 -102
package/.grype.yaml
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
ignore:
|
|
2
|
+
# fast-xml-parser vulnerability
|
|
2
3
|
- vulnerability: GHSA-37qj-frw5-hhjh
|
|
3
|
-
|
|
4
|
+
# lodash vulnerabilities
|
|
4
5
|
- vulnerability: GHSA-xxjr-mmjv-4gpg
|
|
5
|
-
|
|
6
|
+
# @isaacs/brace-expansion vulnerability
|
|
6
7
|
- vulnerability: GHSA-7h2j-956f-4vf2
|
|
7
|
-
|
|
8
|
+
# busybox vulnerabilities
|
|
8
9
|
- vulnerability: CVE-2025-60876
|
|
9
|
-
|
|
10
|
+
# glob vulnerabilities
|
|
10
11
|
- vulnerability: GHSA-5j98-mcp5-4vw2
|
|
11
|
-
|
|
12
|
-
reason: "glob 10.4.5→10.5.0 and 11.0.3→11.1.0"
|
|
12
|
+
# tar vulnerabilities
|
|
13
13
|
- vulnerability: GHSA-34x7-hfp2-rc4v
|
|
14
|
-
reason: "tar 7.5.1→7.5.7"
|
|
15
|
-
- vulnerability: GHSA-73rr-hh4g-fpgx
|
|
16
|
-
reason: "diff 8.0.2→8.0.3"
|
|
17
14
|
- vulnerability: GHSA-r6q2-hw4h-h46w
|
|
18
|
-
reason: "tar 7.5.1→7.5.4"
|
|
19
|
-
- vulnerability: GHSA-3966-f6p6-2qr9
|
|
20
|
-
reason: "npm 11.6.2"
|
|
21
15
|
- vulnerability: GHSA-8qq5-rm4j-mr97
|
|
22
|
-
reason: "tar 7.5.1→7.5.3"
|
|
23
16
|
- vulnerability: GHSA-29xp-372q-xqph
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
# diff vulnerability
|
|
18
|
+
- vulnerability: GHSA-73rr-hh4g-fpgx
|
|
19
|
+
# npm vulnerability
|
|
20
|
+
- vulnerability: GHSA-3966-f6p6-2qr9
|
|
21
|
+
# Set output format defaults
|
|
26
22
|
output:
|
|
27
23
|
- "table"
|
|
28
24
|
- "json"
|
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
# Changelog: [mojaloop/thirdparty-api-svc](https://github.com/mojaloop/thirdparty-api-svc)
|
|
2
|
+
### [18.19.1](https://github.com/mojaloop/ml-testing-toolkit/compare/v18.19.0...v18.19.1) (2026-02-12)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* download spec files issue [#4197](https://github.com/mojaloop/ml-testing-toolkit/issues/4197) ([#371](https://github.com/mojaloop/ml-testing-toolkit/issues/371)) ([cefcbdd](https://github.com/mojaloop/ml-testing-toolkit/commit/cefcbdd9dba28eedad9b93d40415b67ab140c35b))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Chore
|
|
11
|
+
|
|
12
|
+
* **sbom:** update sbom [skip ci] ([2078f44](https://github.com/mojaloop/ml-testing-toolkit/commit/2078f44a133fb1a82f890d4e1fb61b4b8371d8cf))
|
|
13
|
+
|
|
14
|
+
## [18.19.0](https://github.com/mojaloop/ml-testing-toolkit/compare/v18.18.0...v18.19.0) (2026-02-06)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* revert performance-optimization ([#367](https://github.com/mojaloop/ml-testing-toolkit/issues/367)) ([5b7c6c5](https://github.com/mojaloop/ml-testing-toolkit/commit/5b7c6c52d8ffe949ca16fa8374bea3fbc08c1a0c)), closes [#366](https://github.com/mojaloop/ml-testing-toolkit/issues/366)
|
|
20
|
+
|
|
2
21
|
## [18.18.0](https://github.com/mojaloop/ml-testing-toolkit/compare/v18.17.3...v18.18.0) (2026-02-06)
|
|
3
22
|
|
|
4
23
|
|
package/audit-ci.jsonc
CHANGED
|
@@ -159,6 +159,13 @@
|
|
|
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
|
+
},
|
|
162
169
|
{
|
|
163
170
|
"id": 5,
|
|
164
171
|
"description": "Callback body should contain conversionTerms",
|
|
@@ -204,8 +211,8 @@
|
|
|
204
211
|
"operationPath": "/quotes",
|
|
205
212
|
"method": "post",
|
|
206
213
|
"headers": {
|
|
207
|
-
"Accept": "
|
|
208
|
-
"Content-Type": "
|
|
214
|
+
"Accept": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
215
|
+
"Content-Type": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
209
216
|
"Date": "{$function.generic.curDate}",
|
|
210
217
|
"FSPIOP-Source": "{$inputs.fromFspId}",
|
|
211
218
|
"FSPIOP-Destination": "{$prev.1.callback.body.party.partyIdInfo.fspId}"
|
|
@@ -269,6 +276,13 @@
|
|
|
269
276
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
270
277
|
]
|
|
271
278
|
},
|
|
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
|
+
},
|
|
272
286
|
{
|
|
273
287
|
"id": 5,
|
|
274
288
|
"description": "Callback body should contain transferAmount",
|
|
@@ -334,8 +348,8 @@
|
|
|
334
348
|
"path": "/fxTransfers",
|
|
335
349
|
"method": "post",
|
|
336
350
|
"headers": {
|
|
337
|
-
"Accept": "application/vnd.interoperability.fxTransfers+json;version=
|
|
338
|
-
"Content-Type": "application/vnd.interoperability.fxTransfers+json;version=
|
|
351
|
+
"Accept": "application/vnd.interoperability.fxTransfers+json;version=1.0",
|
|
352
|
+
"Content-Type": "application/vnd.interoperability.fxTransfers+json;version=1.0",
|
|
339
353
|
"Date": "{$function.generic.curDate}",
|
|
340
354
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
341
355
|
},
|
|
@@ -378,6 +392,13 @@
|
|
|
378
392
|
"exec": [
|
|
379
393
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
380
394
|
]
|
|
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
|
+
]
|
|
381
402
|
}
|
|
382
403
|
]
|
|
383
404
|
},
|
|
@@ -395,8 +416,8 @@
|
|
|
395
416
|
"operationPath": "/transfers",
|
|
396
417
|
"method": "post",
|
|
397
418
|
"headers": {
|
|
398
|
-
"Accept": "
|
|
399
|
-
"Content-Type": "
|
|
419
|
+
"Accept": "application/vnd.interoperability.transfers+json;version=1.0",
|
|
420
|
+
"Content-Type": "application/vnd.interoperability.transfers+json;version=1.0",
|
|
400
421
|
"Date": "{$function.generic.curDate}",
|
|
401
422
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
402
423
|
},
|
|
@@ -435,6 +456,13 @@
|
|
|
435
456
|
"expect(callback.headers['Content-Length']).to.not.equal('0')"
|
|
436
457
|
]
|
|
437
458
|
},
|
|
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
|
+
},
|
|
438
466
|
{
|
|
439
467
|
"id": 5,
|
|
440
468
|
"description": "Callback transferState to be COMMITTED",
|
|
@@ -1,5 +1,26 @@
|
|
|
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
|
+
},
|
|
3
24
|
"test_cases": [
|
|
4
25
|
{
|
|
5
26
|
"id": 1,
|
|
@@ -100,8 +121,8 @@
|
|
|
100
121
|
"operationPath": "/quotes",
|
|
101
122
|
"method": "post",
|
|
102
123
|
"headers": {
|
|
103
|
-
"Accept": "
|
|
104
|
-
"Content-Type": "
|
|
124
|
+
"Accept": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
125
|
+
"Content-Type": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
105
126
|
"Date": "{$function.generic.curDate}",
|
|
106
127
|
"FSPIOP-Source": "{$inputs.fromFspId}",
|
|
107
128
|
"FSPIOP-Destination": "{$prev.1.callback.body.party.partyIdInfo.fspId}"
|
|
@@ -187,6 +208,13 @@
|
|
|
187
208
|
"expect(callback.body.transferAmount.currency).to.equal('{$request.body.amount.currency}')"
|
|
188
209
|
]
|
|
189
210
|
},
|
|
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
|
+
},
|
|
190
218
|
{
|
|
191
219
|
"id": 8,
|
|
192
220
|
"description": "Request amountType to be SEND",
|
|
@@ -230,8 +258,8 @@
|
|
|
230
258
|
"operationPath": "/transfers",
|
|
231
259
|
"method": "post",
|
|
232
260
|
"headers": {
|
|
233
|
-
"Accept": "
|
|
234
|
-
"Content-Type": "
|
|
261
|
+
"Accept": "application/vnd.interoperability.transfers+json;version=1.0",
|
|
262
|
+
"Content-Type": "application/vnd.interoperability.transfers+json;version=1.0",
|
|
235
263
|
"Date": "{$function.generic.curDate}",
|
|
236
264
|
"FSPIOP-Source": "{$inputs.fromFspId}"
|
|
237
265
|
},
|
|
@@ -284,6 +312,13 @@
|
|
|
284
312
|
"expect(callback.body.transferState).to.equal('COMMITTED')"
|
|
285
313
|
]
|
|
286
314
|
},
|
|
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
|
+
},
|
|
287
322
|
{
|
|
288
323
|
"id": 7,
|
|
289
324
|
"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=1.0",
|
|
13
|
+
"acceptQuotes": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
14
|
+
"acceptTransfers": "application/vnd.interoperability.transfers+json;version=1.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=1.0",
|
|
19
|
+
"contentType": "application/vnd.interoperability.parties+json;version=1.0",
|
|
20
|
+
"contentTypeQuotes": "application/vnd.interoperability.quotes+json;version=1.0",
|
|
21
21
|
"currency": "USD",
|
|
22
22
|
"fromDOB": "1984-01-01",
|
|
23
23
|
"fromFirstName": "Firstname-Test",
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ml-testing-toolkit",
|
|
3
3
|
"description": "Testing Toolkit for Mojaloop implementations",
|
|
4
|
-
"version": "18.
|
|
4
|
+
"version": "18.19.1",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Vijaya Kumar Guthi, ModusBox Inc. ",
|
|
7
7
|
"contributors": [
|
|
8
8
|
"Georgi Logodazhki <georgi.logodazhki@modusbox.com>",
|
|
9
9
|
"Sam Kummary <sam@modusbox.com>",
|
|
10
10
|
"Steven Oderayi <steven.oderayi@modusbox.com>",
|
|
11
|
-
"Vijay Kumar <vijaya.guthi@modusbox.com>"
|
|
11
|
+
"Vijay Kumar <vijaya.guthi@modusbox.com>",
|
|
12
|
+
"Shashikant Hirugade <shashi.mojaloop@gmail.com>"
|
|
12
13
|
],
|
|
13
14
|
"engines": {
|
|
14
15
|
"node": ">=22.x"
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
"genexec": "pkg -t node8-win ."
|
|
72
73
|
},
|
|
73
74
|
"dependencies": {
|
|
74
|
-
"@elastic/elasticsearch": "9.3.
|
|
75
|
+
"@elastic/elasticsearch": "9.3.1",
|
|
75
76
|
"@hapi/basic": "7.0.2",
|
|
76
77
|
"@hapi/boom": "10.0.1",
|
|
77
78
|
"@hapi/good": "9.0.1",
|
|
@@ -88,7 +89,7 @@
|
|
|
88
89
|
"adm-zip": "0.5.16",
|
|
89
90
|
"ajv-formats": "3.0.1",
|
|
90
91
|
"atob": "2.1.2",
|
|
91
|
-
"axios": "1.13.
|
|
92
|
+
"axios": "1.13.5",
|
|
92
93
|
"chai": "4.4.1",
|
|
93
94
|
"connection-string": "^5.0.0",
|
|
94
95
|
"cookie-parser": "1.4.7",
|
|
@@ -97,7 +98,6 @@
|
|
|
97
98
|
"dotenv": "17.2.4",
|
|
98
99
|
"express": "5.2.1",
|
|
99
100
|
"express-validator": "7.3.1",
|
|
100
|
-
"fs": "0.0.1-security",
|
|
101
101
|
"handlebars": "4.7.8",
|
|
102
102
|
"hapi-auth-bearer-token": "8.0.0",
|
|
103
103
|
"hapi-openapi": "3.0.0",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"json-rules-engine": "7.3.1",
|
|
109
109
|
"jsonwebtoken": "9.0.3",
|
|
110
110
|
"lodash": "4.17.23",
|
|
111
|
-
"mongoose": "9.1
|
|
111
|
+
"mongoose": "9.2.1",
|
|
112
112
|
"multer": "2.0.2",
|
|
113
113
|
"mustache": "4.2.0",
|
|
114
114
|
"mv": "2.1.1",
|
|
@@ -169,6 +169,7 @@
|
|
|
169
169
|
}
|
|
170
170
|
},
|
|
171
171
|
"overrides": {
|
|
172
|
+
"axios": "1.13.5",
|
|
172
173
|
"form-data": "4.0.4",
|
|
173
174
|
"brace-expansion": "2.0.2",
|
|
174
175
|
"npm-check-updates": {
|
|
@@ -178,6 +179,8 @@
|
|
|
178
179
|
"read-package-json": "6.0.0",
|
|
179
180
|
"cacache": "17.0.4"
|
|
180
181
|
},
|
|
182
|
+
"lodash": "4.17.23",
|
|
183
|
+
"lodash-es": "4.17.23",
|
|
181
184
|
"make-fetch-happen": {
|
|
182
185
|
"cacache": "17.0.4"
|
|
183
186
|
},
|