@mojaloop/central-ledger 19.13.1 → 19.14.0-snapshot.2

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.
Files changed (65) hide show
  1. package/.grype.yaml +74 -12
  2. package/CHANGELOG.md +25 -0
  3. package/Dockerfile +1 -1
  4. package/audit-ci.jsonc +1 -4
  5. package/config/default-settlement.json +160 -0
  6. package/docker/ml-api-adapter/default.json +28 -0
  7. package/docker-compose.yml +6 -0
  8. package/package.json +41 -23
  9. package/{sbom-v19.13.0.csv → sbom-v19.14.0.csv} +260 -301
  10. package/scripts/_wait4_all.js +5 -5
  11. package/src/api/index.js +7 -2
  12. package/src/api/routes.js +7 -6
  13. package/src/cryptoConditions/index.js +24 -3
  14. package/src/handlers/transfers/handler.js +17 -1
  15. package/src/handlers/transfers/validator.js +1 -2
  16. package/src/settlement/api/handlerRoutes.js +40 -0
  17. package/src/settlement/api/handlers/settlementWindows/{id}.js +103 -0
  18. package/src/settlement/api/handlers/settlementWindows.js +77 -0
  19. package/src/settlement/api/handlers/settlements/{id}.js +133 -0
  20. package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}/accounts/{aid}.js +127 -0
  21. package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}.js +127 -0
  22. package/src/settlement/api/handlers/settlements.js +114 -0
  23. package/src/settlement/api/routes.js +40 -0
  24. package/src/settlement/domain/rules/index.js +46 -0
  25. package/src/settlement/domain/settlement/index.js +405 -0
  26. package/src/settlement/domain/settlementWindow/index.js +117 -0
  27. package/src/settlement/domain/transactions/index.js +83 -0
  28. package/src/settlement/domain/transferSettlement/index.js +57 -0
  29. package/src/settlement/handlers/deferredSettlement/handler.js +180 -0
  30. package/src/settlement/handlers/grossSettlement/handler.js +180 -0
  31. package/src/settlement/handlers/index.js +101 -0
  32. package/src/settlement/handlers/register.js +92 -0
  33. package/src/settlement/handlers/rules/handler.js +164 -0
  34. package/src/settlement/interface/swagger-handler.json +37 -0
  35. package/src/settlement/interface/swagger.json +1280 -0
  36. package/src/settlement/lib/config.js +51 -0
  37. package/src/settlement/lib/db.js +32 -0
  38. package/src/settlement/lib/kafka/index.js +41 -0
  39. package/src/settlement/lib/kafka/producer.js +142 -0
  40. package/src/settlement/lib/scriptEngine.js +99 -0
  41. package/src/settlement/lib/scriptsLoader.js +175 -0
  42. package/src/settlement/lib/utility.js +243 -0
  43. package/src/settlement/models/ilpPackets/ilpPacket.js +42 -0
  44. package/src/settlement/models/lib/enums.js +192 -0
  45. package/src/settlement/models/misc/migrationLock.js +53 -0
  46. package/src/settlement/models/settlement/facade.js +1652 -0
  47. package/src/settlement/models/settlement/index.js +55 -0
  48. package/src/settlement/models/settlement/participantCurrency.js +48 -0
  49. package/src/settlement/models/settlement/settlement.js +49 -0
  50. package/src/settlement/models/settlement/settlementModel.js +44 -0
  51. package/src/settlement/models/settlement/settlementParticipantCurrency.js +61 -0
  52. package/src/settlement/models/settlement/settlementStateChange.js +44 -0
  53. package/src/settlement/models/settlement/settlementTransferParticipant.js +46 -0
  54. package/src/settlement/models/settlementWindow/facade.js +345 -0
  55. package/src/settlement/models/settlementWindow/index.js +47 -0
  56. package/src/settlement/models/settlementWindow/settlementWindowStateChange.js +55 -0
  57. package/src/settlement/models/settlementWindowContent/facade.js +79 -0
  58. package/src/settlement/models/settlementWindowContent/index.js +40 -0
  59. package/src/settlement/models/settlementWindowContent/settlementWindowContentStateChange.js +53 -0
  60. package/src/settlement/models/transferSettlement/facade.js +363 -0
  61. package/src/settlement/models/transferSettlement/index.js +42 -0
  62. package/src/settlement/shared/logger/index.js +7 -0
  63. package/src/settlement/shared/plugins.js +88 -0
  64. package/src/settlement/shared/setup.js +229 -0
  65. package/src/settlement/utils/truthyProperty.js +37 -0
