@mojaloop/sdk-scheme-adapter 24.10.6-snapshot.0 → 24.10.7

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 (26) hide show
  1. package/.yarn/cache/{@eslint-compat-npm-1.3.1-41a44c7960-688231f00b.zip → @eslint-compat-npm-1.3.2-b403da4a15-e710ec5ed8.zip} +0 -0
  2. package/.yarn/cache/@hapi-address-npm-5.1.1-2944e6ed9b-9462b22f96.zip +0 -0
  3. package/.yarn/cache/@hapi-formula-npm-3.0.2-70d8fffc4e-c6d4fdcd19.zip +0 -0
  4. package/.yarn/cache/@hapi-hapi-npm-21.4.2-b5f92c52c3-efe9025469.zip +0 -0
  5. package/.yarn/cache/@hapi-pinpoint-npm-2.0.1-4da9d8fcbc-28e72305c1.zip +0 -0
  6. package/.yarn/cache/@hapi-tlds-npm-1.1.2-80b5f7031d-339761cd1a.zip +0 -0
  7. package/.yarn/cache/@ioredis-commands-npm-1.3.0-c1ff038fb4-203029f09d.zip +0 -0
  8. package/.yarn/cache/@mojaloop-central-services-shared-npm-18.30.7-291fa1aea3-aee239baa2.zip +0 -0
  9. package/.yarn/cache/@standard-schema-spec-npm-1.0.0-e86c6647f1-aee780cc14.zip +0 -0
  10. package/.yarn/cache/{@types-node-npm-24.2.0-62c65eafa6-b81501e05f.zip → @types-node-npm-24.2.1-00ab09acd1-cdfa7b30b2.zip} +0 -0
  11. package/.yarn/cache/ioredis-npm-5.7.0-870b1dbe10-7407736226.zip +0 -0
  12. package/.yarn/cache/joi-npm-18.0.0-1ebac7eadf-568004d69f.zip +0 -0
  13. package/.yarn/cache/yaml-npm-2.8.1-b364b3bec4-eae07b3947.zip +0 -0
  14. package/.yarn/install-state.gz +0 -0
  15. package/CHANGELOG.md +24 -0
  16. package/modules/api-svc/package.json +2 -2
  17. package/modules/api-svc/src/lib/cache.js +0 -54
  18. package/modules/api-svc/src/lib/model/OutboundTransfersModel.js +118 -93
  19. package/modules/api-svc/src/lib/model/common/index.js +0 -2
  20. package/modules/api-svc/test/unit/api/transfers/transfers.test.js +1 -1
  21. package/modules/outbound-command-event-handler/package.json +4 -4
  22. package/modules/outbound-domain-event-handler/package.json +2 -2
  23. package/modules/private-shared-lib/package.json +4 -4
  24. package/package.json +2 -2
  25. package/{sbom-v24.10.5.csv → sbom-v24.10.6.csv} +79 -83
  26. package/modules/api-svc/src/lib/model/common/TimeoutError.js +0 -41
Binary file
package/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
1
  # Changelog: [mojaloop/sdk-scheme-adapter](https://github.com/mojaloop/sdk-scheme-adapter)
