@mojaloop/sdk-scheme-adapter 24.12.0 → 24.14.0-snapshot.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 +5 -2
- package/.yarn/cache/{@apidevtools-json-schema-ref-parser-npm-11.9.1-affeb92b0d-d8ebea686e.zip → @apidevtools-json-schema-ref-parser-npm-11.9.3-539c6e355d-3d3618dbb6.zip} +0 -0
- package/.yarn/cache/{@babel-compat-data-npm-7.28.0-04d8eecea9-1a56a5e48c.zip → @babel-compat-data-npm-7.28.4-fdb823dde5-95b7864e6b.zip} +0 -0
- package/.yarn/cache/{@babel-helper-wrap-function-npm-7.27.1-7c7bc9ac83-effa5ba173.zip → @babel-helper-wrap-function-npm-7.28.3-abf7c7bf1f-a5ed5fe7b8.zip} +0 -0
- package/.yarn/cache/{@babel-plugin-syntax-jsx-npm-7.25.9-3df022f433-bb609d1ffb.zip → @babel-plugin-syntax-jsx-npm-7.27.1-2f6039b8f0-c6d1324cff.zip} +0 -0
- package/.yarn/cache/{@babel-plugin-syntax-typescript-npm-7.25.9-5201e4ba77-0e9821e8ba.zip → @babel-plugin-syntax-typescript-npm-7.27.1-5d60015570-87836f7e32.zip} +0 -0
- package/.yarn/cache/{@babel-plugin-transform-block-scoping-npm-7.28.0-a08eef2c22-eefa0d0b3c.zip → @babel-plugin-transform-block-scoping-npm-7.28.4-f325d4f6d4-0848c681b0.zip} +0 -0
- package/.yarn/cache/{@babel-plugin-transform-classes-npm-7.28.3-22fe11bcef-0aefcabe68.zip → @babel-plugin-transform-classes-npm-7.28.4-f261201c4b-1f8423d0ba.zip} +0 -0
- package/.yarn/cache/{@babel-plugin-transform-object-rest-spread-npm-7.28.0-7aa5a9958a-55d37dbc0d.zip → @babel-plugin-transform-object-rest-spread-npm-7.28.4-bc45781f0c-aebe464e36.zip} +0 -0
- package/.yarn/cache/@babel-plugin-transform-regenerator-npm-7.28.4-13f2152eb3-24da51a659.zip +0 -0
- package/.yarn/cache/{@dabh-diagnostics-npm-2.0.3-0f2cd64f24-14e449a7f4.zip → @dabh-diagnostics-npm-2.0.8-15e79eab9c-ac2267a4ee.zip} +0 -0
- package/.yarn/cache/@eslint-community-eslint-utils-npm-4.9.0-fe45a08548-89b1eb3137.zip +0 -0
- package/.yarn/cache/@eslint-compat-npm-1.4.0-2352faedcd-204f80bfde.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.13.0-53447b33b9-737fd1c237.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.16.0-ceefcac859-3cea45971b.zip +0 -0
- package/.yarn/cache/{@eslint-eslintrc-npm-3.3.0-72b2f21ce8-f17d232fc4.zip → @eslint-eslintrc-npm-3.3.1-c3967fc0c3-cc240addba.zip} +0 -0
- package/.yarn/cache/{@eslint-plugin-kit-npm-0.2.7-c313bcf919-e932da4ff9.zip → @eslint-plugin-kit-npm-0.2.8-b9d7e2ad65-2e7fe7a88e.zip} +0 -0
- package/.yarn/cache/@grpc-grpc-js-npm-1.14.0-23f158f5eb-e1f7d15dde.zip +0 -0
- package/.yarn/cache/@hapi-teamwork-npm-6.0.1-fd291504d2-1f83fe93c7.zip +0 -0
- package/.yarn/cache/@hapi-tlds-npm-1.1.3-cc5bc7f0cc-4e1a3fcec7.zip +0 -0
- package/.yarn/cache/{@humanfs-node-npm-0.16.6-6ee2cad587-6d43c67274.zip → @humanfs-node-npm-0.16.7-fa16bdb590-b3633d3dce.zip} +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.4.3-a8d7ca1663-0b32cfd362.zip +0 -0
- package/.yarn/cache/{@ioredis-commands-npm-1.2.0-47541de88b-a8253c9539.zip → @ioredis-commands-npm-1.4.0-3a627ac2f0-ea299f2205.zip} +0 -0
- package/.yarn/cache/{@jest-diff-sequences-npm-30.0.0-a54cd58e53-aed609b228.zip → @jest-diff-sequences-npm-30.0.1-73f863a027-0ddb7c7ba9.zip} +0 -0
- package/.yarn/cache/{@jest-expect-utils-npm-30.0.0-bddc827ac5-442b926f88.zip → @jest-expect-utils-npm-30.2.0-d624ff36ec-f2442f1bce.zip} +0 -0
- package/.yarn/cache/@jest-get-type-npm-30.1.0-1ad604ab7f-e2a95fbb49.zip +0 -0
- package/.yarn/cache/@jest-transform-npm-30.2.0-e241ad53a4-c75d72d524.zip +0 -0
- package/.yarn/cache/@jest-types-npm-30.2.0-5ae4869189-f50fcaea56.zip +0 -0
- package/.yarn/cache/{@jridgewell-gen-mapping-npm-0.3.12-540cb6029b-1516675315.zip → @jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-902f8261dc.zip} +0 -0
- package/.yarn/cache/{@jridgewell-sourcemap-codec-npm-1.5.4-0708d1c59d-f677787f52.zip → @jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-5d9d207b46.zip} +0 -0
- package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-da0283270e.zip +0 -0
- package/.yarn/cache/{@mojaloop-central-services-error-handling-npm-13.1.2-680b8f106e-1357eefd24.zip → @mojaloop-central-services-error-handling-npm-13.1.3-d798c7ad31-4eae5147c7.zip} +0 -0
- package/.yarn/cache/{@mojaloop-central-services-metrics-npm-12.7.1-a82eece473-0aa6374c0e.zip → @mojaloop-central-services-metrics-npm-12.8.0-e245e8b50d-627dc16865.zip} +0 -0
- package/.yarn/cache/{@mojaloop-central-services-shared-npm-18.33.3-676ab2f4ed-bed53621b8.zip → @mojaloop-central-services-shared-npm-18.34.1-fc3be8e73c-f7ad2f9394.zip} +0 -0
- package/.yarn/cache/{@mojaloop-event-sdk-npm-14.7.0-dfe9fa1933-59adbf133d.zip → @mojaloop-event-sdk-npm-14.8.0-c3e8d5a581-bc2be19e16.zip} +0 -0
- package/.yarn/cache/@mojaloop-inter-scheme-proxy-cache-lib-npm-2.9.0-cb33cd6786-fd3f20e6a7.zip +0 -0
- package/.yarn/cache/@mojaloop-ml-number-npm-11.4.0-14b3424a94-f6e9fde53e.zip +0 -0
- package/.yarn/cache/@mojaloop-platform-shared-lib-nodejs-kafka-client-lib-npm-0.5.20-dc351718a9-e944d3f943.zip +0 -0
- package/.yarn/cache/{@mojaloop-sdk-standard-components-npm-19.17.0-0519957b97-95fef19fc4.zip → @mojaloop-sdk-standard-components-npm-19.18.0-c3cfe8de77-62ddc3ea84.zip} +0 -0
- package/.yarn/cache/{@redis-bloom-npm-5.8.2-1972c61f30-99ec4f127b.zip → @redis-bloom-npm-5.8.3-892faaab15-031bfb7d85.zip} +0 -0
- package/.yarn/cache/{@redis-client-npm-5.8.2-68c2d31768-653ba2d0ef.zip → @redis-client-npm-5.8.3-acc7573cc3-402e5f4520.zip} +0 -0
- package/.yarn/cache/{@redis-json-npm-5.8.2-99129c657f-2877cd93b7.zip → @redis-json-npm-5.8.3-bbddd9239e-fc81b7e638.zip} +0 -0
- package/.yarn/cache/{@redis-search-npm-5.8.2-c7014522ef-6cc0499a11.zip → @redis-search-npm-5.8.3-07f03dcedf-74c4ef9d3f.zip} +0 -0
- package/.yarn/cache/{@redis-time-series-npm-5.8.2-94d4c69124-a775817380.zip → @redis-time-series-npm-5.8.3-a029734baa-20ab29dfe1.zip} +0 -0
- package/.yarn/cache/{@redocly-ajv-npm-8.11.2-edb76e81a5-75d6d8bcc2.zip → @redocly-ajv-npm-8.11.3-90d671b655-da5946f032.zip} +0 -0
- package/.yarn/cache/{@sinclair-typebox-npm-0.34.35-4698edbad1-4b50006c80.zip → @sinclair-typebox-npm-0.34.41-602ecca817-5c04a7f421.zip} +0 -0
- package/.yarn/cache/@so-ric-colorspace-npm-1.1.6-4fa5d728ca-fc3285e5cb.zip +0 -0
- package/.yarn/cache/{@types-babel__generator-npm-7.6.8-61be1197d9-b53c215e90.zip → @types-babel__generator-npm-7.27.0-a5af33547a-f572e67a9a.zip} +0 -0
- package/.yarn/cache/@types-babel__traverse-npm-7.28.0-44a48c1b20-371c5e1b40.zip +0 -0
- package/.yarn/cache/@types-body-parser-npm-1.19.6-363c879d4f-33041e88ea.zip +0 -0
- package/.yarn/cache/@types-content-disposition-npm-0.5.9-0a4389ae4e-d895703c00.zip +0 -0
- package/.yarn/cache/@types-cookies-npm-0.9.1-d956f351a3-512635d55e.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-25a4c16a67.zip +0 -0
- package/.yarn/cache/@types-express-serve-static-core-npm-5.0.7-4a816a369e-74c69797f8.zip +0 -0
- package/.yarn/cache/@types-http-errors-npm-2.0.5-fc57abf6db-a88da66936.zip +0 -0
- package/.yarn/cache/@types-koa-npm-3.0.0-8807854f00-db461810b7.zip +0 -0
- package/.yarn/cache/{@types-lodash-npm-4.17.15-0a7d38c4ec-27b348b597.zip → @types-lodash-npm-4.17.20-d7ed6ac7af-8cd8ad3bd7.zip} +0 -0
- package/.yarn/cache/{@types-node-npm-24.5.2-7697d08520-a497aea88a.zip → @types-node-npm-24.6.2-22876fbd21-8d1e64b37a.zip} +0 -0
- package/.yarn/cache/@types-node-npm-24.7.0-fa253cad8d-db0b77e9b1.zip +0 -0
- package/.yarn/cache/@types-qs-npm-6.14.0-e27d9ca044-1909205514.zip +0 -0
- package/.yarn/cache/@types-semver-npm-7.7.1-1a46d6e2dd-8f09e7e6ca.zip +0 -0
- package/.yarn/cache/{@types-send-npm-0.17.4-9d7c55577f-28320a2aa1.zip → @types-send-npm-0.17.5-5278cc54b0-b68ae8f9ba.zip} +0 -0
- package/.yarn/cache/{@types-serve-static-npm-1.15.7-d4eef0bd1a-c5a7171d56.zip → @types-serve-static-npm-1.15.8-1f955e73b5-c031f870df.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-eslint-plugin-npm-8.44.0-3a3d745bcf-38d0491d96.zip → @typescript-eslint-eslint-plugin-npm-8.45.0-92bb8b7596-6d31dbd335.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.46.0-e6114965b4-415afd894a.zip +0 -0
- package/.yarn/cache/@typescript-eslint-parser-npm-8.45.0-9132cc3400-4f8b7c73ae.zip +0 -0
- package/.yarn/cache/@typescript-eslint-parser-npm-8.46.0-c44629050a-6838fde776.zip +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.45.0-a8f5eebf6e-919c8260da.zip +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.46.0-85a4b9bb9c-de11af23ae.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.45.0-ee984aba27-e45d63a010.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.46.0-fd8edaba78-ed85abd08c.zip +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.45.0-c8d2a74220-91696bbc34.zip +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.46.0-8919c1f746-e78a66a854.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-type-utils-npm-8.44.0-4b4c61deae-513c6d3719.zip → @typescript-eslint-type-utils-npm-8.45.0-7a1226a6e4-81017b3f47.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-type-utils-npm-8.46.0-dbfff922bb-5405b71b91.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.45.0-48b82801f4-889ded2b9b.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.46.0-b013400d3e-0118b0dd59.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.45.0-e7f29f17ac-2fb4e63ad6.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.46.0-0b10d4388a-61053bd0c3.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.45.0-ae9cdb989e-9e675a0da4.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.46.0-a7d3832f43-4e0da60de3.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-visitor-keys-npm-8.38.0-533dcf6a78-a95a535146.zip → @typescript-eslint-visitor-keys-npm-8.45.0-2626ce19ce-8ae7e19c69.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-visitor-keys-npm-8.44.0-131d4d0e8f-09b008b14f.zip → @typescript-eslint-visitor-keys-npm-8.46.0-7d793afea5-37e6145b6a.zip} +0 -0
- package/.yarn/cache/abbrev-npm-3.0.1-a34d600e50-ebd2c149dd.zip +0 -0
- package/.yarn/cache/acorn-npm-8.15.0-0764cf600e-77f2de5051.zip +0 -0
- package/.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-79bef16724.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-6.2.2-f2d6691eb1-9b17ce2c6d.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-6.2.3-6fc7ca2bf5-c49dad7639.zip +0 -0
- package/.yarn/cache/{aproba-npm-2.0.0-8716bcfde6-c2b9a63129.zip → aproba-npm-2.1.0-6cb03e605b-cb0e335ac3.zip} +0 -0
- package/.yarn/cache/async-generator-function-npm-1.0.0-14cf981d13-3d49e7acbe.zip +0 -0
- package/.yarn/cache/babel-jest-npm-30.2.0-c2df62d909-4c7351a366.zip +0 -0
- package/.yarn/cache/babel-plugin-istanbul-npm-7.0.1-4d31ae2722-fe9f865f97.zip +0 -0
- package/.yarn/cache/babel-plugin-jest-hoist-npm-30.2.0-6573d8bab9-360e87a9aa.zip +0 -0
- package/.yarn/cache/{babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-46331111ae.zip → babel-preset-current-node-syntax-npm-1.2.0-a954a29b2b-3608fa671c.zip} +0 -0
- package/.yarn/cache/babel-preset-jest-npm-30.2.0-5a82b08b87-f75e155a8c.zip +0 -0
- package/.yarn/cache/baseline-browser-mapping-npm-2.8.11-ec62cbaabe-2325115f1c.zip +0 -0
- package/.yarn/cache/browserslist-npm-4.26.3-a3d5d315b1-49add06fd7.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001747-f845e7e6c5-b101dc4b13.zip +0 -0
- package/.yarn/cache/{chalk-npm-5.4.1-2f3fe4660a-29df3ffcdf.zip → chalk-npm-5.6.2-ecbd482482-1b2f48f6fb.zip} +0 -0
- package/.yarn/cache/cheerio-npm-1.1.2-b0fb353132-6b654bf5a3.zip +0 -0
- package/.yarn/cache/ci-info-npm-4.3.0-2894137978-01e359032a.zip +0 -0
- package/.yarn/cache/color-convert-npm-3.1.2-eca60588e1-6731d4d4e1.zip +0 -0
- package/.yarn/cache/color-name-npm-2.0.2-7e9a2237f7-58e5fa3853.zip +0 -0
- package/.yarn/cache/color-npm-5.0.2-3558f1a2be-2574e20a8a.zip +0 -0
- package/.yarn/cache/color-string-npm-2.1.2-7ceaab0b60-9f2fdf5a29.zip +0 -0
- package/.yarn/cache/compression-npm-1.8.1-e34a5db404-e7552bfbd7.zip +0 -0
- package/.yarn/cache/core-js-compat-npm-3.45.1-3c70e031ab-a6eb757ccf.zip +0 -0
- package/.yarn/cache/css-select-npm-5.2.2-6385fe3687-ebb6a88446.zip +0 -0
- package/.yarn/cache/{css-what-npm-6.1.0-57f751efbb-c67a3a2d0d.zip → css-what-npm-6.2.2-c497de3935-3c5a53be94.zip} +0 -0
- package/.yarn/cache/{debug-npm-4.4.1-6eab84b9f7-8e2709b214.zip → debug-npm-4.4.3-0105c6123a-9ada3434ea.zip} +0 -0
- package/.yarn/cache/dedent-npm-1.7.0-ec8ff53a59-c902f3e7e8.zip +0 -0
- package/.yarn/cache/dotenv-npm-17.2.3-2f9ab93ea1-f8b78626eb.zip +0 -0
- package/.yarn/cache/{electron-to-chromium-npm-1.5.191-037fcdd360-d5a5ca41bb.zip → electron-to-chromium-npm-1.5.230-2836cdf03c-af1c5b6b7b.zip} +0 -0
- package/.yarn/cache/encoding-sniffer-npm-0.2.1-55db9e1e21-7d74723823.zip +0 -0
- package/.yarn/cache/end-of-stream-npm-1.4.5-8e646acd73-1e0cfa6e7f.zip +0 -0
- package/.yarn/cache/entities-npm-6.0.1-84692dab43-62af130720.zip +0 -0
- package/.yarn/cache/error-ex-npm-1.3.4-c7248e4040-ae3939fd4a.zip +0 -0
- package/.yarn/cache/eslint-scope-npm-8.4.0-8ed12feb40-e8e611701f.zip +0 -0
- package/.yarn/cache/espree-npm-10.4.0-9633b00e55-9b355b32db.zip +0 -0
- package/.yarn/cache/expect-npm-30.2.0-cebe750b6e-cf98ab45ab.zip +0 -0
- package/.yarn/cache/fast-uri-npm-3.1.0-57fa0b3f3c-818b2c96dc.zip +0 -0
- package/.yarn/cache/{fastq-npm-1.19.0-5e2713df98-20457acfb1.zip → fastq-npm-1.19.1-ca0a13ec3f-75679dc226.zip} +0 -0
- package/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-14ca1c9f0a.zip +0 -0
- package/.yarn/cache/{follow-redirects-npm-1.15.9-539785d34c-e3ab42d109.zip → follow-redirects-npm-1.15.11-ae7b2db266-07372fd74b.zip} +0 -0
- package/.yarn/cache/{fs-extra-npm-11.3.0-a6b1b4d5ad-c9fe7b23dd.zip → fs-extra-npm-11.3.2-490a8d09c5-d559545c73.zip} +0 -0
- package/.yarn/cache/generator-function-npm-2.0.1-aed34a724a-eb7e7eb896.zip +0 -0
- package/.yarn/cache/get-intrinsic-npm-1.3.1-2f734f40ec-bb579dda84.zip +0 -0
- package/.yarn/cache/htmlparser2-npm-10.0.0-2301362da5-768870f0e0.zip +0 -0
- package/.yarn/cache/http-cache-semantics-npm-4.2.0-fadacfb3ad-4efd2dfcfe.zip +0 -0
- package/.yarn/cache/ignore-npm-7.0.5-dea34ee430-f134b96a4d.zip +0 -0
- package/.yarn/cache/index-to-position-npm-1.2.0-76254be6df-fb6421c87a.zip +0 -0
- package/.yarn/cache/ip-address-npm-10.0.1-862be6199a-09731acda3.zip +0 -0
- package/.yarn/cache/is-generator-function-npm-1.1.2-d0a84b1a72-cc50fa0103.zip +0 -0
- package/.yarn/cache/is-npm-npm-6.1.0-3dd1685f37-54779c5541.zip +0 -0
- package/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-6773a1d5c7.zip +0 -0
- package/.yarn/cache/{jake-npm-10.9.2-3bf2173aed-3be324708f.zip → jake-npm-10.9.4-970487a1c4-97e48f73f5.zip} +0 -0
- package/.yarn/cache/jest-diff-npm-30.2.0-a9ffaeaf61-1fb9e4fb7d.zip +0 -0
- package/.yarn/cache/{jest-haste-map-npm-30.1.0-8189548adb-bd39053fe1.zip → jest-haste-map-npm-30.2.0-3a29f4d94a-a88be6b0b6.zip} +0 -0
- package/.yarn/cache/jest-matcher-utils-npm-30.2.0-4a694dfac2-f3f1ecf68c.zip +0 -0
- package/.yarn/cache/jest-message-util-npm-30.2.0-65acf2d429-e29ec76e8c.zip +0 -0
- package/.yarn/cache/{jest-mock-npm-30.0.0-1cab834040-4896ba2504.zip → jest-mock-npm-30.2.0-9e4a2da4cb-cde9b56805.zip} +0 -0
- package/.yarn/cache/{jest-util-npm-30.0.5-8940b46e20-44207c4b8c.zip → jest-util-npm-30.2.0-8ebfa9b786-cf2f2fb834.zip} +0 -0
- package/.yarn/cache/{jest-worker-npm-30.1.0-b4a01545e6-cc09d2ce86.zip → jest-worker-npm-30.2.0-4d4aaec97d-9354b0c71c.zip} +0 -0
- package/.yarn/cache/jsonfile-npm-6.2.0-aefb9ffd45-513aac94a6.zip +0 -0
- package/.yarn/cache/jwa-npm-1.4.2-9b996c4b2d-a46c9ddbcc.zip +0 -0
- package/.yarn/cache/jwa-npm-2.0.1-9ebe28a626-b04312a1de.zip +0 -0
- package/.yarn/cache/{long-npm-5.3.1-c44e0933f0-7713e10b4f.zip → long-npm-5.3.2-f80d0f7d39-b6b55ddae5.zip} +0 -0
- package/.yarn/cache/{minipass-fetch-npm-4.0.0-d4e49e0194-4b0772dbee.zip → minipass-fetch-npm-4.0.1-ce1d15e957-7ddfebdbb8.zip} +0 -0
- package/.yarn/cache/minizlib-npm-3.1.0-6680befdba-f47365cc2c.zip +0 -0
- package/.yarn/cache/mock-json-schema-npm-1.1.2-d0bf8a8e0c-d02d8aa908.zip +0 -0
- package/.yarn/cache/{nan-npm-2.22.1-09e9287ac1-3459e7e0b0.zip → nan-npm-2.23.0-b3b2a3ae9b-9822b38418.zip} +0 -0
- package/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-73b5afe597.zip +0 -0
- package/.yarn/cache/node-gyp-npm-11.4.2-75a7da9a3c-de0fdd1a23.zip +0 -0
- package/.yarn/cache/node-rdkafka-npm-3.4.1-cbfb65c8a6-ab51a61428.zip +0 -0
- package/.yarn/cache/node-releases-npm-2.0.21-93f7457975-5344d634b3.zip +0 -0
- package/.yarn/cache/normalize-url-npm-8.1.0-9b4f4e558b-59b765bfe7.zip +0 -0
- package/.yarn/cache/object.entries-npm-1.1.9-32f1b371e0-24163ab1e1.zip +0 -0
- package/.yarn/cache/parse5-npm-7.3.0-b0410074a3-b0e48be20b.zip +0 -0
- package/.yarn/cache/{picomatch-npm-4.0.2-e93516ddf2-ce617b8da3.zip → picomatch-npm-4.0.3-0a647b87cc-57b99055f4.zip} +0 -0
- package/.yarn/cache/portfinder-npm-1.0.38-d6e0c97a97-369155c3e7.zip +0 -0
- package/.yarn/cache/{postcss-npm-8.5.3-37174aa03d-6d7e21a772.zip → postcss-npm-8.5.6-e7f126c6f3-9e4fbe9757.zip} +0 -0
- package/.yarn/cache/pretty-format-npm-30.2.0-2787008ea2-725890d648.zip +0 -0
- package/.yarn/cache/{pump-npm-3.0.2-a8afc6734f-e0c4216874.zip → pump-npm-3.0.3-e7d0c1fbab-52843fc933.zip} +0 -0
- package/.yarn/cache/pupa-npm-3.3.0-00ad2ffe24-05c84c2c76.zip +0 -0
- package/.yarn/cache/{redis-npm-5.8.2-9c493c0c47-a7635cedf2.zip → redis-npm-5.8.3-3369ceaea3-3843f0ad95.zip} +0 -0
- package/.yarn/cache/regenerate-unicode-properties-npm-10.2.2-7d116b2ed9-5041ee3118.zip +0 -0
- package/.yarn/cache/regexpu-core-npm-6.4.0-8966e0bc82-bf5f85a502.zip +0 -0
- package/.yarn/cache/regjsparser-npm-0.13.0-c24f3ebde6-eeaabd3454.zip +0 -0
- package/.yarn/cache/{socks-npm-2.8.4-8194b86bd0-ab3af97aeb.zip → socks-npm-2.8.7-d1d20aae19-d19366c959.zip} +0 -0
- package/.yarn/cache/spdx-license-ids-npm-3.0.22-2b47dea449-a2f214aaf7.zip +0 -0
- package/.yarn/cache/statuses-npm-2.0.2-2d84c63b8c-6927feb50c.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-7.1.2-aa4fadccd9-db0e3f9654.zip +0 -0
- package/.yarn/cache/{strip-json-comments-npm-5.0.1-4a8f1cb37e-b314af70c6.zip → strip-json-comments-npm-5.0.3-5042d1b870-3ccbf26f27.zip} +0 -0
- package/.yarn/cache/strnum-npm-1.1.2-67427480d6-ccd6297a1f.zip +0 -0
- package/.yarn/cache/{supports-color-npm-10.0.0-6cd1bb42a6-0475bf167d.zip → supports-color-npm-10.2.2-e43ac15f9f-bd132705fc.zip} +0 -0
- package/.yarn/cache/{swagger-ui-dist-npm-5.19.0-1a4737b567-d7433e00e5.zip → swagger-ui-dist-npm-5.29.3-403a6cab72-f896364781.zip} +0 -0
- package/.yarn/cache/tar-npm-7.5.1-7b414f7fec-4848cd2fa2.zip +0 -0
- package/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-d72bd826a8.zip +0 -0
- package/.yarn/cache/tmp-npm-0.2.5-e146296d91-dd4b78b323.zip +0 -0
- package/.yarn/cache/{typescript-patch-bcfe2ebaf8-bd810ab13e.zip → typescript-npm-5.9.3-48715be868-c089d9d3da.zip} +0 -0
- package/.yarn/cache/{typescript-npm-5.9.2-d00cd8b149-cc2fe6c822.zip → typescript-patch-6fda4d02cf-696e1b017b.zip} +0 -0
- package/.yarn/cache/undici-npm-7.16.0-f6b1c9157f-2bb71672b2.zip +0 -0
- package/.yarn/cache/{undici-types-npm-7.12.0-af0c725921-4a0f927c98.zip → undici-types-npm-7.13.0-df78d4ea2d-1088ad68dd.zip} +0 -0
- package/.yarn/cache/undici-types-npm-7.14.0-d9eb643e6a-0f8709b214.zip +0 -0
- package/.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.1-0b3c4504a2-a42bebebab.zip +0 -0
- package/.yarn/cache/unicode-property-aliases-ecmascript-npm-2.2.0-55d7728914-0dd0f6e701.zip +0 -0
- package/.yarn/cache/validator-npm-13.15.15-143146ad19-a43d9271c8.zip +0 -0
- package/.yarn/cache/zod-npm-3.25.76-7de26333f8-f0c963ec40.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/{yarn-4.10.1.cjs → yarn-4.10.3.cjs} +126 -126
- package/.yarnrc.yml +1 -1
- package/CHANGELOG.md +12 -0
- package/CLAUDE.md +186 -0
- package/_cc/learn-project.md +74 -0
- package/_cc/specs/story-CSI-1864.md +45 -0
- package/docker-compose.yml +2 -2
- package/modules/api-svc/.env.example +2 -2
- package/modules/api-svc/package.json +10 -10
- package/modules/api-svc/src/ControlAgent/index.js +45 -12
- package/modules/api-svc/src/FSPIOPEventHandler/handlers/bulk-quotes-requested.js +1 -1
- package/modules/api-svc/src/FSPIOPEventHandler/handlers/bulk-transfers-requested.js +1 -1
- package/modules/api-svc/src/FSPIOPEventHandler/handlers/party-info-requested.js +1 -1
- package/modules/api-svc/src/FSPIOPEventHandler/index.js +3 -3
- package/modules/api-svc/src/InboundServer/handlers.js +3 -3
- package/modules/api-svc/src/InboundServer/index.js +6 -6
- package/modules/api-svc/src/InboundServer/middlewares.js +6 -2
- package/modules/api-svc/src/OutboundServer/handlers.js +13 -13
- package/modules/api-svc/src/OutboundServer/index.js +5 -5
- package/modules/api-svc/src/config.js +5 -4
- package/modules/api-svc/src/index.js +251 -196
- package/modules/api-svc/src/lib/cache.js +15 -12
- package/modules/api-svc/src/lib/model/AccountsModel.js +1 -1
- package/modules/api-svc/src/lib/model/Async2SyncModel.js +1 -1
- package/modules/api-svc/src/lib/model/InboundPingModel.js +1 -1
- package/modules/api-svc/src/lib/model/InboundTransfersModel.js +1 -1
- package/modules/api-svc/src/lib/model/OutboundBulkQuotesModel.js +1 -1
- package/modules/api-svc/src/lib/model/OutboundBulkTransfersModel.js +1 -1
- package/modules/api-svc/src/lib/model/OutboundRequestToPayModel.js +1 -1
- package/modules/api-svc/src/lib/model/OutboundRequestToPayTransferModel.js +1 -1
- package/modules/api-svc/src/lib/model/OutboundTransfersModel.js +1 -1
- package/modules/api-svc/src/lib/model/ProxyModel/index.js +2 -2
- package/modules/api-svc/src/lib/utils.js +6 -6
- package/modules/api-svc/test/__mocks__/@mojaloop/sdk-standard-components.js +2 -2
- package/modules/api-svc/test/config/integration-pm4ml.env +2 -2
- package/modules/api-svc/test/config/integration.env +2 -2
- package/modules/api-svc/test/integration-pm4ml/mockServers/managementService/initConfig.js +1 -1
- package/modules/api-svc/test/unit/api/utils.js +7 -7
- package/modules/api-svc/test/unit/config.test.js +3 -3
- package/modules/api-svc/test/unit/data/defaultConfig.json +1 -1
- package/modules/api-svc/test/unit/index.configPolling.test.js +229 -0
- package/modules/api-svc/test/unit/lib/model/InboundPingModel.test.js +4 -4
- package/modules/api-svc/test/unit/lib/model/OutboundTransfersISO20022.test.js +1 -1
- package/modules/api-svc/test/unit/lib/model/data/defaultConfig.json +1 -1
- package/modules/api-svc/test/unit/outboundApi/handlers.test.js +15 -15
- package/modules/outbound-command-event-handler/package.json +9 -9
- package/modules/outbound-domain-event-handler/package.json +7 -7
- package/modules/private-shared-lib/package.json +9 -9
- package/package.json +7 -6
- package/{sbom-v24.11.0.csv → sbom-v24.13.0.csv} +236 -247
- package/.yarn/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-f345152537.zip +0 -0
- package/.yarn/cache/@babel-code-frame-npm-7.26.2-4902b56813-db2c2122af.zip +0 -0
- package/.yarn/cache/@babel-compat-data-npm-7.26.8-fb802c4940-bdddf577f6.zip +0 -0
- package/.yarn/cache/@babel-compat-data-npm-7.27.2-22fa0c7782-eaa9f8aaeb.zip +0 -0
- package/.yarn/cache/@babel-core-npm-7.26.9-12b18cb40d-ceed199dbe.zip +0 -0
- package/.yarn/cache/@babel-core-npm-7.27.4-801e5891a4-28c01186d5.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.26.9-3260f562f4-95075dd615.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.27.1-12737d533a-6101825922.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.27.3-9f345034e6-3b8477ae0c.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.28.0-41b4249958-064c5ba4c0.zip +0 -0
- package/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.25.9-a0f89e14a0-41edda10df.zip +0 -0
- package/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.27.1-5d7897ae67-3f8e4d5914.zip +0 -0
- package/.yarn/cache/@babel-helper-compilation-targets-npm-7.26.5-e3b4215b3c-f3b5f0bfcd.zip +0 -0
- package/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.27.1-65d3087eb1-701579b490.zip +0 -0
- package/.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.26.3-834c0b262a-4c44122ea1.zip +0 -0
- package/.yarn/cache/@babel-helper-module-imports-npm-7.25.9-b86e31bde9-e090be5dee.zip +0 -0
- package/.yarn/cache/@babel-helper-module-transforms-npm-7.26.0-7557a3558f-9841d2a62f.zip +0 -0
- package/.yarn/cache/@babel-helper-module-transforms-npm-7.27.1-d289bdccc6-415509a585.zip +0 -0
- package/.yarn/cache/@babel-helper-module-transforms-npm-7.27.3-90dc30d3d9-47abc90ceb.zip +0 -0
- package/.yarn/cache/@babel-helper-plugin-utils-npm-7.26.5-f9c17c9880-1cc0fd8514.zip +0 -0
- package/.yarn/cache/@babel-helper-string-parser-npm-7.25.9-eade578078-c28656c52b.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.25.9-2634b947a4-3f9b649be0.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-option-npm-7.25.9-6450027d5d-9491b27559.zip +0 -0
- package/.yarn/cache/@babel-helpers-npm-7.26.10-4eb1d94ec4-6641462579.zip +0 -0
- package/.yarn/cache/@babel-helpers-npm-7.27.4-ba8f87a40e-a697280575.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.26.9-5be13f2551-cb84fe3ba5.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.27.2-70cd61f3e6-133b4ccfbc.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.27.3-3085b3fa96-ea5a0cd55e.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.27.4-c8d264780c-5ff6db87fd.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.28.0-d5c2974608-2c14a0d260.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.28.3-8acaa30019-9fa08282e3.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-c122aa5771.zip +0 -0
- package/.yarn/cache/@babel-plugin-transform-regenerator-npm-7.28.3-36bb1b5a59-f95e929d41.zip +0 -0
- package/.yarn/cache/@babel-template-npm-7.26.9-6339558068-240288ceba.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.26.9-5dc40fea71-c16a79522e.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.27.1-cdef168378-9977271aa4.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.27.3-340ab882dc-caccdb8335.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.27.4-fe457ebf1b-4debb80b90.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.28.0-66b3390b4e-c1c24b12b6.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.28.3-7786c501c7-fe521591b7.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.26.9-ef3f43c2d5-11b62ea7ed.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.27.1-2a01e9d02f-81f8ada28c.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.27.3-7b6a22808d-a24e6accd8.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.28.2-9db4224804-a8de404a2e.zip +0 -0
- package/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.1-c83a271e90-ae92a11412.zip +0 -0
- package/.yarn/cache/@eslint-community-eslint-utils-npm-4.7.0-47503bfa2a-43ed5d3915.zip +0 -0
- package/.yarn/cache/@eslint-compat-npm-1.3.2-b403da4a15-e710ec5ed8.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.12.0-38bccca4dd-ee8a2c65ee.zip +0 -0
- package/.yarn/cache/@grpc-grpc-js-npm-1.13.4-4aa5cd2dfd-f1eb910ff7.zip +0 -0
- package/.yarn/cache/@grpc-proto-loader-npm-0.7.13-be5b6af1c1-7e2d842c20.zip +0 -0
- package/.yarn/cache/@hapi-teamwork-npm-6.0.0-0f3d56734c-e79c8e590e.zip +0 -0
- package/.yarn/cache/@hapi-tlds-npm-1.1.2-80b5f7031d-339761cd1a.zip +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-eb457f6995.zip +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.4.2-78a05c1b69-8910c4cdf8.zip +0 -0
- package/.yarn/cache/@ioredis-commands-npm-1.3.0-c1ff038fb4-203029f09d.zip +0 -0
- package/.yarn/cache/@jest-get-type-npm-30.0.0-db16e5ad7d-6dc432caac.zip +0 -0
- package/.yarn/cache/@jest-pattern-npm-30.0.0-8f812d915e-4c21a48b1d.zip +0 -0
- package/.yarn/cache/@jest-schemas-npm-30.0.0-7943bf35b9-b97944e582.zip +0 -0
- package/.yarn/cache/@jest-transform-npm-30.1.2-14cfbd16d5-aec6c6a46f.zip +0 -0
- package/.yarn/cache/@jest-types-npm-30.0.0-ee47462915-647481170c.zip +0 -0
- package/.yarn/cache/@jest-types-npm-30.0.5-0475c9b283-6bf18f4e89.zip +0 -0
- package/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.8-647be6e286-9d3a56ab36.zip +0 -0
- package/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip +0 -0
- package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip +0 -0
- package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip +0 -0
- package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.29-6702d36c67-64e1ce0dc3.zip +0 -0
- package/.yarn/cache/@mojaloop-logging-bc-public-types-lib-npm-0.5.4-03ab70ac75-0d35363d3c.zip +0 -0
- package/.yarn/cache/@mojaloop-ml-number-npm-11.3.0-9858cadff5-8435794709.zip +0 -0
- package/.yarn/cache/@redocly-config-npm-0.20.3-701daa5910-dd9501c96d.zip +0 -0
- package/.yarn/cache/@redocly-openapi-core-npm-1.31.1-fb4096a34f-771e68ef15.zip +0 -0
- package/.yarn/cache/@redocly-openapi-core-npm-1.34.3-10568e0790-b70a92135e.zip +0 -0
- package/.yarn/cache/@types-babel__traverse-npm-7.20.6-fac4243243-63d13a3789.zip +0 -0
- package/.yarn/cache/@types-body-parser-npm-1.19.5-97fb106976-1e251118c4.zip +0 -0
- package/.yarn/cache/@types-content-disposition-npm-0.5.8-0074adf6a1-eeea868fb5.zip +0 -0
- package/.yarn/cache/@types-cookies-npm-0.9.0-a3671b5a75-88d2106834.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-9d35d47509.zip +0 -0
- package/.yarn/cache/@types-express-npm-5.0.0-a645691cd5-45b199ab66.zip +0 -0
- package/.yarn/cache/@types-express-serve-static-core-npm-5.0.6-e41caf262c-9dc51bdee7.zip +0 -0
- package/.yarn/cache/@types-http-errors-npm-2.0.4-8b39ca5d7c-1f3d7c3b32.zip +0 -0
- package/.yarn/cache/@types-node-npm-22.13.5-4c5912eee2-a69ec8dba3.zip +0 -0
- package/.yarn/cache/@types-qs-npm-6.9.18-125db28c30-152fab96ef.zip +0 -0
- package/.yarn/cache/@types-semver-npm-7.5.8-26073743d7-3496808818.zip +0 -0
- package/.yarn/cache/@typescript-eslint-parser-npm-8.44.0-9be86aa2f8-8c7ddabf46.zip +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.38.0-b50ac59922-fe21604603.zip +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.44.0-3208cc873e-400b4981e6.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.38.0-64859efac1-0809a4135a.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.44.0-02a051c9d1-5dae4a8386.zip +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.38.0-79457d6001-e1c80d2a4b.zip +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.44.0-de2d92d917-c8535d481d.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.38.0-1cd62840a5-87ac2d199e.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.44.0-89c4325651-9e28c95feb.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.38.0-b39ddf47a4-4ff14184a9.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.44.0-122f9245db-e2e579b15c.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.38.0-4fe3006f47-5be4936796.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.44.0-fc612e2915-436e21e3d0.zip +0 -0
- package/.yarn/cache/abbrev-npm-3.0.0-946682a7b1-2ceee14efd.zip +0 -0
- package/.yarn/cache/acorn-npm-8.14.0-dc46f61424-6df29c3555.zip +0 -0
- package/.yarn/cache/agent-base-npm-7.1.3-b2c16e72fb-3db6d8d465.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-6.1.0-abe011aae4-495834a53b.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-70fdf883b7.zip +0 -0
- package/.yarn/cache/async-npm-2.6.4-3155e80151-df8e52817d.zip +0 -0
- package/.yarn/cache/babel-jest-npm-30.1.2-2d68b3440b-9697119fe4.zip +0 -0
- package/.yarn/cache/babel-plugin-istanbul-npm-7.0.0-924905ff8c-4df567f291.zip +0 -0
- package/.yarn/cache/babel-plugin-jest-hoist-npm-30.0.1-be1f25b566-4d8d0eb372.zip +0 -0
- package/.yarn/cache/babel-preset-jest-npm-30.0.1-0b8ffd2c88-fa37b0fa11.zip +0 -0
- package/.yarn/cache/browserslist-npm-4.24.4-2fdeb5face-11fda105e8.zip +0 -0
- package/.yarn/cache/browserslist-npm-4.25.1-7df10d33cd-bfb5511b42.zip +0 -0
- package/.yarn/cache/call-bound-npm-1.0.3-f4cbf26326-c39a8245f6.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001700-af88646d2b-9203ed502f.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001727-5eb19a192b-6155a41413.zip +0 -0
- package/.yarn/cache/cheerio-npm-1.0.0-837785b57b-b535070add.zip +0 -0
- package/.yarn/cache/ci-info-npm-4.2.0-5451b2fa90-928d8457f3.zip +0 -0
- package/.yarn/cache/color-npm-3.2.1-568cf1014f-bf70438e01.zip +0 -0
- package/.yarn/cache/color-string-npm-1.9.1-dc020e56be-72aa0b81ee.zip +0 -0
- package/.yarn/cache/colorspace-npm-1.1.4-f01655548a-bb3934ef3c.zip +0 -0
- package/.yarn/cache/compression-npm-1.8.0-5088616544-ca213b9bd0.zip +0 -0
- package/.yarn/cache/core-js-compat-npm-3.44.0-840288badd-41885423aa.zip +0 -0
- package/.yarn/cache/css-select-npm-5.1.0-9365a79de5-d486b1e7eb.zip +0 -0
- package/.yarn/cache/debug-npm-4.4.0-f6efe76023-1847944c2e.zip +0 -0
- package/.yarn/cache/dedent-npm-1.5.3-123726df15-e5277f6268.zip +0 -0
- package/.yarn/cache/electron-to-chromium-npm-1.5.104-d9177e3237-ad580610ec.zip +0 -0
- package/.yarn/cache/encoding-sniffer-npm-0.2.0-7e717bfa93-fe61a759db.zip +0 -0
- package/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip +0 -0
- package/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-d547740aa2.zip +0 -0
- package/.yarn/cache/es-abstract-npm-1.23.9-65d488dcce-31a321966d.zip +0 -0
- package/.yarn/cache/eslint-scope-npm-8.2.0-d74e314c9e-cd9ab60d5a.zip +0 -0
- package/.yarn/cache/eslint-visitor-keys-npm-4.2.0-a591434af3-9651b3356b.zip +0 -0
- package/.yarn/cache/espree-npm-10.3.0-e5b10052f5-3412d44d42.zip +0 -0
- package/.yarn/cache/expect-npm-30.0.0-c4f29cc906-2ad7d2a3cd.zip +0 -0
- package/.yarn/cache/fast-uri-npm-3.0.6-140ab22003-43c87cd039.zip +0 -0
- package/.yarn/cache/get-intrinsic-npm-1.3.0-35558f27b6-6e9dd920ff.zip +0 -0
- package/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.zip +0 -0
- package/.yarn/cache/htmlparser2-npm-9.1.0-5ef8394060-6352fa2a54.zip +0 -0
- package/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-362d5ed66b.zip +0 -0
- package/.yarn/cache/ignore-npm-7.0.4-e6d7361b35-01ee59df2f.zip +0 -0
- package/.yarn/cache/index-to-position-npm-1.1.0-3704651970-16703893c7.zip +0 -0
- package/.yarn/cache/ip-address-npm-9.0.5-9fa024d42a-1ed81e0672.zip +0 -0
- package/.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-81a78d518e.zip +0 -0
- package/.yarn/cache/is-generator-function-npm-1.1.0-e96e2ba973-5906ff51a8.zip +0 -0
- package/.yarn/cache/is-npm-npm-6.0.0-d8d9039032-fafe1ddc77.zip +0 -0
- package/.yarn/cache/istanbul-reports-npm-3.1.7-356486c0f4-f1faaa4684.zip +0 -0
- package/.yarn/cache/jest-diff-npm-30.0.0-3d7984567d-e17d8b5e66.zip +0 -0
- package/.yarn/cache/jest-matcher-utils-npm-30.0.0-df3cb56c58-3aa46a7d38.zip +0 -0
- package/.yarn/cache/jest-message-util-npm-30.0.0-3d72ccf669-d2585d8712.zip +0 -0
- package/.yarn/cache/jest-regex-util-npm-30.0.0-b67c1fc2bc-aa4449a029.zip +0 -0
- package/.yarn/cache/jest-util-npm-30.0.0-de14658072-55171f9010.zip +0 -0
- package/.yarn/cache/jsbn-npm-1.1.0-1da0181838-bebe7ae829.zip +0 -0
- package/.yarn/cache/jsesc-npm-3.0.2-3b3b74ec0d-8e5a7de6b7.zip +0 -0
- package/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-03014769e7.zip +0 -0
- package/.yarn/cache/jwa-npm-1.4.1-4f19d6572c-0bc002b71d.zip +0 -0
- package/.yarn/cache/jwa-npm-2.0.0-52a7c3f1ca-ab983f6685.zip +0 -0
- package/.yarn/cache/mime-db-npm-1.53.0-14fcdba2be-82409c568a.zip +0 -0
- package/.yarn/cache/minizlib-npm-3.0.1-4bdabd978f-622cb85f51.zip +0 -0
- package/.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip +0 -0
- package/.yarn/cache/mkdirp-npm-3.0.1-f94bfa769e-16fd79c286.zip +0 -0
- package/.yarn/cache/mock-json-schema-npm-1.1.1-0c1db4d1d1-3a45b85acd.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.8-d22226208b-2d1766606c.zip +0 -0
- package/.yarn/cache/node-gyp-npm-11.1.0-bd7044e197-3314ebfeb9.zip +0 -0
- package/.yarn/cache/node-releases-npm-2.0.19-b123ed6240-c2b33b4f0c.zip +0 -0
- package/.yarn/cache/normalize-url-npm-8.0.1-c87adbf3f1-ae39203758.zip +0 -0
- package/.yarn/cache/object.entries-npm-1.1.8-386f7451b8-2301918fbd.zip +0 -0
- package/.yarn/cache/openapi-typescript-npm-7.8.0-7faf1e0691-9f0b55a91f.zip +0 -0
- package/.yarn/cache/parse5-npm-7.2.1-c48f333f28-fd1a8ad154.zip +0 -0
- package/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-d02dda76f4.zip +0 -0
- package/.yarn/cache/portfinder-npm-1.0.32-20cc84ebcf-842058052f.zip +0 -0
- package/.yarn/cache/pretty-format-npm-30.0.0-d8f817d24c-3a02da797b.zip +0 -0
- package/.yarn/cache/protobufjs-npm-7.4.0-12c56a3adc-4084235066.zip +0 -0
- package/.yarn/cache/pupa-npm-3.1.0-8d0c9815fb-32784254b7.zip +0 -0
- package/.yarn/cache/regenerate-unicode-properties-npm-10.2.0-3d662e6e17-9150eae6fe.zip +0 -0
- package/.yarn/cache/regexpu-core-npm-6.2.0-56e98c3a61-4d054ffcd9.zip +0 -0
- package/.yarn/cache/regjsparser-npm-0.12.0-9d000fca30-c2d6506b33.zip +0 -0
- package/.yarn/cache/rimraf-npm-5.0.10-d0c6647697-f3b8ce81ee.zip +0 -0
- package/.yarn/cache/semver-npm-7.7.1-4572475307-4cfa1eb91e.zip +0 -0
- package/.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-c6dffff17a.zip +0 -0
- package/.yarn/cache/spdx-license-ids-npm-3.0.21-12f9261e85-17a033b4c3.zip +0 -0
- package/.yarn/cache/sprintf-js-npm-1.1.3-b99efd75b2-e7587128c4.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-7.1.0-7453b80b79-475f53e9c4.zip +0 -0
- package/.yarn/cache/strnum-npm-1.1.1-67836fb7cf-5542ef16fd.zip +0 -0
- package/.yarn/cache/supports-color-npm-10.1.0-48517f80a7-28d191c4ad.zip +0 -0
- package/.yarn/cache/tar-npm-7.4.3-1dbbd1ffc3-12a2a4fc6d.zip +0 -0
- package/.yarn/cache/tmp-npm-0.2.3-ac2a701365-7b13696787.zip +0 -0
- package/.yarn/cache/type-fest-npm-4.40.0-18c72d1d94-dbca20979d.zip +0 -0
- package/.yarn/cache/undici-npm-6.21.3-28d9334837-b6b8f4a90e.zip +0 -0
- package/.yarn/cache/undici-types-npm-6.20.0-bd21e669af-583ac7bbf4.zip +0 -0
- package/.yarn/cache/unicode-match-property-value-ecmascript-npm-2.2.0-011b10a684-9fd53c657a.zip +0 -0
- package/.yarn/cache/unicode-property-aliases-ecmascript-npm-2.1.0-46779595f4-2435244318.zip +0 -0
- package/.yarn/cache/update-browserslist-db-npm-1.1.2-59b122fef6-e7bf8221df.zip +0 -0
- package/.yarn/cache/validator-npm-13.15.0-b048a51909-cc4435e37a.zip +0 -0
- package/.yarn/cache/which-typed-array-npm-1.1.18-23d1112113-11eed801b2.zip +0 -0
- package/.yarn/cache/yaml-npm-2.7.0-bb348b356b-c8c314c62f.zip +0 -0
- package/.yarn/cache/zod-npm-3.24.2-ab80dc0969-604c62a8cf.zip +0 -0
package/.yarnrc.yml
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
# Changelog: [mojaloop/sdk-scheme-adapter](https://github.com/mojaloop/sdk-scheme-adapter)
|
|
2
|
+
## [24.13.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.12.0...v24.13.0) (2025-10-06)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **csi-1665:** improved logging ([#616](https://github.com/mojaloop/sdk-scheme-adapter/issues/616)) ([b8cae73](https://github.com/mojaloop/sdk-scheme-adapter/commit/b8cae734c71f5e94fef53cd0da1953042750bf54))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Chore
|
|
11
|
+
|
|
12
|
+
* **sbom:** update sbom [skip ci] ([4cc79d0](https://github.com/mojaloop/sdk-scheme-adapter/commit/4cc79d0093732849ab25ba6d9357ce079347ab95))
|
|
13
|
+
|
|
2
14
|
## [24.12.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v24.11.0...v24.12.0) (2025-09-22)
|
|
3
15
|
|
|
4
16
|
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
This is the Mojaloop SDK Scheme Adapter - a monorepo that provides an adapter interface between Mojaloop API compliant switches and DFSP backend platforms.
|
|
8
|
+
The project consists of multiple modules organized using Nx workspace.
|
|
9
|
+
|
|
10
|
+
## Quick Reference (Start Here)
|
|
11
|
+
|
|
12
|
+
| Task | Command | Prerequisites |
|
|
13
|
+
|------|---------|---------------|
|
|
14
|
+
| Run all tests | `yarn test` | - |
|
|
15
|
+
| Run integration tests | `yarn test:integration` | Docker running, `yarn wait-4-docker` |
|
|
16
|
+
| Run specific module test | `yarn workspace @mojaloop/sdk-scheme-adapter-api-svc run test:unit` | - |
|
|
17
|
+
| Build everything | `yarn build` | Node 22.15.1 (`nvm use`) |
|
|
18
|
+
| Start services | `yarn start` | Docker running, modules built |
|
|
19
|
+
| Update OpenAPI | `yarn build:openapi && yarn validate:api` | - |
|
|
20
|
+
| Debug main service | `yarn workspace @mojaloop/sdk-scheme-adapter-api-svc run start:debug` | Port 9229 available |
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
**Critical File Locations:**
|
|
24
|
+
- Models: `modules/api-svc/src/lib/model/`
|
|
25
|
+
- Handlers: `modules/api-svc/src/{Inbound,Outbound}Server/handlers.js`
|
|
26
|
+
- Config: `modules/*/src/config/default.json`
|
|
27
|
+
- OpenAPI templates: `modules/*/src/*_template.yaml` (edit these, not `api.yaml`)
|
|
28
|
+
|
|
29
|
+
## Architecture
|
|
30
|
+
This service can be referenced as `Mojaloop Connector`, `ML Connector` or `Scheme Adapter`.
|
|
31
|
+
|
|
32
|
+
### Core Modules
|
|
33
|
+
|
|
34
|
+
- **api-svc**: Main service module (JavaScript/Node.js) handling inbound/outbound HTTP APIs and core business logic
|
|
35
|
+
- **outbound-command-event-handler**: TypeScript module handling outbound command events using domain-driven design
|
|
36
|
+
- **outbound-domain-event-handler**: TypeScript module processing domain events for outbound operations
|
|
37
|
+
- **private-shared-lib**: Shared TypeScript library containing domain entities, events, and infrastructure code
|
|
38
|
+
|
|
39
|
+
### Key Components
|
|
40
|
+
|
|
41
|
+
- **Event-Driven Architecture**: Uses Kafka for event streaming between modules
|
|
42
|
+
- **State Machines**: JavaScript State Machine library for managing transfer states
|
|
43
|
+
- **Cache Layer**: Redis for distributed caching and session management
|
|
44
|
+
- **Models**: Domain models for transfers, quotes, parties, bulk operations
|
|
45
|
+
- **Event Handlers**: FSPIOP and Backend event handling for Mojaloop protocol compliance
|
|
46
|
+
- **ControlAgent**: WebSocket client for PM4ML Management API with optional failsafe polling
|
|
47
|
+
|
|
48
|
+
## Code Structure Patterns
|
|
49
|
+
|
|
50
|
+
### API Service (modules/api-svc)
|
|
51
|
+
- **Handlers**: Route handlers in `src/InboundServer/handlers.js` and `src/OutboundServer/handlers.js`
|
|
52
|
+
- **Models**: Business logic in `src/lib/model/` with models like:
|
|
53
|
+
- `TransfersModel.js` - Transfer operations
|
|
54
|
+
- `QuotesModel.js` - Quote handling
|
|
55
|
+
- `AccountsModel.js` - Account management
|
|
56
|
+
- `InboundTransfersModel.js` - Inbound transfer processing
|
|
57
|
+
- `OutboundTransfersModel.js` - Outbound transfer processing
|
|
58
|
+
- `OutboundBulkQuotesModel.js` - Bulk quote operations
|
|
59
|
+
- `OutboundBulkTransfersModel.js` - Bulk transfer operations
|
|
60
|
+
- **State Machines**: Use `PersistentStateMachine` for managing complex state transitions
|
|
61
|
+
- **Middleware**: Validation and error handling middleware in `middlewares.js`
|
|
62
|
+
- **OpenAPI Templates**: API definitions in `api_template.yaml` files, compiled to `api.yaml`
|
|
63
|
+
|
|
64
|
+
### Event Handlers (TypeScript modules)
|
|
65
|
+
- **Domain Layer**: Aggregates and entities in `src/domain/`
|
|
66
|
+
- **Application Layer**: Event handlers in `src/application/handlers/`
|
|
67
|
+
- **Infrastructure**: Kafka producers/consumers in shared lib
|
|
68
|
+
- **API Server**: Express-based APIs with OpenAPI specs
|
|
69
|
+
- **Build Process**: TypeScript compilation + file copying (YAML files)
|
|
70
|
+
|
|
71
|
+
### Testing Patterns
|
|
72
|
+
- **Unit tests**: `test/unit/` directories using Jest
|
|
73
|
+
- **Integration tests**: `test/integration/` requiring Docker services
|
|
74
|
+
- **Functional tests**: Separate test suites in `test/func_bulk/` and `test/func_iso20022/`
|
|
75
|
+
- **Mocks**: Test mocks in `test/__mocks__/`
|
|
76
|
+
- **Setup**: Test setup files like `test/unit/setup.js`
|
|
77
|
+
- **Configuration**: Jest config in individual `jest.config.js` files
|
|
78
|
+
|
|
79
|
+
## Development Commands
|
|
80
|
+
Check **[development-commands.md](./_cc/docs/development-commands.md)** file to get details about some useful commands to
|
|
81
|
+
build and setup the project, start the services, run tests, linting, deps and audit checks, etc.
|
|
82
|
+
|
|
83
|
+
## Key Libraries & Dependencies
|
|
84
|
+
|
|
85
|
+
- **@mojaloop/sdk-standard-components**: Core Mojaloop SDK components
|
|
86
|
+
- **@mojaloop/central-services-***: Mojaloop platform services
|
|
87
|
+
- **@mojaloop/api-snippets**: API specification components
|
|
88
|
+
- **javascript-state-machine**: State management for transfers
|
|
89
|
+
- **redis**: Distributed caching (v5.x)
|
|
90
|
+
- **express/koa**: HTTP servers (Express for newer modules, Koa for some services)
|
|
91
|
+
- **ajv**: JSON schema validation
|
|
92
|
+
- **convict**: Configuration management in TypeScript modules
|
|
93
|
+
- **openapi-backend**: OpenAPI request validation and routing
|
|
94
|
+
- **Package Manager**: Yarn 4.10.2 (Berry)
|
|
95
|
+
|
|
96
|
+
## Docker Environment
|
|
97
|
+
|
|
98
|
+
See [development-commands.md](./_cc/docs/development-commands.md#docker-operations) for Docker commands.
|
|
99
|
+
|
|
100
|
+
**Services:** redis (6379), kafka (9092), ml-testing-toolkit (4040/5050), mojaloop-testing-toolkit-ui (6060)
|
|
101
|
+
**Debug profile adds:** redisinsight (9001), kafka-debug-ui (9080)
|
|
102
|
+
**Main service ports:** 4000-4004, 9229 (debugger)
|
|
103
|
+
|
|
104
|
+
## Development Patterns & Notes
|
|
105
|
+
|
|
106
|
+
### Module Architecture
|
|
107
|
+
- **api-svc**: JavaScript-based, legacy module with core functionality
|
|
108
|
+
- **Shared lib**: Private workspace package for cross-module code
|
|
109
|
+
|
|
110
|
+
### Event Sourcing
|
|
111
|
+
Commands → `outbound-command-event-handler` → Domain events → `outbound-domain-event-handler`
|
|
112
|
+
**Kafka topics:** `topic-sdk-outbound-command-events`, `topic-sdk-outbound-domain-events`
|
|
113
|
+
|
|
114
|
+
### State Management
|
|
115
|
+
**Redis:** State machine persistence, distributed cache, cross-module communication, bulk transaction tracking
|
|
116
|
+
**Pattern:** `PersistentStateMachine` class for complex state transitions
|
|
117
|
+
|
|
118
|
+
### OpenAPI Workflow
|
|
119
|
+
1. Edit `*_template.yaml` files (not generated `api.yaml`)
|
|
120
|
+
2. Run `yarn build:openapi` to compile templates
|
|
121
|
+
3. Validate with `yarn validate:api`
|
|
122
|
+
4. Uses `@redocly/openapi-cli` for bundling
|
|
123
|
+
|
|
124
|
+
### Testing Workflow
|
|
125
|
+
1. **Unit tests**: Run locally without dependencies
|
|
126
|
+
2. **Integration tests**: Require Docker services (Redis, Kafka)
|
|
127
|
+
3. **Functional tests**: Full end-to-end scenarios with TTK
|
|
128
|
+
4. Use `yarn wait-4-docker` to ensure services are ready
|
|
129
|
+
|
|
130
|
+
## Common Development Tasks
|
|
131
|
+
|
|
132
|
+
See [development-commands.md](./_cc/docs/development-commands.md) for all commands and [common-workflows.md](./_cc/docs/common-workflows.md) for step-by-step guides.
|
|
133
|
+
|
|
134
|
+
## For AI Assistants (Memory Management Hints)
|
|
135
|
+
|
|
136
|
+
**Always Re-read Before:**
|
|
137
|
+
- Modifying OpenAPI specs → Review OpenAPI Workflow section first
|
|
138
|
+
- Running integration tests → Verify Docker prerequisites and Testing Workflow
|
|
139
|
+
- Making state machine changes → Review api-svc-06-state-management.md
|
|
140
|
+
- Debugging test failures → Check development-commands.md for troubleshooting
|
|
141
|
+
|
|
142
|
+
**Cache (Low Change Frequency):**
|
|
143
|
+
- Architecture: 3 TypeScript modules (command-handler, domain-handler, shared-lib) + api-svc (JavaScript)
|
|
144
|
+
- Event flow: Command events → outbound-command-event-handler → Domain events → outbound-domain-event-handler
|
|
145
|
+
- Redis patterns: State machines, distributed cache, pub/sub, bulk transaction tracking
|
|
146
|
+
- Kafka topics: `topic-sdk-outbound-command-events`, `topic-sdk-outbound-domain-events`
|
|
147
|
+
- Package manager: Yarn 4.10.2 (Berry)
|
|
148
|
+
- Node version: 22.15.1
|
|
149
|
+
|
|
150
|
+
**Key Patterns to Remember:**
|
|
151
|
+
- Edit `*_template.yaml` files, NEVER edit generated `api.yaml` files
|
|
152
|
+
- State machines use `PersistentStateMachine` class backed by Redis
|
|
153
|
+
- Integration tests require Docker services - use `yarn wait-4-docker`
|
|
154
|
+
- Use workspace syntax: `yarn workspace @mojaloop/sdk-scheme-adapter-<module> run <command>`
|
|
155
|
+
- Nx caching enabled for builds/tests - use `--skip-nx-cache` to bypass
|
|
156
|
+
|
|
157
|
+
**When Uncertain:**
|
|
158
|
+
- Ask user ANY clarifying questions
|
|
159
|
+
- Check Quick Reference section at top of this file
|
|
160
|
+
- Consult api-svc-01-overview.md for 30-minute onboarding
|
|
161
|
+
- Use development-commands.md for command reference
|
|
162
|
+
- See common-workflows.md for step-by-step task guides
|
|
163
|
+
|
|
164
|
+
## Documentation
|
|
165
|
+
|
|
166
|
+
### API-SVC Module Documentation
|
|
167
|
+
|
|
168
|
+
Comprehensive documentation for the `api-svc` module (core service handling inbound/outbound APIs):
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
| Document | Description |
|
|
172
|
+
|----------|-------------|
|
|
173
|
+
| **[api-svc-01-overview.md](./_cc/docs/api-svc/api-svc-01-overview.md)** | Overview, quick start guide, 30-minute onboarding with core concepts and transfer flows |
|
|
174
|
+
| **[api-svc-02-architecture.md](./_cc/docs/api-svc/api-svc-02-architecture.md)** | System architecture, component design, configuration system, startup sequence |
|
|
175
|
+
| **[api-svc-03-inbound-server.md](./_cc/docs/api-svc/api-svc-03-inbound-server.md)** | Inbound server handling async FSPIOP callbacks from Mojaloop switch |
|
|
176
|
+
| **[api-svc-04-outbound-server.md](./_cc/docs/api-svc/api-svc-04-outbound-server.md)** | Outbound server providing synchronous REST API for DFSP backends |
|
|
177
|
+
| **[api-svc-05-models.md](./_cc/docs/api-svc/api-svc-05-models.md)** | Business logic models orchestrating party lookups, quotes, transfers, bulk operations |
|
|
178
|
+
| **[api-svc-06-state-management.md](./_cc/docs/api-svc/api-svc-06-state-management.md)** | Redis-backed state machines, pub/sub patterns, key patterns, recovery behavior |
|
|
179
|
+
| **[api-svc-07-control-agent.md](./_cc/docs/api-svc/api-svc-07-control-agent.md)** | WebSocket client for PM4ML Management API dynamic configuration |
|
|
180
|
+
| **[api-svc-08-error-handling.md](./_cc/docs/api-svc/api-svc-08-error-handling.md)** | Error taxonomy, Mojaloop error codes, handling patterns, logging strategies |
|
|
181
|
+
| **[api-svc-09-core-dependencies.md](./_cc/docs/api-svc/api-svc-09-core-dependencies.md)** | Core dependencies including @mojaloop/sdk-standard-components, JWS, ILP, OIDC |
|
|
182
|
+
| **[api-svc-10-service-lifecycle.md](./_cc/docs/api-svc/api-svc-10-service-lifecycle.md)** | Service startup/shutdown sequences, component bootstrap order, configuration sources, hot reload |
|
|
183
|
+
| **[api-svc-11-event-handlers.md](./_cc/docs/api-svc/api-svc-11-event-handlers.md)** | Kafka event handlers for domain/command events integration with TypeScript modules |
|
|
184
|
+
| **[api-svc-12-testing.md](./_cc/docs/api-svc/api-svc-12-testing.md)** | Testing strategy covering unit, integration, and functional tests |
|
|
185
|
+
| **[api-svc-13-deployment.md](./_cc/docs/api-svc/api-svc-13-deployment.md)** | Kubernetes deployment with Helm charts, production configuration, monitoring |
|
|
186
|
+
| **[api-svc-14-examples.md](./_cc/docs/api-svc/api-svc-14-examples.md)** | Practical examples: outbound/inbound transfers, error handling, bulk operations, auto-accept |
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
You are a senior backend engineer mentoring interns/junior JS developers. Your task is to study this repository
|
|
2
|
+
(it also cn be found by link: https://github.com/mojaloop/sdk-scheme-adapter)
|
|
3
|
+
|
|
4
|
+
Target branch: `main`; if multiple active branches or major forks exist, compare and note differences)
|
|
5
|
+
|
|
6
|
+
## Mission
|
|
7
|
+
1) Understand and explain Business Logic and Architecture.
|
|
8
|
+
2) Produce accurate, implementation-level notes (no hand-waving).
|
|
9
|
+
3) Save all findings as Markdown files in `./_cc/docs` folder suitable for onboarding juniors.
|
|
10
|
+
4) Prefer concise, example-driven explanations with TypeScript/JavaScript snippets and Mermaid diagrams.
|
|
11
|
+
5) Link all new files in `CLAUDE.md` with really brief explanation what each file is about.
|
|
12
|
+
|
|
13
|
+
## Critical Focus Areas (business logic, architecture, and main implementation details)
|
|
14
|
+
- Inbound server (FSPIOP / ISO 20022 formats)
|
|
15
|
+
- Outbound server (Mojaloop SDK Outbound Scheme Adapter API)
|
|
16
|
+
- Request state management (Redis usage, keys, TTLs, state-machine/lifecycle)
|
|
17
|
+
- ControlAgent (WebSocket agent) integration with PM4ML management API:
|
|
18
|
+
https://github.com/pm4ml/mojaloop-payment-manager-management-api
|
|
19
|
+
- Mojaloop SDK Backend API (interactions with core connectors and DFSP backend systems)
|
|
20
|
+
|
|
21
|
+
## Deliverables (Markdown in ./_cc/docs)
|
|
22
|
+
Create separate files (add more if helpful):
|
|
23
|
+
- High-level overview + quickstart. Who uses this service, how it fits Mojaloop hub DFSP workflows.
|
|
24
|
+
- System context, containers/components, runtime topology, configs/env. Include:
|
|
25
|
+
- Sequence diagrams (PlantUML) for key flows (e.g., Payer DFSP -> Inbound -> Backend -> Outbound -> Switch -> callback).
|
|
26
|
+
- Inbound Server: Purpose, routes, request/response schemas, auth/security, validation, error handling, retry/backoff, logging/tracing.
|
|
27
|
+
- Outbound Server: Outbound API surface, happy-path + failure flows, idempotency, correlation IDs, callback handling.
|
|
28
|
+
- Request State Management (using Redis):
|
|
29
|
+
- Keys, value shapes, expirations, pub/sub usage (if any), transactionality.
|
|
30
|
+
- State machine diagram (Mermaid) for request lifecycle (init → pending → fulfilled/errored/cancelled).
|
|
31
|
+
- Recovery logic on restarts, exactly-once/at-least-once semantics, race-condition mitigations.
|
|
32
|
+
- ControlAgent design:
|
|
33
|
+
- WebSocket lifecycle, message formats, heartbeats, reconnection, auth.
|
|
34
|
+
- Interface with PM4ML management API (endpoints used, commands, examples) - https://github.com/pm4ml/mojaloop-payment-manager-management-api
|
|
35
|
+
- Backend API: Mojaloop SDK Backend API spec relevant here:
|
|
36
|
+
- Endpoints, payload shapes, correlation rules, error codes.
|
|
37
|
+
- Mapping between inbound/outbound and backend calls (table).
|
|
38
|
+
- Error handling patterns: Error taxonomy, standardized problem codes, logs, metrics, traces.
|
|
39
|
+
- Glossary — Mojaloop terms, DFSP, transfer, quote, callback, ILP, FSPIOP, etc., with links to code.
|
|
40
|
+
|
|
41
|
+
## Analysis Instructions
|
|
42
|
+
- Read source code, package.json scripts, config files, OpenAPI/Swagger specs, and README(s).
|
|
43
|
+
- Infer actual behavior from code over docs when they disagree; call out discrepancies.
|
|
44
|
+
- Capture all external dependencies (libraries, services, ports).
|
|
45
|
+
- Map end-to-end flows for: party lookup, quote, transfer, and callback handling.
|
|
46
|
+
- Document correlation and idempotency strategies (HTTP headers, FSPIOP signatures/urls, state keys).
|
|
47
|
+
- Note security: TLS, signing, auth between components, any PII handling, and compliance concerns.
|
|
48
|
+
- For Redis, provide concrete key examples and short JS code snippets showing set/get patterns used here.
|
|
49
|
+
- For each HTTP/WebSocket route: method, path, request schema, response schema, main side effects, and error paths.
|
|
50
|
+
- Include small, runnable TS/JS examples that mimic real requests (curl + axios snippets).
|
|
51
|
+
|
|
52
|
+
## Writing Style
|
|
53
|
+
- Audience: junior JS devs. Prioritize clarity and accuracy; keep sections short with examples.
|
|
54
|
+
- Use TypeScript types where feasible. Avoid framework-agnostic pseudocode when real code exists.
|
|
55
|
+
- Provide “Why it’s designed this way” notes and trade-offs.
|
|
56
|
+
- Link to source files by path (e.g., `src/handlers/inbound/…`).
|
|
57
|
+
- Avoid speculation; if unknown, create a TODO in a “Gaps & Open Questions” section.
|
|
58
|
+
|
|
59
|
+
## Output Rules
|
|
60
|
+
- DO NOT execute the code; perform static analysis only.
|
|
61
|
+
- Produce all files in `./_cc/docs`.
|
|
62
|
+
- Use GitHub-flavored Markdown; keep line length reasonable.
|
|
63
|
+
- Include a short “Onboarding in 30 minutes” section.
|
|
64
|
+
- Update `CLAUDE.md` with links to new files.
|
|
65
|
+
|
|
66
|
+
## Validation Checklist (include at end of each file)
|
|
67
|
+
- [ ] Routes and payloads verified against code
|
|
68
|
+
- [ ] Error paths documented
|
|
69
|
+
- [ ] Examples compile in TS
|
|
70
|
+
- [ ] Links/paths correct
|
|
71
|
+
|
|
72
|
+
Begin now. If repo structure suggests different file splits, propose and proceed.
|
|
73
|
+
|
|
74
|
+
If you have any questions or hesitations, please ask immediately.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
|
|
2
|
+
1. Read `CLAUDE.md`
|
|
3
|
+
2. Read additional _docs_ to get better context:
|
|
4
|
+
1. `[api-svc-01-overview.md](../docs/api-svc/api-svc-01-overview.md)`
|
|
5
|
+
2. `[api-svc-07-control-agent.md](../docs/api-svc/api-svc-07-control-agent.md)`
|
|
6
|
+
3. Read Jira ticket CSI-1864: https://infitx-technologies.atlassian.net/jira/software/c/projects/CSI/boards/12/backlog?assignee=712020%3A5680aa00-ab49-4175-96be-384e78ebaa45&selectedIssue=CSI-1864
|
|
7
|
+
1. Analyze description, check Acceptance Criteria. If not able to access Jira, see the `Jira Details` section below
|
|
8
|
+
2. Understand the problem we want to solve in scope of the story, identify which components need to be added/modified.
|
|
9
|
+
3. Check in huge detail actual code implementation of involved components, understand how related logic works now.
|
|
10
|
+
4. Ask any clarification if needed!
|
|
11
|
+
4. Create high-level implementation plan, split on tasks, suggest testing plan (with test cases for new logic)
|
|
12
|
+
5. One of my junior colleague provided me detailed implementation plan for the story: `/home/eugen/projects/ML/sdk-scheme-adapter/_cc/specs/story-CSI-1864-plan.md`:
|
|
13
|
+
1. Analyze it, and give your feedback how to improve and/or optimize that plan
|
|
14
|
+
2. Compare your high-level plan with that one, come up with suggestion how to combine there two plans into one final plan
|
|
15
|
+
3. Suggestion from my side how to improve colleague's plan:
|
|
16
|
+
1. For polling, try to reuse `controlClient` which we already use for listening to `ControlAgent.EVENT.RECONFIGURE` event instead of creating new one
|
|
17
|
+
2. Pass this `controlClient` to `_startConfigPolling()` or access `this.controlClient` inside it
|
|
18
|
+
4. Suggest any changes you think needed, and ask my approval!
|
|
19
|
+
5. Store final plan in `/home/eugen/projects/ML/sdk-scheme-adapter/_cc/specs/story-CSI-1864-final-plan.md`
|
|
20
|
+
6. Ask me to review your final plan, before any code changes!
|
|
21
|
+
7. Update `CLAUDE.md` and `api-svc-07-control-agent.md` with new changes details
|
|
22
|
+
|
|
23
|
+
## Jira Details
|
|
24
|
+
|
|
25
|
+
### Story description:
|
|
26
|
+
```
|
|
27
|
+
Implement Failsafe Mechanism in SDK to Poll Configuration Changes from Management API
|
|
28
|
+
This problem results in transactions failing through that connection, which can be a DFSP connection, or a proxy connection to another scheme. I.e. if this occurs in a proxy, then in the current configuration all transaction will fail. There have been numerous attempts to fix the stale certificate sdk problem, yet the problem perisists. This story is about taking a new approach that will elimitate this problem.
|
|
29
|
+
|
|
30
|
+
Currently, the SDK Scheme Adapter relies on notifications from the Management API to update its configuration — for example, when new participant certificates or JWS keys are updated.
|
|
31
|
+
However, in some cases these notifications may not be delivered reliably (due to network issues, restarts, or transient errors), which can lead to JWS desynchronization between the SDK and the Management Service.
|
|
32
|
+
|
|
33
|
+
To address this, introduce a failsafe polling mechanism within the SDK that periodically polls the Management API for configuration updates. This ensures that even if event-driven updates fail, the SDK eventually synchronizes its configuration.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Acceptance Criteria:
|
|
37
|
+
1. The SDK includes a background polling mechanism that periodically checks for configuration updates from the Management API.
|
|
38
|
+
2. Polling frequency is configurable through an environment variable, e.g. MANAGEMENT_API_POLL_INTERVAL_MS.
|
|
39
|
+
3. If no interval is configured, the failsafe polling feature is disabled (default behavior).
|
|
40
|
+
4. When polling is enabled, the SDK should:
|
|
41
|
+
1. Fetch and compare the configuration with the current state.
|
|
42
|
+
2. Apply updates if changes are detected.
|
|
43
|
+
3. Log both successful updates and polling errors with clear messages.
|
|
44
|
+
5. The implementation must not cause race conditions with live notifications — if both notification and polling update the config simultaneously, the state remains consistent.
|
|
45
|
+
6. Unit tests added to validate:
|
package/docker-compose.yml
CHANGED
|
@@ -95,7 +95,7 @@ services:
|
|
|
95
95
|
kafka:
|
|
96
96
|
networks:
|
|
97
97
|
- mojaloop-net
|
|
98
|
-
image: docker.io/
|
|
98
|
+
image: docker.io/bitnamilegacy/kafka:3.4.0
|
|
99
99
|
container_name: kafka
|
|
100
100
|
ports:
|
|
101
101
|
- "9092:9092"
|
|
@@ -156,7 +156,7 @@ services:
|
|
|
156
156
|
init-kafka:
|
|
157
157
|
networks:
|
|
158
158
|
- mojaloop-net
|
|
159
|
-
image: docker.io/
|
|
159
|
+
image: docker.io/bitnamilegacy/kafka:3.4.0
|
|
160
160
|
depends_on:
|
|
161
161
|
kafka:
|
|
162
162
|
condition: service_healthy
|
|
@@ -126,7 +126,7 @@ CHECK_ILP=true
|
|
|
126
126
|
# set to true to enable test features such as request cacheing and retrieval endpoints
|
|
127
127
|
ENABLE_TEST_FEATURES=false
|
|
128
128
|
|
|
129
|
-
# set to true to mock
|
|
129
|
+
# set to true to mock OIDC oauth2 token endpoint
|
|
130
130
|
ENABLE_OAUTH_TOKEN_ENDPOINT=false
|
|
131
131
|
OAUTH_TOKEN_ENDPOINT_CLIENT_KEY=test-client-key
|
|
132
132
|
OAUTH_TOKEN_ENDPOINT_CLIENT_SECRET=test-client-secret
|
|
@@ -135,7 +135,7 @@ OAUTH_TOKEN_ENDPOINT_LISTEN_PORT=6000
|
|
|
135
135
|
# WSO2 Bearer Token specific to golden-fsp instance and environment
|
|
136
136
|
WSO2_BEARER_TOKEN=7718fa9b-be13-3fe7-87f0-a12cf1628168
|
|
137
137
|
|
|
138
|
-
# OAuth2 data used to obtain
|
|
138
|
+
# OAuth2 data used to obtain OIDC bearer token
|
|
139
139
|
OAUTH_TOKEN_ENDPOINT=
|
|
140
140
|
OAUTH_CLIENT_KEY=
|
|
141
141
|
OAUTH_CLIENT_SECRET=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaloop/sdk-scheme-adapter-api-svc",
|
|
3
|
-
"version": "21.0.0-snapshot.
|
|
3
|
+
"version": "21.0.0-snapshot.71",
|
|
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",
|
|
@@ -64,21 +64,21 @@
|
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
66
|
"@koa/cors": "5.0.0",
|
|
67
|
-
"@mojaloop/api-snippets": "18.
|
|
68
|
-
"@mojaloop/central-services-error-handling": "13.1.
|
|
67
|
+
"@mojaloop/api-snippets": "18.2.0",
|
|
68
|
+
"@mojaloop/central-services-error-handling": "13.1.3",
|
|
69
69
|
"@mojaloop/central-services-logger": "11.10.1",
|
|
70
|
-
"@mojaloop/central-services-metrics": "12.
|
|
71
|
-
"@mojaloop/central-services-shared": "18.
|
|
72
|
-
"@mojaloop/event-sdk": "14.
|
|
70
|
+
"@mojaloop/central-services-metrics": "12.8.0",
|
|
71
|
+
"@mojaloop/central-services-shared": "18.34.1",
|
|
72
|
+
"@mojaloop/event-sdk": "14.8.0",
|
|
73
73
|
"@mojaloop/logging-bc-client-lib": "0.5.8",
|
|
74
74
|
"@mojaloop/ml-schema-transformer-lib": "2.7.8",
|
|
75
75
|
"@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
|
|
76
|
-
"@mojaloop/sdk-standard-components": "19.
|
|
76
|
+
"@mojaloop/sdk-standard-components": "19.18.0",
|
|
77
77
|
"ajv": "8.17.1",
|
|
78
78
|
"axios": "1.12.2",
|
|
79
79
|
"body-parser": "2.2.0",
|
|
80
80
|
"co-body": "6.2.0",
|
|
81
|
-
"dotenv": "17.2.
|
|
81
|
+
"dotenv": "17.2.3",
|
|
82
82
|
"env-var": "7.5.0",
|
|
83
83
|
"express": "4.21.2",
|
|
84
84
|
"fast-json-patch": "3.1.1",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"prom-client": "15.1.3",
|
|
97
97
|
"promise-timeout": "1.3.0",
|
|
98
98
|
"random-word-slugs": "0.1.7",
|
|
99
|
-
"redis": "5.8.
|
|
99
|
+
"redis": "5.8.3",
|
|
100
100
|
"retry": "^0.13.1",
|
|
101
101
|
"uuidv4": "6.2.13",
|
|
102
102
|
"ws": "8.18.3"
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@types/jest": "30.0.0",
|
|
109
109
|
"@types/retry": "^0",
|
|
110
110
|
"axios-mock-adapter": "2.1.0",
|
|
111
|
-
"babel-jest": "30.
|
|
111
|
+
"babel-jest": "30.2.0",
|
|
112
112
|
"eslint": "9.15.0",
|
|
113
113
|
"eslint-config-airbnb-base": "15.0.0",
|
|
114
114
|
"eslint-plugin-import": "2.32.0",
|
|
@@ -40,12 +40,15 @@
|
|
|
40
40
|
// the current configuration to
|
|
41
41
|
|
|
42
42
|
const ws = require('ws');
|
|
43
|
+
const _ = require('lodash');
|
|
43
44
|
const jsonPatch = require('fast-json-patch');
|
|
45
|
+
const safeStringify = require('fast-safe-stringify');
|
|
44
46
|
const { generateSlug } = require('random-word-slugs');
|
|
45
|
-
const _ = require('lodash');
|
|
46
47
|
|
|
47
48
|
const FORCE_WS_CLOSE_TIMEOUT_MS = 5000;
|
|
48
49
|
|
|
50
|
+
const cloneJson = (obj) => JSON.parse(safeStringify(obj));
|
|
51
|
+
|
|
49
52
|
/**************************************************************************
|
|
50
53
|
* The message protocol messages, verbs, and errors
|
|
51
54
|
*************************************************************************/
|
|
@@ -77,7 +80,7 @@ const EVENT = {
|
|
|
77
80
|
/**************************************************************************
|
|
78
81
|
* Private convenience functions
|
|
79
82
|
*************************************************************************/
|
|
80
|
-
const serialise =
|
|
83
|
+
const serialise = safeStringify;
|
|
81
84
|
const deserialise = (msg) => {
|
|
82
85
|
//reviver function
|
|
83
86
|
return JSON.parse(msg.toString(), (k, v) => {
|
|
@@ -144,9 +147,11 @@ class Client extends ws {
|
|
|
144
147
|
* `Client` instances outside of this class should be created via the `Create(...args)` static method.
|
|
145
148
|
*/
|
|
146
149
|
constructor({ address = 'localhost', port, logger, appConfig }) {
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
const wsUrl = `ws://${address}:${port}`;
|
|
151
|
+
super(wsUrl);
|
|
152
|
+
this._logger = logger.push({ component: 'ControlClientWs' });
|
|
149
153
|
this._appConfig = appConfig;
|
|
154
|
+
this._wsUrl = wsUrl;
|
|
150
155
|
}
|
|
151
156
|
|
|
152
157
|
// Really only exposed so that a user can import only the client for convenience
|
|
@@ -173,28 +178,30 @@ class Client extends ws {
|
|
|
173
178
|
async receive() {
|
|
174
179
|
return new Promise((resolve) => this.once('message', (data) => {
|
|
175
180
|
const msg = deserialise(data);
|
|
176
|
-
this._logger.
|
|
181
|
+
this._logger.push({ msg }).debug('Received and deserialized ws message:');
|
|
177
182
|
resolve(msg);
|
|
178
183
|
}));
|
|
179
184
|
}
|
|
180
185
|
|
|
181
186
|
// Close connection
|
|
182
187
|
async stop() {
|
|
183
|
-
this._logger.
|
|
188
|
+
this._logger.verbose('Control client shutting down...');
|
|
184
189
|
return new Promise((resolve) => {
|
|
185
190
|
let timer = setTimeout(() => {
|
|
186
|
-
this._logger.
|
|
191
|
+
this._logger.warn(`Control client forced to close after ${FORCE_WS_CLOSE_TIMEOUT_MS}ms`);
|
|
192
|
+
this.terminate();
|
|
187
193
|
timer = null;
|
|
188
194
|
resolve(false);
|
|
189
195
|
}, FORCE_WS_CLOSE_TIMEOUT_MS);
|
|
190
196
|
|
|
191
197
|
this.once('close', () => {
|
|
192
|
-
this._logger.
|
|
198
|
+
this._logger.info('Control client is closed');
|
|
193
199
|
if (timer) clearTimeout(timer);
|
|
200
|
+
this.removeAllListeners();
|
|
194
201
|
resolve(true);
|
|
195
202
|
});
|
|
196
203
|
this.once('error', (error) => {
|
|
197
|
-
this._logger.
|
|
204
|
+
this._logger.warn('Control client failed to close:', error);
|
|
198
205
|
if (timer) clearTimeout(timer);
|
|
199
206
|
resolve(false);
|
|
200
207
|
});
|
|
@@ -203,6 +210,23 @@ class Client extends ws {
|
|
|
203
210
|
});
|
|
204
211
|
}
|
|
205
212
|
|
|
213
|
+
/**
|
|
214
|
+
* Call the Connector Manager in Management API to get the updated config
|
|
215
|
+
*/
|
|
216
|
+
async getUpdatedConfig() { // clarify naming - why config is updated?
|
|
217
|
+
this._logger.info(`Getting updated config from Management API at ${this._wsUrl}...`);
|
|
218
|
+
const wsSendResponse = await this.send(build.CONFIGURATION.READ());
|
|
219
|
+
this._logger.debug('wsSendResponse: ', { wsSendResponse });
|
|
220
|
+
|
|
221
|
+
const wsReceivedData = (await this.receive())?.data;
|
|
222
|
+
this._logger.debug('wsReceivedData: ', { wsReceivedData });
|
|
223
|
+
|
|
224
|
+
if (!wsReceivedData) this._logger.warn('no updatedConfigFromMgmtAPI');
|
|
225
|
+
else this._logger.info('updatedConfigFromMgmtAPI keys:', { updatedConfigFromMgmtAPIKeys: Object.keys(wsReceivedData) });
|
|
226
|
+
|
|
227
|
+
return wsReceivedData;
|
|
228
|
+
}
|
|
229
|
+
|
|
206
230
|
// Handle incoming message from the server.
|
|
207
231
|
_handle(data) {
|
|
208
232
|
// TODO: json-schema validation of received message- should be pretty straight-forward
|
|
@@ -211,7 +235,7 @@ class Client extends ws {
|
|
|
211
235
|
try {
|
|
212
236
|
msg = deserialise(data);
|
|
213
237
|
} catch {
|
|
214
|
-
this._logger.
|
|
238
|
+
this._logger.warn('failed to parse received message: ', { data });
|
|
215
239
|
this.send(build.ERROR.NOTIFY.JSON_PARSE_ERROR());
|
|
216
240
|
}
|
|
217
241
|
this._logger.isDebugEnabled && this._logger.push({ msg }).debug('Handling received message');
|
|
@@ -219,14 +243,14 @@ class Client extends ws {
|
|
|
219
243
|
case MESSAGE.CONFIGURATION:
|
|
220
244
|
switch (msg.verb) {
|
|
221
245
|
case VERB.NOTIFY: {
|
|
222
|
-
const dup =
|
|
246
|
+
const dup = cloneJson(this._appConfig); // fast-json-patch explicitly mutates
|
|
223
247
|
_.merge(dup, msg.data);
|
|
224
248
|
this._logger.isDebugEnabled && this._logger.push({ oldConf: this._appConfig, newConf: dup }).debug(`Emitting new agent configuration [${VERB.NOTIFY}]`);
|
|
225
249
|
this.emit(EVENT.RECONFIGURE, dup);
|
|
226
250
|
break;
|
|
227
251
|
}
|
|
228
252
|
case VERB.PATCH: {
|
|
229
|
-
const dup =
|
|
253
|
+
const dup = cloneJson(this._appConfig); // fast-json-patch explicitly mutates
|
|
230
254
|
jsonPatch.applyPatch(dup, msg.data);
|
|
231
255
|
this._logger.isDebugEnabled && this._logger.push({ oldConf: this._appConfig, newConf: dup }).debug(`Emitting new agent configuration [${VERB.PATCH}]`);
|
|
232
256
|
this.emit(EVENT.RECONFIGURE, dup);
|
|
@@ -255,9 +279,18 @@ class Client extends ws {
|
|
|
255
279
|
}
|
|
256
280
|
}
|
|
257
281
|
|
|
282
|
+
const createConnectedControlAgentWs = async (conf, log) => {
|
|
283
|
+
return await Client.Create({
|
|
284
|
+
address: conf.control.mgmtAPIWsUrl,
|
|
285
|
+
port: conf.control.mgmtAPIWsPort,
|
|
286
|
+
appConfig: conf,
|
|
287
|
+
logger: log,
|
|
288
|
+
});
|
|
289
|
+
};
|
|
258
290
|
|
|
259
291
|
|
|
260
292
|
module.exports = {
|
|
293
|
+
createConnectedControlAgentWs,
|
|
261
294
|
Client,
|
|
262
295
|
build,
|
|
263
296
|
MESSAGE,
|
|
@@ -44,11 +44,11 @@ const {
|
|
|
44
44
|
} = require('./handlers');
|
|
45
45
|
|
|
46
46
|
class FSPIOPEventHandler {
|
|
47
|
-
constructor({ config, logger, cache,
|
|
47
|
+
constructor({ config, logger, cache, oidc }) {
|
|
48
48
|
this._conf = config;
|
|
49
49
|
this._logger = logger.push({ component: this.constructor.name });
|
|
50
50
|
this._cache = cache;
|
|
51
|
-
this.
|
|
51
|
+
this._oidc = oidc;
|
|
52
52
|
|
|
53
53
|
this._loggerFromLoggingBC = new DefaultLogger(BC_CONFIG.bcName, 'fspiop-event-handler', '0.0.1', config.logLevel);
|
|
54
54
|
|
|
@@ -70,7 +70,7 @@ class FSPIOPEventHandler {
|
|
|
70
70
|
producer: this._producer,
|
|
71
71
|
consumer: this._consumer,
|
|
72
72
|
cache: this._cache,
|
|
73
|
-
|
|
73
|
+
oidc: this._oidc,
|
|
74
74
|
config: this._conf,
|
|
75
75
|
};
|
|
76
76
|
|
|
@@ -74,7 +74,7 @@ const createInboundTransfersModel = (ctx) => new InboundTransfersModel({
|
|
|
74
74
|
},
|
|
75
75
|
cache: ctx.state.cache,
|
|
76
76
|
logger: ctx.state.logger,
|
|
77
|
-
|
|
77
|
+
oidc: ctx.state.oidc,
|
|
78
78
|
resourceVersions: ctx.resourceVersions,
|
|
79
79
|
backendSharedAgents: ctx.state.backendSharedAgents,
|
|
80
80
|
mojaloopSharedAgents: ctx.state.mojaloopSharedAgents,
|
|
@@ -1133,14 +1133,14 @@ const createPutFxTransfersHandler = (success) => async (ctx) => {
|
|
|
1133
1133
|
};
|
|
1134
1134
|
|
|
1135
1135
|
const handlePostPing = (ctx) => {
|
|
1136
|
-
const { jwsPingValidationResult, conf, logger,
|
|
1136
|
+
const { jwsPingValidationResult, conf, logger, oidc } = ctx.state;
|
|
1137
1137
|
const { sourceFspId, body, headers } = extractBodyHeadersSourceFspId(ctx);
|
|
1138
1138
|
|
|
1139
1139
|
const model = new InboundPingModel({
|
|
1140
1140
|
...conf,
|
|
1141
1141
|
resourceVersions: ctx.resourceVersions,
|
|
1142
1142
|
logger,
|
|
1143
|
-
|
|
1143
|
+
oidc,
|
|
1144
1144
|
});
|
|
1145
1145
|
model.postPing({ jwsPingValidationResult, sourceFspId, body, headers })
|
|
1146
1146
|
.catch(err => logger.error('error in handlePostPing:', err));
|