package/.grype.yaml CHANGED
@@ -1,10 +1,5 @@
1
1
  scan-type: source
2
2
  ignore:
3
- # Ignore cross-spawn vulnerabilities by CVE ID due to false positive
4
- # as grype looks at package-lock.json where it shows versions with
5
- # vulnerabilities, npm ls shows only 7.0.6 verion is used
6
-
7
- # Ignore OpenSSL vulnerabilities in Alpine libcrypto3 and libssl3
8
3
  - vulnerability: GHSA-3ppc-4f35-3m26
9
4
  reason: minimatch upgrade breaks some dev tools so adding this to ignore list
10
5
  - vulnerability: CVE-2025-60876
@@ -19,14 +14,81 @@ ignore:
19
14
  include-aliases: true
20
15
  - vulnerability: GHSA-r6q2-hw4h-h46w
21
16
  include-aliases: true
22
-
23
- # Set output format defaults
17
+ - vulnerability: CVE-2025-15467
18
+ include-aliases: true
19
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (critical severity)"
20
+ - vulnerability: CVE-2025-69420
21
+ include-aliases: true
22
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
23
+ - vulnerability: CVE-2025-59465
24
+ include-aliases: true
25
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
26
+ - vulnerability: CVE-2025-69421
27
+ include-aliases: true
28
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
29
+ - vulnerability: CVE-2025-69419
30
+ include-aliases: true
31
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
32
+ - vulnerability: CVE-2026-22796
33
+ include-aliases: true
34
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
35
+ - vulnerability: CVE-2025-66199
36
+ include-aliases: true
37
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
38
+ - vulnerability: CVE-2025-15468
39
+ include-aliases: true
40
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
41
+ - vulnerability: CVE-2026-21637
42
+ include-aliases: true
43
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
44
+ - vulnerability: CVE-2025-55131
45
+ include-aliases: true
46
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
47
+ - vulnerability: CVE-2025-59466
48
+ include-aliases: true
49
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
50
+ - vulnerability: CVE-2025-55130
51
+ include-aliases: true
52
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (critical severity)"
53
+ - vulnerability: CVE-2026-22795
54
+ include-aliases: true
55
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
56
+ - vulnerability: CVE-2025-68160
57
+ include-aliases: true
58
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
59
+ - vulnerability: CVE-2025-11187
60
+ include-aliases: true
61
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
62
+ - vulnerability: GHSA-73rr-hh4g-fpgx
63
+ include-aliases: true
64
+ reason: >-
65
+ Base image npm package: diff - bundled in Node.js base image, not fixable via application dependencies as of
66
+ 2026-02-23 (low severity)
67
+ - vulnerability: CVE-2025-55132
68
+ include-aliases: true
69
+ reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (moderate severity)"
70
+ - vulnerability: CVE-2026-27171
71
+ include-aliases: true
72
+ reason: "Alpine base image package (apk): zlib - no npm fix available as of 2026-02-23 (moderate severity)"
73
+ - vulnerability: CVE-2025-15469
74
+ include-aliases: true
75
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
76
+ - vulnerability: CVE-2025-69418
77
+ include-aliases: true
78
+ reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
79
+ - vulnerability: GHSA-87r5-mp6g-5w5j
80
+ include-aliases: true
81
+ reason: "Unfixable npm transitive vulnerability: jsonpath (high severity) as of 2026-02-23"
82
+ - vulnerability: GHSA-378v-28hj-76wf
83
+ include-aliases: true
84
+ reason: "Unfixable npm transitive vulnerability: bn.js (moderate severity) as of 2026-02-23"
85
+ - vulnerability: GHSA-2g4f-4pwh-qvx6
86
+ include-aliases: true
87
+ reason: "Unfixable npm transitive vulnerability: ajv (moderate severity) as of 2026-02-23"
24
88
  output:
25
- - "table"
26
- - "json"
27
-
28
- # Modify your CircleCI job to check critical count
89
+ - table
90
+ - json
29
91
  search:
30
- scope: "squashed"
92
+ scope: squashed
31
93
  quiet: false
32
94
  check-for-app-update: false
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [19.14.0](https://github.com/mojaloop/central-ledger/compare/v19.13.2...v19.14.0) (2026-03-19)
6
+
7
+
8
+ ### Features
9
+
10
+ * vendor the condition check from five-bells-condition into cryptoConditions ([#1264](https://github.com/mojaloop/central-ledger/issues/1264)) ([4d7c4d2](https://github.com/mojaloop/central-ledger/commit/4d7c4d27f5d24fc818c7663a966ca8bf8f855b65))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * undefined fulfilment error not thrown ([#1281](https://github.com/mojaloop/central-ledger/issues/1281)) ([a9361d4](https://github.com/mojaloop/central-ledger/commit/a9361d4ee5d3fb44ca0cc0ceca893c0d2ff35b84))
16
+
17
+
18
+ ### Chore
19
+
20
+ * **sbom:** update sbom [skip ci] ([21ce9d4](https://github.com/mojaloop/central-ledger/commit/21ce9d455e89568af3e6618b1528425afbbb7b2c))
21
+
22
+ ### [19.13.2](https://github.com/mojaloop/central-ledger/compare/v19.13.1...v19.13.2) (2026-02-27)
23
+
24
+
25
+ ### Chore
26
+
27
+ * maintenance updates ([#1260](https://github.com/mojaloop/central-ledger/issues/1260)) ([464c50c](https://github.com/mojaloop/central-ledger/commit/464c50cda674ee63b23e94e2b9ff19ce4cd807f0))
28
+ * **sbom:** update sbom [skip ci] ([2df7c77](https://github.com/mojaloop/central-ledger/commit/2df7c7731a9722d1ace56919ebbdef076ef1295c))
29
+
5
30
  ### [19.13.1](https://github.com/mojaloop/central-ledger/compare/v19.13.0...v19.13.1) (2026-02-26)
6
31
 
7
32
 
package/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
1
  # Arguments
2
- ARG NODE_VERSION=22.21.1-alpine3.23
2
+ ARG NODE_VERSION=22.22.0-alpine3.23
3
3
 
4
4
  # NOTE: Ensure you set NODE_VERSION Build Argument as follows...
5
5
  #
package/audit-ci.jsonc CHANGED
@@ -1,11 +1,8 @@
1
1
  {
2
2
  "$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json",
3
3
  // audit-ci supports reading JSON, JSONC, and JSON5 config files.
4
- // Only check production dependencies (devDependencies ignored)
5
- "skip-dev": true,
6
4
  // Only use one of ["low": true, "moderate": true, "high": true, "critical": true]
7
5
  "moderate": true,
8
- "allowlist": [
9
- "GHSA-3ppc-4f35-3m26"
6
+ "allowlist": [ // NOTE: Please add as much information as possible to any items added to the allowList
10
7
  ]
11
8
  }
@@ -0,0 +1,160 @@
1
+ {
2
+ "PORT": 3007,
3
+ "HOSTNAME": "http://central-settlement",
4
+ "DATABASE": {
5
+ "DIALECT": "mysql",
6
+ "HOST": "localhost",
7
+ "PORT": 3306,
8
+ "USER": "central_ledger",
9
+ "PASSWORD": "password",
10
+ "SCHEMA": "central_ledger",
11
+ "POOL_MIN_SIZE": 10,
12
+ "POOL_MAX_SIZE": 10,
13
+ "ACQUIRE_TIMEOUT_MILLIS": 30000,
14
+ "CREATE_TIMEOUT_MILLIS": 30000,
15
+ "DESTROY_TIMEOUT_MILLIS": 5000,
16
+ "IDLE_TIMEOUT_MILLIS": 30000,
17
+ "REAP_INTERVAL_MILLIS": 1000,
18
+ "CREATE_RETRY_INTERVAL_MILLIS": 200,
19
+ "DEBUG": false
20
+ },
21
+ "WINDOW_AGGREGATION": {
22
+ "RETRY_COUNT": 3,
23
+ "RETRY_INTERVAL": 3000
24
+ },
25
+ "TRANSFER_VALIDITY_SECONDS": "432000",
26
+ "HUB_PARTICIPANT": {
27
+ "ID": 1,
28
+ "NAME": "Hub"
29
+ },
30
+ "HANDLERS": {
31
+ "DISABLED": false,
32
+ "API": {
33
+ "DISABLED": false
34
+ },
35
+ "SETTINGS": {
36
+ "RULES": {
37
+ "SCRIPTS_FOLDER": "./scripts/transferSettlementTemp",
38
+ "SCRIPT_TIMEOUT": 100,
39
+ "CONSUMER_COMMIT": true,
40
+ "FROM_SWITCH": true
41
+ }
42
+ }
43
+ },
44
+ "API_DOC_ENDPOINTS_ENABLED": true,
45
+ "SWITCH_ENDPOINT": "http://localhost:3001",
46
+ "AMOUNT": {
47
+ "PRECISION": 18,
48
+ "SCALE": 4
49
+ },
50
+ "KAFKA": {
51
+ "TOPIC_TEMPLATES": {
52
+ "GENERAL_TOPIC_TEMPLATE": {
53
+ "TEMPLATE": "topic-{{functionality}}-{{action}}",
54
+ "REGEX": "topic-(.*)-(.*)"
55
+ }
56
+ },
57
+ "CONSUMER": {
58
+ "DEFERREDSETTLEMENT": {
59
+ "CLOSE": {
60
+ "config": {
61
+ "options": {
62
+ "mode": 2,
63
+ "batchSize": 1,
64
+ "pollFrequency": 10,
65
+ "recursiveTimeout": 100,
66
+ "messageCharset": "utf8",
67
+ "messageAsJSON": true,
68
+ "sync": true,
69
+ "consumeTimeout": 1000
70
+ },
71
+ "rdkafkaConf": {
72
+ "client.id": "cs-con-deferredsettlement-close",
73
+ "group.id": "cs-group-deferredsettlement-close",
74
+ "metadata.broker.list": "localhost:9092",
75
+ "socket.keepalive.enable": true,
76
+ "allow.auto.create.topics": true
77
+ },
78
+ "topicConf": {
79
+ "auto.offset.reset": "earliest"
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "NOTIFICATION": {
85
+ "EVENT": {
86
+ "config": {
87
+ "options": {
88
+ "mode": 2,
89
+ "batchSize": 1,
90
+ "pollFrequency": 10,
91
+ "recursiveTimeout": 100,
92
+ "messageCharset": "utf8",
93
+ "messageAsJSON": true,
94
+ "sync": true,
95
+ "consumeTimeout": 1000
96
+ },
97
+ "rdkafkaConf": {
98
+ "client.id": "cs-con-notification-event",
99
+ "group.id": "cs-group-notification-event",
100
+ "metadata.broker.list": "localhost:9092",
101
+ "socket.keepalive.enable": true,
102
+ "allow.auto.create.topics": true
103
+ },
104
+ "topicConf": {
105
+ "auto.offset.reset": "earliest"
106
+ }
107
+ }
108
+ }
109
+ }
110
+ },
111
+ "PRODUCER": {
112
+ "NOTIFICATION": {
113
+ "EVENT": {
114
+ "config": {
115
+ "options": {
116
+ "messageCharset": "utf8"
117
+ },
118
+ "rdkafkaConf": {
119
+ "debug": "all",
120
+ "metadata.broker.list": "localhost:9092",
121
+ "client.id": "cs-prod-notification-event",
122
+ "event_cb": true,
123
+ "compression.codec": "none",
124
+ "retry.backoff.ms": 100,
125
+ "message.send.max.retries": 2,
126
+ "socket.keepalive.enable": true,
127
+ "queue.buffering.max.messages": 10000000,
128
+ "batch.num.messages": 100,
129
+ "dr_cb": true,
130
+ "socket.blocking.max.ms": 1,
131
+ "queue.buffering.max.ms": 1,
132
+ "broker.version.fallback": "0.10.1.0",
133
+ "api.version.request": true
134
+ }
135
+ }
136
+ }
137
+ },
138
+ "DEFERREDSETTLEMENT": {
139
+ "CLOSE": {
140
+ "config": {
141
+ "options": {
142
+ "messageCharset": "utf8"
143
+ },
144
+ "rdkafkaConf": {
145
+ "metadata.broker.list": "localhost:9092",
146
+ "client.id": "cs-prod-deferredsettlement-close",
147
+ "event_cb": true,
148
+ "dr_cb": true,
149
+ "socket.keepalive.enable": true,
150
+ "queue.buffering.max.messages": 10000000
151
+ },
152
+ "topicConf": {
153
+ "request.required.acks": "all"
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
@@ -7,6 +7,34 @@
7
7
  "HOSTNAME": "http://ml-api-adapter",
8
8
  "ENDPOINT_SOURCE_URL": "http://host.docker.internal:3001",
9
9
  "ENDPOINT_HEALTH_URL": "http://host.docker.internal:3001/health",
10
+ "PROXY_CACHE": {
11
+ "enabled": false,
12
+ "type": "redis-cluster",
13
+ "proxyConfig": {
14
+ "cluster": [
15
+ { "host": "redis-node-0", "port": 6379 }
16
+ ]
17
+ }
18
+ },
19
+ "PROTOCOL_VERSIONS": {
20
+ "CONTENT": {
21
+ "DEFAULT": "2.0",
22
+ "VALIDATELIST": ["1.0", "1.1", "2.0"]
23
+ },
24
+ "ACCEPT": {
25
+ "DEFAULT": "2",
26
+ "VALIDATELIST": ["1", "1.0", "1.1", "2", "2.0"]
27
+ }
28
+ },
29
+ "PAYLOAD_CACHE": {
30
+ "enabled": false,
31
+ "type": "redis-cluster",
32
+ "connectionConfig": {
33
+ "cluster": [
34
+ { "host": "localhost", "port": 6379 }
35
+ ]
36
+ }
37
+ },
10
38
  "ENDPOINT_CACHE_CONFIG": {
11
39
  "expiresIn": 180000,
12
40
  "generateTimeout": 30000
@@ -73,6 +73,9 @@ services:
73
73
  - ./docker/wait-for:/opt/wait-for
74
74
  environment:
75
75
  - LOG_LEVEL=info
76
+ extra_hosts:
77
+ - "host.docker.internal:host-gateway"
78
+ - "simulator:host-gateway"
76
79
  networks:
77
80
  - cl-mojaloop-net
78
81
  depends_on:
@@ -272,6 +275,9 @@ services:
272
275
  replicas: 1
273
276
  ports:
274
277
  - "8444:8444"
278
+ extra_hosts:
279
+ - "host.docker.internal:host-gateway"
280
+ - "simulator:host-gateway"
275
281
  environment:
276
282
  - LOG_LEVEL=info
277
283
  - TRANSFERS_ENDPOINT=http://host.docker.internal:3000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/central-ledger",
3
- "version": "19.13.1",
3
+ "version": "19.14.0-snapshot.2",
4
4
  "description": "Central ledger hosted by a scheme to record and settle transfers",
5
5
  "license": "Apache-2.0",
6
6
  "author": "ModusBox",
@@ -44,14 +44,14 @@
44
44
  "lint": "npx standard",
45
45
  "lint:fix": "npx standard --fix",
46
46
  "test": "npm run test:unit:spec",
47
- "test:unit": "tape 'test/unit/**/*.test.js'",
47
+ "test:unit": "tape 'test/unit/**/*.test.js' 'test/settlement/unit/**/*.test.js'",
48
48
  "test:unit:spec": "npm run test:unit | tap-spec",
49
49
  "test:unit:distLock": "npx tape 'test/unit/lib/distLock/**/*.test.js'",
50
50
  "test:unit:participants-routes": "npx tape test/unit/api/participants/routes.test.js",
51
51
  "test:xunit": "npm run test:unit | tap-xunit > ./test/results/xunit.xml",
52
- "test:coverage": "npx nyc --reporter=lcov --reporter=text-summary tapes -- 'test/unit/**/**.test.js'",
52
+ "test:coverage": "npx nyc --reporter=lcov --reporter=text-summary tapes -- 'test/unit/**/**.test.js' 'test/settlement/unit/**/**.test.js'",
53
53
  "test:coverage-check": "npm run test:coverage && nyc check-coverage",
54
- "test:int": "npx tape 'test/integration/**/*.test.js' ",
54
+ "test:int": "npx tape 'test/integration/**/*.test.js' 'test/settlement/integration/**/*.test.js' ",
55
55
  "test:int-override": "npx tape 'test/integration-override/**/*.test.js'",
56
56
  "test:int:spec": "npm run test:int | npx tap-spec",
57
57
  "test:xint": "npm run test:int | tee /dev/tty | tap-xunit > ./test/results/xunit-integration.xml",
@@ -87,37 +87,38 @@
87
87
  "@hapi/catbox": "12.1.1",
88
88
  "@hapi/catbox-memory": "6.0.2",
89
89
  "@hapi/good": "9.0.1",
90
- "@hapi/hapi": "21.4.6",
90
+ "@hapi/hapi": "21.4.8",
91
91
  "@hapi/inert": "7.1.0",
92
92
  "@hapi/vision": "7.0.3",
93
93
  "@mojaloop/central-services-error-handling": "13.1.6",
94
94
  "@mojaloop/central-services-health": "15.2.2",
95
95
  "@mojaloop/central-services-logger": "11.10.4",
96
96
  "@mojaloop/central-services-metrics": "12.8.5",
97
- "@mojaloop/central-services-shared": "18.35.6",
97
+ "@mojaloop/central-services-shared": "18.35.7",
98
98
  "@mojaloop/central-services-stream": "11.9.1",
99
99
  "@mojaloop/database-lib": "11.3.7",
100
100
  "@mojaloop/event-sdk": "14.8.3",
101
- "@mojaloop/inter-scheme-proxy-cache-lib": "2.9.0",
101
+ "@mojaloop/inter-scheme-proxy-cache-lib": "2.10.0",
102
102
  "@mojaloop/ml-number": "11.4.3",
103
103
  "@mojaloop/object-store-lib": "12.2.3",
104
104
  "@now-ims/hapi-now-auth": "2.1.0",
105
105
  "ajv": "8.18.0",
106
106
  "ajv-keywords": "5.1.0",
107
107
  "base64url": "3.0.1",
108
+ "bignumber.js": "11.0.0",
108
109
  "blipp": "4.0.2",
109
110
  "commander": "14.0.3",
110
111
  "cron": "4.4.0",
111
112
  "decimal.js": "10.6.0",
112
113
  "docdash": "2.0.2",
113
114
  "event-stream": "4.0.1",
114
- "five-bells-condition": "5.0.1",
115
115
  "hapi-auth-bearer-token": "8.0.0",
116
+ "hapi-openapi": "3.0.0",
116
117
  "hapi-swagger": "17.3.2",
117
118
  "ilp-packet": "2.2.0",
118
119
  "joi": "18.0.1",
119
- "knex": "3.1.0",
120
- "lodash": "4.17.23",
120
+ "knex": "3.2.9",
121
+ "lodash": "4.18.1",
121
122
  "moment": "2.30.1",
122
123
  "mongo-uri-builder": "^4.0.0",
123
124
  "parse-strings-in-object": "2.0.0",
@@ -128,45 +129,51 @@
128
129
  "mysql": "2.18.1"
129
130
  },
130
131
  "devDependencies": {
131
- "@opentelemetry/api": "^1.9.0",
132
- "@opentelemetry/auto-instrumentations-node": "^0.70.1",
132
+ "@hapi/joi": "17.1.1",
133
+ "@opentelemetry/api": "1.9.1",
134
+ "@opentelemetry/auto-instrumentations-node": "0.73.0",
133
135
  "@types/mock-knex": "0.4.8",
134
136
  "async-retry": "1.3.3",
135
137
  "audit-ci": "^7.1.0",
136
138
  "get-port": "5.1.1",
137
139
  "jsdoc": "4.0.5",
138
- "jsonpath": "1.2.1",
140
+ "jsonpath": "1.3.0",
139
141
  "mock-knex": "0.4.13",
140
142
  "nodemon": "3.1.14",
141
- "npm-check-updates": "19.6.0",
143
+ "npm-check-updates": "21.0.3",
142
144
  "nyc": "18.0.0",
143
145
  "pre-commit": "1.2.2",
144
146
  "proxyquire": "2.1.3",
145
147
  "replace": "^1.2.2",
148
+ "rewire": "^9.0.1",
146
149
  "sinon": "17.0.0",
147
150
  "standard": "17.1.2",
148
151
  "standard-version": "^9.5.0",
152
+ "swagmock": "1.0.0",
149
153
  "tap-spec": "^5.0.0",
150
154
  "tap-xunit": "2.4.1",
151
155
  "tape": "4.17.0",
152
156
  "tapes": "4.1.0"
153
157
  },
154
158
  "overrides": {
159
+ "protobufjs": "8.0.1",
160
+ "handlebars": "4.7.9",
155
161
  "ajv": "8.18.0",
156
162
  "eslint": {
157
- "ajv": "6.12.6"
163
+ "ajv": "6.14.0"
158
164
  },
159
165
  "eslint@9.39.2": {
160
- "ajv": "6.12.6"
166
+ "ajv": "6.14.0"
161
167
  },
162
168
  "@eslint/eslintrc": {
163
- "ajv": "6.12.6"
169
+ "ajv": "6.14.0"
164
170
  },
165
- "axios": "1.13.5",
166
- "brace-expansion": "2.0.2",
167
- "form-data": "4.0.4",
168
- "lodash": "4.17.23",
169
- "undici": "6.23.0",
171
+ "axios": "1.15.0",
172
+ "brace-expansion": "2.0.3",
173
+ "convict": "6.2.5",
174
+ "form-data": "4.0.5",
175
+ "lodash": "4.18.1",
176
+ "undici": "6.24.0",
170
177
  "shins": {
171
178
  "ajv": "8.18.0",
172
179
  "ejs": "3.1.10",
@@ -183,13 +190,24 @@
183
190
  "hapi-swagger": {
184
191
  "joi": "18.0.1"
185
192
  },
193
+ "immutable": "5.1.5",
186
194
  "jsonwebtoken": "9.0.0",
187
195
  "jsonpointer": "5.0.0",
188
196
  "on-headers": "1.1.0",
197
+ "path-to-regexp": "0.1.13",
189
198
  "trim": "0.0.3",
190
199
  "cross-spawn": "7.0.6",
200
+ "yaml": "1.10.3",
201
+ "validator": "13.15.22",
191
202
  "yargs-parser": "21.1.1",
192
- "fast-xml-parser": "5.3.6"
203
+ "fast-xml-parser": "5.5.7",
204
+ "minimatch@<=3.1.3": "3.1.5",
205
+ "minimatch@5.1.7": "5.1.9",
206
+ "minimatch@9.0.6": "9.0.9",
207
+ "replace": {
208
+ "minimatch": "3.1.5"
209
+ },
210
+ "underscore": "1.13.8"
193
211
  },
194
212
  "config": {
195
213
  "knex": "--knexfile ./config/knexfile.js",