2
+ ### [24.10.7](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.10.6...v24.10.7) (2025-08-08)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * revert dockerfile change ([#604](https://github.com/mojaloop/sdk-scheme-adapter/issues/604)) ([8ae897c](https://github.com/mojaloop/sdk-scheme-adapter/commit/8ae897cd4e566aed3469528f829ca201686dfeee))
8
+
9
+
10
+ ### Chore
11
+
12
+ * **sbom:** update sbom [skip ci] ([e831089](https://github.com/mojaloop/sdk-scheme-adapter/commit/e831089e0a8df20a8c002b1fccda92de89631eac))
13
+
14
+ ### [24.10.6](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.10.5...v24.10.6) (2025-08-07)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * issue EROFS from Yarn + Node 22 ([#603](https://github.com/mojaloop/sdk-scheme-adapter/issues/603)) ([503fe96](https://github.com/mojaloop/sdk-scheme-adapter/commit/503fe96d09e633b151132acd3695b518f0dd9057))
20
+
21
+
22
+ ### Chore
23
+
24
+ * **sbom:** update sbom [skip ci] ([b361f4f](https://github.com/mojaloop/sdk-scheme-adapter/commit/b361f4f4f6a09b7e9e19d9e267e4e875ea76b668))
25
+
2
26
  ### [24.10.5](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.10.4...v24.10.5) (2025-08-01)
3
27
 
4
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter-api-svc",
3
- "version": "21.0.0-snapshot.50",
3
+ "version": "21.0.0-snapshot.49",
4
4
  "description": "An adapter for connecting to Mojaloop API enabled switches.",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -68,7 +68,7 @@
68
68
  "@mojaloop/central-services-error-handling": "13.1.0",
69
69
  "@mojaloop/central-services-logger": "11.9.0",
70
70
  "@mojaloop/central-services-metrics": "12.6.0",
71
- "@mojaloop/central-services-shared": "18.30.6",
71
+ "@mojaloop/central-services-shared": "18.30.7",
72
72
  "@mojaloop/event-sdk": "14.6.1",
73
73
  "@mojaloop/logging-bc-client-lib": "0.5.8",
74
74
  "@mojaloop/ml-schema-transformer-lib": "2.7.7",
@@ -27,8 +27,6 @@
27
27
  'use strict';
28
28
 
29
29
  const redis = require('redis');
30
- const EventEmitter = require('events');
31
- const { TimeoutError } = require('./model/common/TimeoutError');
32
30
 
33
31
  const CONN_ST = {
34
32
  CONNECTED: 'CONNECTED',
@@ -43,7 +41,6 @@ const CONN_ST = {
43
41
  class Cache {
44
42
  constructor(config) {
45
43
  this._config = config;
46
- this._channelEmitter = new EventEmitter();
47
44
 
48
45
  if(!config.cacheUrl || !config.logger) {
49
46
  throw new Error('Cache config requires cacheUrl and logger properties');
@@ -199,57 +196,6 @@ class Cache {
199
196
  return id;
200
197
  }
201
198
 
202
- /**
203
- * Subscribes to a channel for some period and always returns resolved promise
204
- *
205
- * @param {string} channel - The channel name to subscribe to
206
- * @param {boolean} [needParse=true] - specify if the message should be parsed before returning
207
- *
208
- * @returns {Promise} - Promise that resolves with a message or an error
209
- */
210
- async subscribeToOneMessageWithTimerNew(channel, requestProcessingTimeoutSeconds, needParse = true) {
211
- let subscription;
212
-
213
- return new Promise((resolve, reject) => {
214
-
215
- const timer = setTimeout(async () => {
216
- if (subscription) {
217
- this._channelEmitter.removeListener(channel, subscription);
218
- }
219
- // If there are no listeners left for this channel, we can unsubscribe
220
- if (this._channelEmitter.listenerCount(channel) === 0) {
221
- if (this._subscriptionClient) {
222
- await this._subscriptionClient.unsubscribe(channel);
223
- }
224
- }
225
- const errMessage = 'Timeout error';
226
- this._logger.push({ channel }).warn(errMessage);
227
- reject(new TimeoutError(errMessage));
228
- }, requestProcessingTimeoutSeconds * 1000);
229
-
230
- subscription = (message) => {
231
- this._logger.push({ channel, message, needParse }).debug('subscribeToOneMessageWithTimer is done');
232
- clearTimeout(timer);
233
- resolve(needParse ? JSON.parse(message) : message);
234
- };
235
- this._channelEmitter.once(channel, subscription);
236
-
237
- this._subscriptionClient.subscribe(channel, async (msg) => {
238
- this._channelEmitter.emit(channel, msg);
239
- // If there are no listeners left for this channel, we can unsubscribe
240
- if (this._channelEmitter.listenerCount(channel) === 0) {
241
- if (this._subscriptionClient) {
242
- await this._subscriptionClient.unsubscribe(channel);
243
- }
244
- }
245
- })
246
- .catch(err => {
247
- this._logger.push({ channel, err }).warn(`error in subscribeToOneMessageWithTimer: ${err.message}`);
248
- reject(err);
249
- });
250
- });
251
- }
252
-
253
199
  /**
254
200
  * Subscribes to a channel for some period and always returns resolved promise
255
201
  *
@@ -40,7 +40,6 @@ const PartiesModel = require('./PartiesModel');
40
40
  const {
41
41
  AmountTypes,
42
42
  BackendError,
43
- TimeoutError,
44
43
  CacheKeyPrefixes,
45
44
  Directions,
46
45
  ErrorMessages,
@@ -322,121 +321,147 @@ class OutboundTransfersModel {
322
321
 
323
322
  let latencyTimerDone;
324
323
 
325
- // now we have a timeout handler and a cache subscriber hooked up we can fire off
326
- // a GET /parties request to the switch
327
- try {
328
- const channel = payeeKey;
329
- const subscribing = this._cache.subscribeToOneMessageWithTimerNew(channel, this._requestProcessingTimeoutSeconds);
324
+ // hook up a subscriber to handle response messages
325
+ const subId = await this._cache.subscribe(payeeKey, (cn, msg, subId) => {
326
+ try {
327
+ if(latencyTimerDone) {
328
+ latencyTimerDone();
329
+ }
330
+ this.metrics.partyLookupResponses.inc();
331
+
332
+ this.data.getPartiesResponse = JSON.parse(msg);
333
+ if (this.data.getPartiesResponse.body?.errorInformation) {
334
+ // this is an error response to our GET /parties request
335
+ const err = new BackendError(`Got an error response resolving party: ${safeStringify(this.data.getPartiesResponse.body, { depth: Infinity })}`, 500);
336
+ err.mojaloopError = this.data.getPartiesResponse.body;
337
+ // cancel the timeout handler
338
+ clearTimeout(timeout);
339
+ return reject(err);
340
+ }
341
+ let payee = this.data.getPartiesResponse.body;
330
342
 
331
- latencyTimerDone = this.metrics.partyLookupLatency.startTimer();
332
- const res = await this._requests.getParties(
333
- this.data.to.idType,
334
- this.data.to.idValue,
335
- this.data.to.idSubValue,
336
- this.data.to.fspId,
337
- this.#createOtelHeaders()
338
- );
343
+ if(!payee.party) {
344
+ // we should never get a non-error response without a party, but just in case...
345
+ // cancel the timeout handler
346
+ clearTimeout(timeout);
347
+ return reject(new Error(`Resolved payee has no party object: ${safeStringify(payee)}`));
348
+ }
339
349
 
340
- this.data.getPartiesRequest = res.originalRequest;
350
+ payee = payee.party;
341
351
 
342
- this.metrics.partyLookupRequests.inc();
343
- this._logger.isDebugEnabled && this._logger.push({ peer: res }).debug('Party lookup sent to peer');
352
+ // cancel the timeout handler
353
+ clearTimeout(timeout);
344
354
 
345
- const message = await subscribing;
355
+ this._logger.isVerboseEnabled && this._logger.push({ payee }).verbose('Payee resolved');
346
356
 
347
- if(latencyTimerDone) {
348
- latencyTimerDone();
349
- }
350
- this.metrics.partyLookupResponses.inc();
357
+ // stop listening for payee resolution messages
358
+ // no need to await for the unsubscribe to complete.
359
+ // we dont really care if the unsubscribe fails but we should log it regardless
360
+ this._cache.unsubscribe(payeeKey, subId, true).catch(e => {
361
+ this._logger.isErrorEnabled && this._logger.error(`Error unsubscribing (in callback) ${payeeKey} ${subId}: ${e.stack || safeStringify(e)}`);
362
+ });
351
363
 
352
- this.data.getPartiesResponse = message;
353
- if (this.data.getPartiesResponse.body?.errorInformation) {
354
- // this is an error response to our GET /parties request
355
- const err = new BackendError(`Got an error response resolving party: ${safeStringify(this.data.getPartiesResponse.body, { depth: Infinity })}`, 500);
356
- err.mojaloopError = this.data.getPartiesResponse.body;
357
- return reject(err);
358
- }
359
- let payee = this.data.getPartiesResponse.body;
364
+ // check we got the right payee and info we need
365
+ if(payee.partyIdInfo.partyIdType !== this.data.to.idType) {
366
+ const err = new Error(`Expecting resolved payee party IdType to be ${this.data.to.idType} but got ${payee.partyIdInfo.partyIdType}`);
367
+ return reject(err);
368
+ }
360
369
 
361
- if(!payee.party) {
362
- // we should never get a non-error response without a party, but just in case...
363
- return reject(new Error(`Resolved payee has no party object: ${safeStringify(payee)}`));
364
- }
370
+ if(payee.partyIdInfo.partyIdentifier !== this.data.to.idValue) {
371
+ const err = new Error(`Expecting resolved payee party identifier to be ${this.data.to.idValue} but got ${payee.partyIdInfo.partyIdentifier}`);
372
+ return reject(err);
373
+ }
365
374
 
366
- payee = payee.party;
375
+ if(payee.partyIdInfo.partySubIdOrType !== this.data.to.idSubValue) {
376
+ const err = new Error(`Expecting resolved payee party subTypeId to be ${this.data.to.idSubValue} but got ${payee.partyIdInfo.partySubIdOrType}`);
377
+ return reject(err);
378
+ }
367
379
 
368
- this._logger.isVerboseEnabled && this._logger.push({ payee }).verbose('Payee resolved');
380
+ if(!payee.partyIdInfo.fspId) {
381
+ const err = new Error(`Expecting resolved payee party to have an FSPID: ${safeStringify(payee.partyIdInfo)}`);
382
+ return reject(err);
383
+ }
369
384
 
370
- // check we got the right payee and info we need
371
- if(payee.partyIdInfo.partyIdType !== this.data.to.idType) {
372
- const err = new Error(`Expecting resolved payee party IdType to be ${this.data.to.idType} but got ${payee.partyIdInfo.partyIdType}`);
373
- return reject(err);
374
- }
385
+ // now we got the payee, add the details to our data so we can use it
386
+ // in the quote request
387
+ this.data.to.fspId = payee.partyIdInfo.fspId;
388
+ if(payee.partyIdInfo.extensionList) {
389
+ this.data.to.extensionList = payee.partyIdInfo.extensionList.extension;
390
+ }
391
+ if(payee.personalInfo) {
392
+ if(payee.personalInfo.complexName) {
393
+ this.data.to.firstName = payee.personalInfo.complexName.firstName || this.data.to.firstName;
394
+ this.data.to.middleName = payee.personalInfo.complexName.middleName || this.data.to.middleName;
395
+ this.data.to.lastName = payee.personalInfo.complexName.lastName || this.data.to.lastName;
396
+ }
397
+ this.data.to.dateOfBirth = payee.personalInfo.dateOfBirth;
398
+ }
375
399
 
376
- if(payee.partyIdInfo.partyIdentifier !== this.data.to.idValue) {
377
- const err = new Error(`Expecting resolved payee party identifier to be ${this.data.to.idValue} but got ${payee.partyIdInfo.partyIdentifier}`);
378
- return reject(err);
379
- }
400
+ if (Array.isArray(payee.supportedCurrencies)) {
401
+ if (!payee.supportedCurrencies.length) {
402
+ throw new Error(ErrorMessages.noSupportedCurrencies);
403
+ }
380
404
 
381
- if(payee.partyIdInfo.partySubIdOrType !== this.data.to.idSubValue) {
382
- const err = new Error(`Expecting resolved payee party subTypeId to be ${this.data.to.idSubValue} but got ${payee.partyIdInfo.partySubIdOrType}`);
383
- return reject(err);
384
- }
405
+ this.data.needFx = this._isFxNeeded(this._supportedCurrencies, payee.supportedCurrencies, this.data.currency, this.data.amountType);
406
+ this.data.supportedCurrencies = payee.supportedCurrencies;
407
+ }
385
408
 
386
- if(!payee.partyIdInfo.fspId) {
387
- const err = new Error(`Expecting resolved payee party to have an FSPID: ${safeStringify(payee.partyIdInfo)}`);
388
- return reject(err);
389
- }
409
+ this._logger.isVerboseEnabled && this._logger.push({
410
+ transferId: this.data.transferId,
411
+ homeTransactionId: this.data.homeTransactionId,
412
+ needFx: this.data.needFx,
413
+ }).verbose('Payee validation passed');
390
414
 
391
- // now we got the payee, add the details to our data so we can use it
392
- // in the quote request
393
- this.data.to.fspId = payee.partyIdInfo.fspId;
394
- if(payee.partyIdInfo.extensionList) {
395
- this.data.to.extensionList = payee.partyIdInfo.extensionList.extension;
415
+ return resolve(payee);
396
416
  }
397
- if(payee.personalInfo) {
398
- if(payee.personalInfo.complexName) {
399
- this.data.to.firstName = payee.personalInfo.complexName.firstName || this.data.to.firstName;
400
- this.data.to.middleName = payee.personalInfo.complexName.middleName || this.data.to.middleName;
401
- this.data.to.lastName = payee.personalInfo.complexName.lastName || this.data.to.lastName;
402
- }
403
- this.data.to.dateOfBirth = payee.personalInfo.dateOfBirth;
417
+ catch (err) {
418
+ return reject(err);
404
419
  }
420
+ });
405
421
 
406
- if (Array.isArray(payee.supportedCurrencies)) {
407
- if (!payee.supportedCurrencies.length) {
408
- throw new Error(ErrorMessages.noSupportedCurrencies);
409
- }
422
+ // set up a timeout for the resolution
423
+ const timeout = setTimeout(() => {
424
+ const err = new BackendError(`Timeout resolving payee for transfer ${this.data.transferId}`, 504);
410
425
 
411
- this.data.needFx = this._isFxNeeded(this._supportedCurrencies, payee.supportedCurrencies, this.data.currency, this.data.amountType);
412
- this.data.supportedCurrencies = payee.supportedCurrencies;
426
+ // we dont really care if the unsubscribe fails but we should log it regardless
427
+ this._cache.unsubscribe(payeeKey, subId, true).catch(e => {
428
+ this._logger.isErrorEnabled && this._logger.error(`Error unsubscribing (in timeout handler) ${payeeKey} ${subId}: ${e.stack || safeStringify(e)}`);
429
+ });
430
+
431
+ if(latencyTimerDone) {
432
+ latencyTimerDone();
413
433
  }
414
434
 
415
- this._logger.isVerboseEnabled && this._logger.push({
416
- transferId: this.data.transferId,
417
- homeTransactionId: this.data.homeTransactionId,
418
- needFx: this.data.needFx,
419
- }).verbose('Payee validation passed');
435
+ return reject(err);
436
+ }, this._requestProcessingTimeoutSeconds * 1000);
420
437
 
421
- return resolve(payee);
438
+ // now we have a timeout handler and a cache subscriber hooked up we can fire off
439
+ // a GET /parties request to the switch
440
+ try {
441
+ latencyTimerDone = this.metrics.partyLookupLatency.startTimer();
442
+ const res = await this._requests.getParties(
443
+ this.data.to.idType,
444
+ this.data.to.idValue,
445
+ this.data.to.idSubValue,
446
+ this.data.to.fspId,
447
+ this.#createOtelHeaders()
448
+ );
449
+
450
+ this.data.getPartiesRequest = res.originalRequest;
451
+
452
+ this.metrics.partyLookupRequests.inc();
453
+ this._logger.isDebugEnabled && this._logger.push({ peer: res }).debug('Party lookup sent to peer');
422
454
  }
423
455
  catch(err) {
424
- this._logger.isErrorEnabled && this._logger.error(`Error in resolvePayee ${payeeKey}: ${err.stack || safeStringify(err)}`);
425
- // If type of error is BackendError, it will be handled by the state machine
426
- if (err instanceof BackendError) {
427
- this.data.lastError = err;
428
- return reject(err);
429
- }
430
- // Check if the error is a TimeoutError, and if so, reject with a BackendError
431
- if (err instanceof TimeoutError) {
432
- const error = new BackendError(`Timeout resolving payee for transfer ${this.data.transferId}`, 504);
433
- this.data.lastError = error;
434
- return reject(error);
435
- }
436
- // otherwise, just throw a generic error
437
- const error = new BackendError(`Error resolving payee for transfer ${this.data.transferId}: ${err.message}`, 500);
438
- this.data.lastError = error;
439
- return reject(error);
456
+ // cancel the timeout and unsubscribe before rejecting the promise
457
+ clearTimeout(timeout);
458
+
459
+ // we dont really care if the unsubscribe fails but we should log it regardless
460
+ this._cache.unsubscribe(payeeKey, subId, true).catch(e => {
461
+ this._logger.isErrorEnabled && this._logger.error(`Error unsubscribing ${payeeKey} ${subId}: ${e.stack || safeStringify(e)}`);
462
+ });
463
+
464
+ return reject(err);
440
465
  }
441
466
  });
442
467
  }
@@ -28,12 +28,10 @@
28
28
  ******/
29
29
  const Enums = require('./Enums');
30
30
  const { BackendError } = require('./BackendError');
31
- const { TimeoutError } = require('./TimeoutError');
32
31
  const PersistentStateMachine = require('./PersistentStateMachine');
33
32
 
34
33
  module.exports = {
35
34
  ...Enums,
36
35
  BackendError,
37
- TimeoutError,
38
36
  PersistentStateMachine
39
37
  };
@@ -147,7 +147,7 @@ describe('Outbound Transfers API', () => {
147
147
  parties: {
148
148
  put: () => new Promise(
149
149
  resolve => setTimeout(() => resolve(putPartiesBody),
150
- 3000)),
150
+ 2000)),
151
151
  },
152
152
  };
153
153
  return testPostTransfers(putBodyFn, 504, postTransfersErrorTimeoutResponse);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler",
3
- "version": "0.3.0-snapshot.47",
3
+ "version": "0.3.0-snapshot.46",
4
4
  "description": "Mojaloop sdk scheme adapter command event handler",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/mojaloop/sdk-scheme-adapter/",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@mojaloop/api-snippets": "18.1.1",
45
- "@mojaloop/central-services-shared": "18.30.6",
45
+ "@mojaloop/central-services-shared": "18.30.7",
46
46
  "@mojaloop/logging-bc-client-lib": "0.5.8",
47
47
  "@mojaloop/logging-bc-public-types-lib": "0.5.6",
48
48
  "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
@@ -56,11 +56,11 @@
56
56
  "yamljs": "0.3.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@eslint/compat": "1.3.1",
59
+ "@eslint/compat": "1.3.2",
60
60
  "@types/convict": "6.1.6",
61
61
  "@types/express": "5.0.3",
62
62
  "@types/jest": "30.0.0",
63
- "@types/node": "24.2.0",
63
+ "@types/node": "24.2.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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter-outbound-domain-event-handler",
3
- "version": "0.3.0-snapshot.47",
3
+ "version": "0.3.0-snapshot.46",
4
4
  "description": "mojaloop sdk scheme adapter outbound domain event handler",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/mojaloop/sdk-scheme-adapter/",
@@ -57,7 +57,7 @@
57
57
  "@types/convict": "6.1.6",
58
58
  "@types/express": "5.0.3",
59
59
  "@types/jest": "30.0.0",
60
- "@types/node": "24.2.0",
60
+ "@types/node": "24.2.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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter-private-shared-lib",
3
- "version": "0.4.0-snapshot.47",
3
+ "version": "0.4.0-snapshot.46",
4
4
  "description": "SDK Scheme Adapter private shared library.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/mojaloop/accounts-and-balances-bc/tree/main/modules/private-types",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@mojaloop/api-snippets": "18.1.1",
33
- "@mojaloop/central-services-shared": "18.30.6",
33
+ "@mojaloop/central-services-shared": "18.30.7",
34
34
  "@mojaloop/logging-bc-public-types-lib": "0.5.6",
35
35
  "@mojaloop/platform-shared-lib-messaging-types-lib": "0.7.3",
36
36
  "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "0.5.18",
@@ -39,8 +39,8 @@
39
39
  "uuid": "11.1.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@eslint/compat": "1.3.1",
43
- "@types/node": "24.2.0",
42
+ "@eslint/compat": "1.3.2",
43
+ "@types/node": "24.2.1",
44
44
  "@types/uuid": "10.0.0",
45
45
  "@typescript-eslint/eslint-plugin": "8.39.0",
46
46
  "@typescript-eslint/parser": "8.39.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter",
3
- "version": "24.10.6-snapshot.0",
3
+ "version": "24.10.7",
4
4
  "description": "mojaloop sdk-scheme-adapter",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/mojaloop/sdk-scheme-adapter",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "devDependencies": {
84
84
  "@types/jest": "30.0.0",
85
- "@types/node": "24.2.0",
85
+ "@types/node": "24.2.1",
86
86
  "@types/node-cache": "4.2.5",
87
87
  "@typescript-eslint/eslint-plugin": "8.39.0",
88
88
  "@typescript-eslint/parser": "8.39.0",