@mojaloop/sdk-scheme-adapter 24.1.2 → 24.2.0-csi-1210.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/.yarn/cache/{@apidevtools-json-schema-ref-parser-npm-11.9.0-687585503c-5b09f7d4bb.zip → @apidevtools-json-schema-ref-parser-npm-11.9.1-affeb92b0d-965c52ebd2.zip} +0 -0
- package/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.26.9-b0bf1b10a4-d445a660d2.zip +0 -0
- package/.yarn/cache/{@babel-runtime-npm-7.26.7-685f05ad2c-a1664a08f3.zip → @babel-runtime-npm-7.26.9-8369ff039f-838492d8a9.zip} +0 -0
- package/.yarn/cache/{@eslint-config-array-npm-0.19.1-2985276432-421aad712a.zip → @eslint-config-array-npm-0.19.2-9310e910a9-1c707e04fc.zip} +0 -0
- package/.yarn/cache/@eslint-core-npm-0.12.0-38bccca4dd-3979af3241.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.9.1-e156c07571-33c8159842.zip +0 -0
- package/.yarn/cache/@eslint-eslintrc-npm-3.3.0-72b2f21ce8-1d8a4205c2.zip +0 -0
- package/.yarn/cache/{@eslint-js-npm-9.19.0-12d90bd733-bf4077b390.zip → @eslint-js-npm-9.15.0-299ff7a9ff-8b2aa35b62.zip} +0 -0
- package/.yarn/cache/{@eslint-object-schema-npm-2.1.5-9f81710c7d-5facffc832.zip → @eslint-object-schema-npm-2.1.6-a777ee59e8-e32e565319.zip} +0 -0
- package/.yarn/cache/{@eslint-plugin-kit-npm-0.2.5-aeb42dfdc6-423db33e67.zip → @eslint-plugin-kit-npm-0.2.7-c313bcf919-e5d9be6ae5.zip} +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.4.2-78a05c1b69-764127449a.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-error-handling-npm-13.0.7-4af4c724e6-63e1af4094.zip +0 -0
- package/.yarn/cache/{@mojaloop-central-services-shared-npm-18.19.0-e14673dce9-2d984e3fba.zip → @mojaloop-central-services-shared-npm-18.21.0-6755b8831a-d6c57dbf15.zip} +0 -0
- package/.yarn/cache/@mojaloop-ml-schema-transformer-lib-npm-2.5.6-c7788ac913-3556a96a40.zip +0 -0
- package/.yarn/cache/{@mojaloop-sdk-standard-components-npm-19.7.0-04e9d9d599-fefb01a635.zip → @mojaloop-sdk-standard-components-npm-19.7.1-41bada4515-6b413699ea.zip} +0 -0
- package/.yarn/cache/{@mojaloop-sdk-standard-components-npm-19.6.4-3d5f991e58-7d42500cce.zip → @mojaloop-sdk-standard-components-npm-19.8.0-snapshot.4-193cd95852-71296babd7.zip} +0 -0
- package/.yarn/cache/@opentelemetry-api-logs-npm-0.57.2-97ef249ccb-9c654feea3.zip +0 -0
- package/.yarn/cache/@opentelemetry-auto-instrumentations-node-npm-0.56.1-956c504579-708bc207d5.zip +0 -0
- package/.yarn/cache/@opentelemetry-context-async-hooks-npm-1.30.1-6c85d1d7e3-9bc42d4be4.zip +0 -0
- package/.yarn/cache/@opentelemetry-context-base-npm-0.17.0-2cceb1e85b-4b29fa34ef.zip +0 -0
- package/.yarn/cache/@opentelemetry-core-npm-1.30.1-6bab40a361-fe71452fff.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-logs-otlp-grpc-npm-0.57.2-619cd77b9d-6c35209222.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-logs-otlp-http-npm-0.57.2-6094fba3fa-0f23020fde.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-logs-otlp-proto-npm-0.57.2-e59c93f1a5-fda1b818b9.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-metrics-otlp-grpc-npm-0.57.2-3c5de4d7af-9ee9555f0a.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-metrics-otlp-http-npm-0.57.2-af3ab66c09-64505d43af.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-metrics-otlp-proto-npm-0.57.2-feac7a7bc4-69da876c8e.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-prometheus-npm-0.57.2-5c14591b74-c2c86f56fd.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-trace-otlp-grpc-npm-0.57.2-db5f8456a2-5da93e55dd.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-trace-otlp-http-npm-0.57.2-3647f3e1b5-4611a7d03f.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-trace-otlp-proto-npm-0.57.2-593b040eac-0228cc97c4.zip +0 -0
- package/.yarn/cache/@opentelemetry-exporter-zipkin-npm-1.30.1-2b7dd3bbbe-915ced1a93.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-amqplib-npm-0.46.1-fdfcf0fc10-97beb23c1a.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-aws-lambda-npm-0.50.3-ae4ee0b7e4-f2c7923eed.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-aws-sdk-npm-0.49.1-0eadc36342-327a437621.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-bunyan-npm-0.45.1-1d3f6cc544-8066568c32.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-cassandra-driver-npm-0.45.1-18bfd2b526-26e9dabc0d.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-connect-npm-0.43.1-a5c04e486f-5d1f378040.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-cucumber-npm-0.14.1-bde3ef2142-905d97d2ac.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-dataloader-npm-0.16.1-85fa5db77c-7ee25069f1.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-dns-npm-0.43.1-4f55fe2f06-ca2caca3e6.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-express-npm-0.47.1-1f1413724e-be09e0df7a.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-fastify-npm-0.44.2-0f514583d2-d5117a4992.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-fs-npm-0.19.1-06ae3b08dd-771817e43f.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-generic-pool-npm-0.43.1-6e499a6392-c89981bf8e.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-graphql-npm-0.47.1-20a9742ed2-c51cf72854.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-grpc-npm-0.57.2-2f552d16c1-f912585575.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-hapi-npm-0.45.2-7b44edb8e6-208d37a906.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-http-npm-0.57.2-14dfa84450-ade80431e9.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-ioredis-npm-0.47.1-81202950dd-828999d2d5.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-kafkajs-npm-0.7.1-576980f7ca-84e04579a8.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-knex-npm-0.44.1-189f1469b7-e80a201b59.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-koa-npm-0.47.1-b6790ae058-3bb9d41cf2.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-lru-memoizer-npm-0.44.1-9797c03424-93df72f85e.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-memcached-npm-0.43.1-e19ea54eb5-93857d00de.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-mongodb-npm-0.52.0-1504cf67fd-a0d88afea9.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-mongoose-npm-0.46.1-a846c79f5b-05ed52c5b7.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-mysql-npm-0.45.1-362b5aa9f9-4117cda307.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-mysql2-npm-0.45.2-11fa75524d-626fb29535.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-nestjs-core-npm-0.44.1-d236b31d92-8fec82978c.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-net-npm-0.43.1-af85cc9995-613d8a4b45.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-npm-0.57.2-c480e6a5c7-8a494d2ea4.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-pg-npm-0.51.1-7088d5dfa2-ebd36407a5.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-pino-npm-0.46.1-7f37c636df-97dca1180d.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-redis-4-npm-0.46.1-8e5d68a0bc-9350ab6d7c.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-redis-npm-0.46.1-cd801212ee-52bfba4804.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-restify-npm-0.45.1-02ab1eb140-db8addeb6d.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-router-npm-0.44.1-5949767675-ffa9d2d0d0.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-socket.io-npm-0.46.1-9d45e12557-de6df872b1.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-tedious-npm-0.18.1-4409343a78-b46ef75a59.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-undici-npm-0.10.1-9a8b9f0c5f-0f54bd14c9.zip +0 -0
- package/.yarn/cache/@opentelemetry-instrumentation-winston-npm-0.44.1-bd903159a0-9eea2912b1.zip +0 -0
- package/.yarn/cache/@opentelemetry-otlp-exporter-base-npm-0.57.2-9e7a510489-6bacc1dc96.zip +0 -0
- package/.yarn/cache/@opentelemetry-otlp-grpc-exporter-base-npm-0.57.2-f1366e7045-e947850f50.zip +0 -0
- package/.yarn/cache/@opentelemetry-otlp-transformer-npm-0.57.2-c2ce9fef04-6e67aa4ec0.zip +0 -0
- package/.yarn/cache/@opentelemetry-propagation-utils-npm-0.30.16-95a5675c60-eef5ca1b64.zip +0 -0
- package/.yarn/cache/@opentelemetry-propagator-b3-npm-1.30.1-590a976998-19e7a7667a.zip +0 -0
- package/.yarn/cache/@opentelemetry-propagator-jaeger-npm-1.30.1-7b2134bf11-ac8bab25e8.zip +0 -0
- package/.yarn/cache/@opentelemetry-redis-common-npm-0.36.2-15106e7250-b0a6f2c2dc.zip +0 -0
- package/.yarn/cache/@opentelemetry-resource-detector-alibaba-cloud-npm-0.30.1-c45df5f73c-04c1ae5b56.zip +0 -0
- package/.yarn/cache/@opentelemetry-resource-detector-aws-npm-1.12.0-a2ac2d249e-a3a678bde6.zip +0 -0
- package/.yarn/cache/@opentelemetry-resource-detector-azure-npm-0.6.1-89985e9e64-df9114159c.zip +0 -0
- package/.yarn/cache/@opentelemetry-resource-detector-container-npm-0.6.1-0e50d40971-e1fde0eec0.zip +0 -0
- package/.yarn/cache/@opentelemetry-resource-detector-gcp-npm-0.33.1-d8f6b8ac77-966e78efff.zip +0 -0
- package/.yarn/cache/@opentelemetry-resources-npm-1.30.1-1afce2cc97-a930d52fcd.zip +0 -0
- package/.yarn/cache/@opentelemetry-sdk-logs-npm-0.57.2-11059307d9-5e14cb81ee.zip +0 -0
- package/.yarn/cache/@opentelemetry-sdk-metrics-npm-1.30.1-1232d12cd6-b74d16b1a0.zip +0 -0
- package/.yarn/cache/@opentelemetry-sdk-node-npm-0.57.2-c0d3e9229f-e8a726e5d6.zip +0 -0
- package/.yarn/cache/@opentelemetry-sdk-trace-base-npm-1.30.1-6263d5195f-212c19fb25.zip +0 -0
- package/.yarn/cache/@opentelemetry-sdk-trace-node-npm-1.30.1-6bc52726d5-e9122c45b5.zip +0 -0
- package/.yarn/cache/@opentelemetry-semantic-conventions-npm-1.28.0-942b4f4e95-1d708afa65.zip +0 -0
- package/.yarn/cache/@opentelemetry-semantic-conventions-npm-1.30.0-ed4337027d-53d3489f11.zip +0 -0
- package/.yarn/cache/@opentelemetry-sql-common-npm-0.40.1-8e555e0757-2352974053.zip +0 -0
- package/.yarn/cache/{@redocly-openapi-core-npm-1.28.0-c4b1f1cf53-83f9fa2ed3.zip → @redocly-openapi-core-npm-1.31.1-fb4096a34f-bce3703b79.zip} +0 -0
- package/.yarn/cache/@rollup-rollup-linux-x64-musl-npm-4.34.9-ee6556627d-8.zip +0 -0
- package/.yarn/cache/@types-aws-lambda-npm-8.10.147-4e6dba6123-697348cb90.zip +0 -0
- package/.yarn/cache/@types-bunyan-npm-1.8.11-950d8551a4-9c8bf737bc.zip +0 -0
- package/.yarn/cache/@types-memcached-npm-2.2.10-80a23c7b39-c95e2ed494.zip +0 -0
- package/.yarn/cache/@types-mysql-npm-2.15.26-e8ee291ec4-c43395643a.zip +0 -0
- package/.yarn/cache/{@types-node-npm-22.12.0-7905337c99-2f6dd04abe.zip → @types-node-npm-22.13.9-565bb4cd14-d36ae841fa.zip} +0 -0
- package/.yarn/cache/@types-pg-npm-8.11.11-c5a8a91498-50c4a80348.zip +0 -0
- package/.yarn/cache/@types-pg-npm-8.6.1-6de7239b4b-a44710ff06.zip +0 -0
- package/.yarn/cache/@types-pg-pool-npm-2.0.6-ebe4ae949f-cc54ce9711.zip +0 -0
- package/.yarn/cache/@types-shimmer-npm-1.2.0-ff593a1ec3-f081a31d82.zip +0 -0
- package/.yarn/cache/@types-tedious-npm-4.0.14-11edc4a73d-88505dda8b.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-eslint-plugin-npm-8.25.0-f1ecf3f166-8e6f525d9c.zip → @typescript-eslint-eslint-plugin-npm-8.26.0-64bda8e44c-fbfc0e65b9.zip} +0 -0
- package/.yarn/cache/{@typescript-eslint-parser-npm-8.25.0-31c155428a-5de468b96b.zip → @typescript-eslint-parser-npm-8.26.0-80aadd4d9c-6d8a8fcca1.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.26.0-ef399f862d-b1d35e8b4e.zip +0 -0
- package/.yarn/cache/{@typescript-eslint-type-utils-npm-8.25.0-948ec177d4-ee4bccb650.zip → @typescript-eslint-type-utils-npm-8.26.0-f34f57bfb3-eab175e5be.zip} +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.26.0-6090977dc6-dea8535575.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.26.0-352c786ebb-492ad542c1.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.26.0-50b78242aa-6bb6e7c9bd.zip +0 -0
- package/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.26.0-ff1c3f4568-4209794bbd.zip +0 -0
- package/.yarn/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-1c0c49b6a2.zip +0 -0
- package/.yarn/cache/axios-npm-1.8.1-8a5eaf948f-3c434b86bb.zip +0 -0
- package/.yarn/cache/bignumber.js-npm-9.1.2-c2228c6a4a-582c03af77.zip +0 -0
- package/.yarn/cache/call-bind-apply-helpers-npm-1.0.2-3eedbea3bb-b2863d74fc.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001700-af88646d2b-0e5e1c8648.zip +0 -0
- package/.yarn/cache/cjs-module-lexer-npm-1.4.3-4a46e7bf6c-221a1661a9.zip +0 -0
- package/.yarn/cache/cli-table-npm-0.3.11-f912789cff-59fb61f992.zip +0 -0
- package/.yarn/cache/colors-npm-1.0.3-6c5d583ab3-234e8d3ab7.zip +0 -0
- package/.yarn/cache/compression-npm-1.8.0-5088616544-12ca3e326b.zip +0 -0
- package/.yarn/cache/cookie-npm-0.6.0-362d6a2e45-f56a7d32a0.zip +0 -0
- package/.yarn/cache/electron-to-chromium-npm-1.5.104-d9177e3237-5b8b22c0ae.zip +0 -0
- package/.yarn/cache/es-shim-unscopables-npm-1.1.0-13f1970345-33cfb1ebcb.zip +0 -0
- package/.yarn/cache/{eslint-npm-9.19.0-e70f56e959-173c77ac3f.zip → eslint-npm-9.15.0-5469d28713-50b7e1c4cb.zip} +0 -0
- package/.yarn/cache/exponential-backoff-npm-3.1.2-e030c582de-7e191e3dd6.zip +0 -0
- package/.yarn/cache/express-npm-4.19.2-f81334a22a-212dbd6c2c.zip +0 -0
- package/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip +0 -0
- package/.yarn/cache/fast-xml-parser-npm-4.5.3-4c572a6316-cd6a184941.zip +0 -0
- package/.yarn/cache/fastq-npm-1.19.0-5e2713df98-c9203c9e48.zip +0 -0
- package/.yarn/cache/finalhandler-npm-1.2.0-593d001463-92effbfd32.zip +0 -0
- package/.yarn/cache/{flatted-npm-3.3.2-6bf77e6e67-ac3c159742.zip → flatted-npm-3.3.3-ca455563b2-8c96c02fbe.zip} +0 -0
- package/.yarn/cache/for-each-npm-0.3.5-b74c5c5ba7-3c986d7e11.zip +0 -0
- package/.yarn/cache/{foreground-child-npm-3.3.0-b8be745271-1989698488.zip → foreground-child-npm-3.3.1-b7775fda04-b2c1a6fc0b.zip} +0 -0
- package/.yarn/cache/form-data-npm-4.0.2-d2e89057d5-e887298b22.zip +0 -0
- package/.yarn/cache/forwarded-parse-npm-2.1.2-8cf38fd641-fca4df8898.zip +0 -0
- package/.yarn/cache/gaxios-npm-6.7.1-11467afb7c-ed59526553.zip +0 -0
- package/.yarn/cache/gcp-metadata-npm-6.1.1-049b8b370a-7dffe884fd.zip +0 -0
- package/.yarn/cache/get-intrinsic-npm-1.3.0-35558f27b6-301008e448.zip +0 -0
- package/.yarn/cache/glob-npm-9.3.5-2f602083f0-94b093adbc.zip +0 -0
- package/.yarn/cache/google-logging-utils-npm-0.0.2-598ff18186-270de74cde.zip +0 -0
- package/.yarn/cache/import-fresh-npm-3.3.1-1916794950-a06b19461b.zip +0 -0
- package/.yarn/cache/import-in-the-middle-npm-1.13.0-923c4ecf3f-f7a62d6fa1.zip +0 -0
- package/.yarn/cache/ini-npm-3.0.1-5000598340-947b582a82.zip +0 -0
- package/.yarn/cache/is-boolean-object-npm-1.2.2-ceb8c82b17-0415b181e8.zip +0 -0
- package/.yarn/cache/is-weakref-npm-1.1.1-e6458807f4-1769b9aed5.zip +0 -0
- package/.yarn/cache/json-bigint-npm-1.0.0-8e35bcb143-c67bb93ccb.zip +0 -0
- package/.yarn/cache/{koa-npm-2.15.4-5a729e75eb-cd2bf396fa.zip → koa-npm-2.16.0-fccb365a23-01be3231d4.zip} +0 -0
- package/.yarn/cache/long-npm-5.3.1-c44e0933f0-2a44ed1408.zip +0 -0
- package/.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-5abc259d2a.zip +0 -0
- package/.yarn/cache/minimatch-npm-7.4.6-f3feee458c-1a6c8d2261.zip +0 -0
- package/.yarn/cache/minimatch-npm-8.0.4-bf57f0e98a-2e46cffb86.zip +0 -0
- package/.yarn/cache/minipass-npm-4.2.8-f05abfe254-7f4914d529.zip +0 -0
- package/.yarn/cache/module-details-from-path-npm-1.0.3-396d5203b4-378a8a2601.zip +0 -0
- package/.yarn/cache/nan-npm-2.22.1-09e9287ac1-984c07db9f.zip +0 -0
- package/.yarn/cache/node-gyp-npm-11.1.0-bd7044e197-b196da39a7.zip +0 -0
- package/.yarn/cache/npm-check-updates-npm-16.7.10-c7631e6e9a-003a1b618b.zip +0 -0
- package/.yarn/cache/oauth2-server-npm-4.0.0-dev.2-0a8b43e457-78a7fc8cfc.zip +0 -0
- package/.yarn/cache/object-inspect-npm-1.13.4-4e741f9806-582810c6a8.zip +0 -0
- package/.yarn/cache/obuf-npm-1.1.2-8db5fae8dd-41a2ba310e.zip +0 -0
- package/.yarn/cache/pacote-npm-15.1.1-61d4204b89-109388e873.zip +0 -0
- package/.yarn/cache/pg-int8-npm-1.0.1-5cd67f3e22-a1e3a05a69.zip +0 -0
- package/.yarn/cache/pg-numeric-npm-1.0.2-9026ec3427-8899f8200c.zip +0 -0
- package/.yarn/cache/pg-protocol-npm-1.7.1-5571ffdced-88df68e8c0.zip +0 -0
- package/.yarn/cache/pg-types-npm-2.2.0-a3360226c4-bf4ec3f594.zip +0 -0
- package/.yarn/cache/pg-types-npm-4.0.2-771d83bf15-c4b813382d.zip +0 -0
- package/.yarn/cache/possible-typed-array-names-npm-1.1.0-ce60ca4401-cfcd4f0526.zip +0 -0
- package/.yarn/cache/postcss-npm-8.5.3-37174aa03d-da574620eb.zip +0 -0
- package/.yarn/cache/postgres-array-npm-2.0.0-4f49dc1389-0e1e659888.zip +0 -0
- package/.yarn/cache/postgres-array-npm-3.0.2-da6a3f1fed-5955f9dffe.zip +0 -0
- package/.yarn/cache/postgres-bytea-npm-1.0.0-8c2b81fa73-d844ae4ca7.zip +0 -0
- package/.yarn/cache/postgres-bytea-npm-3.0.0-5de4c664f6-5f917a003f.zip +0 -0
- package/.yarn/cache/postgres-date-npm-1.0.7-aadfe5531e-5745001d47.zip +0 -0
- package/.yarn/cache/postgres-date-npm-2.1.0-710ac64466-5c573b0602.zip +0 -0
- package/.yarn/cache/postgres-interval-npm-1.2.0-ca6414744d-746b71f938.zip +0 -0
- package/.yarn/cache/postgres-interval-npm-3.0.0-936c769b98-c7a1cf006d.zip +0 -0
- package/.yarn/cache/postgres-range-npm-1.1.4-018d46d348-460af8c882.zip +0 -0
- package/.yarn/cache/prompts-ncu-npm-2.5.1-586a5abf0b-e8b6479305.zip +0 -0
- package/.yarn/cache/qs-npm-6.11.0-caf1bc9dea-6e1f29dd53.zip +0 -0
- package/.yarn/cache/registry-auth-token-npm-5.1.0-0b41e3c979-620c897167.zip +0 -0
- package/.yarn/cache/require-in-the-middle-npm-7.5.2-90474f7e4b-1b282e3b8b.zip +0 -0
- package/.yarn/cache/reusify-npm-1.1.0-96242be57f-64cb3142ac.zip +0 -0
- package/.yarn/cache/rimraf-npm-4.4.1-80b02e041a-b786adc026.zip +0 -0
- package/.yarn/cache/send-npm-0.18.0-faadf6353f-74fc07ebb5.zip +0 -0
- package/.yarn/cache/serve-static-npm-1.15.0-86c81879f5-af57fc13be.zip +0 -0
- package/.yarn/cache/shimmer-npm-1.2.1-8b50bf3206-aa0d6252ad.zip +0 -0
- package/.yarn/cache/{socks-npm-2.8.3-3532b59899-7a6b7f6eed.zip → socks-npm-2.8.4-8194b86bd0-cd1edc9244.zip} +0 -0
- package/.yarn/cache/strnum-npm-1.1.1-67836fb7cf-1be70c6ec3.zip +0 -0
- package/.yarn/cache/{swagger-ui-dist-npm-5.18.3-592e0fa048-3a2c17181b.zip → swagger-ui-dist-npm-5.19.0-1a4737b567-a2ae866b9f.zip} +0 -0
- package/.yarn/cache/{type-fest-npm-4.33.0-34a5b19843-42c9a4e305.zip → type-fest-npm-4.35.0-9c20cd5f20-14581e7b02.zip} +0 -0
- package/.yarn/cache/typescript-npm-5.8.2-b95d637f6a-7f9e3d7ac1.zip +0 -0
- package/.yarn/cache/typescript-patch-ef570fb450-a58d19ff98.zip +0 -0
- package/.yarn/cache/uuid-npm-9.0.1-39a8442bc6-39931f6da7.zip +0 -0
- package/.yarn/cache/{zod-npm-3.24.1-62ba4e84b3-dcd5334725.zip → zod-npm-3.24.2-ab80dc0969-c02455c096.zip} +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +7 -0
- package/modules/api-svc/package.json +55 -51
- package/modules/api-svc/src/InboundServer/handlers.js +4 -4
- package/modules/api-svc/src/InboundServer/index.js +3 -3
- package/modules/api-svc/src/InboundServer/middlewares.js +15 -20
- package/modules/api-svc/src/OutboundServer/handlers.js +1 -1
- package/modules/api-svc/src/OutboundServer/middlewares.js +9 -4
- package/modules/api-svc/src/index.js +2 -2
- package/modules/api-svc/src/lib/cache.js +1 -1
- package/modules/api-svc/src/lib/model/InboundTransfersModel.js +5 -5
- package/modules/api-svc/src/lib/model/OutboundTransfersModel.js +52 -13
- package/modules/api-svc/src/lib/router.js +4 -6
- package/modules/api-svc/test/unit/api/transfers/transfers.test.js +1 -2
- package/modules/api-svc/test/unit/api/transfers/utils.js +3 -0
- package/modules/api-svc/test/unit/lib/model/OutboundTransfersModel.test.js +27 -9
- package/modules/api-svc/test/unit/lib/model/PartiesModel.test.js +2 -1
- package/modules/api-svc/test/unit/lib/model/QuotesModel.test.js +2 -1
- package/modules/api-svc/test/unit/lib/model/TransfersModel.test.js +2 -1
- package/modules/api-svc/test/unit/mockLogger.js +6 -4
- package/modules/outbound-command-event-handler/package.json +30 -30
- package/modules/outbound-command-event-handler/src/api-server/app.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/handlers/bulk-transactions.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/handlers/health.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/handlers/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/models/bulk-transaction.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/models/health.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/models/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/services/bulk-transactions.ts +0 -22
- package/modules/outbound-command-event-handler/src/api-server/services/health.ts +0 -22
- package/modules/outbound-command-event-handler/src/application/errors.ts +0 -26
- package/modules/outbound-command-event-handler/src/application/handler.ts +0 -22
- package/modules/outbound-command-event-handler/src/application/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/prepare_sdk_outbound_bulk_response.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_bulk_quotes_callback.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_bulk_transfers_callback.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_party_info_callback.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_accept_party_info.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_accept_quote.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_party_info_request.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_quotes_request.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_request.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_response_sent.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/handlers/process_sdk_outbound_bulk_transfers_request.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/bulk_transaction_agg/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/domain/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/types/command_event_handler_options.ts +0 -22
- package/modules/outbound-command-event-handler/src/types/index.ts +0 -22
- package/modules/outbound-command-event-handler/src/types/repo_infra_types.ts +0 -26
- package/modules/outbound-command-event-handler/test/integration/application/agreement/process_bulk_quotes_callback.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/agreement/process_sdk_outbound_bulk_quotes_request.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/discovery/process_bulk_accept_party_info.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/discovery/process_bulk_party_info_request.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/discovery/process_bulk_request.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/discovery/process_party_info_callback.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/prepare_sdk_outbound_bulk_response.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_bulk_response_sent.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_bulk_transfers_callback.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_bulk_transfers_request.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_bulk_transfers_request_complete.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_prepare_bulk_response.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_sdk_outbound_bulk_accept_quote.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/application/transfers/process_sdk_outbound_bulk_response_sent.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/integration/sample_events/process_sdk_outbound_bulk_transfers_request.test.ts +0 -24
- package/modules/outbound-command-event-handler/test/integration/sample_events/sdk_outbound_bulk_accept_party_info_received.test.ts +0 -24
- package/modules/outbound-command-event-handler/test/integration/sample_events/sdk_outbound_bulk_request_received.test.ts +0 -24
- package/modules/outbound-command-event-handler/test/unit/data/bulk_transaction_request.ts +0 -22
- package/modules/outbound-command-event-handler/test/unit/domain/bulk_transaction_agg/index.test.ts +0 -22
- package/modules/outbound-command-event-handler/test/unit/index.test.ts +0 -26
- package/modules/outbound-command-event-handler/test/util/generator.ts +0 -22
- package/modules/outbound-command-event-handler/test/util/index.ts +0 -22
- package/modules/outbound-command-event-handler/test/util/timer.ts +0 -22
- package/modules/outbound-domain-event-handler/package.json +28 -28
- package/modules/outbound-domain-event-handler/src/api-server/services/health.ts +0 -22
- package/modules/private-shared-lib/package.json +19 -19
- package/modules/private-shared-lib/src/values/enums.ts +0 -3
- package/package.json +28 -25
- package/.yarn/cache/@babel-compat-data-npm-7.26.5-b6047aeefb-7aaac0e79c.zip +0 -0
- package/.yarn/cache/@babel-core-npm-7.26.7-7cf6c69e74-017ad8db99.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.26.5-8de063382c-baa42a98cd.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.26.8-dfc15b983a-15ef65699a.zip +0 -0
- package/.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.25.9-1efda825e9-91dd5f203e.zip +0 -0
- package/.yarn/cache/@babel-helpers-npm-7.26.7-284c12b13e-1c93604c7f.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.26.7-ef2912fba4-22aafd7a6f.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.26.8-5116d8ce65-2ede62d245.zip +0 -0
- package/.yarn/cache/@babel-template-npm-7.25.9-d903b7b6d5-103641fea1.zip +0 -0
- package/.yarn/cache/@babel-template-npm-7.26.8-9bdae70850-dfa79b33d4.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.26.7-18316b804e-22ea8aed13.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.26.8-616e5e7b7f-f8b2f4d994.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.26.7-0a324aa562-cfb12e8794.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.26.8-a2ea1f87c1-8f0f3bac37.zip +0 -0
- package/.yarn/cache/@colors-colors-npm-1.5.0-875af3a8b4-d64d5260be.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-0.10.0-33fca4886d-851fa099b3.zip +0 -0
- package/.yarn/cache/@eslint-eslintrc-npm-3.2.0-1f7efe7868-c898e4d12f.zip +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.4.1-44b0ee0d64-f11167c28e.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-error-handling-npm-13.0.4-3106885f50-9bb050e3f1.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-logger-npm-11.5.1-c8d0879908-d3b2019b7c.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-logger-npm-11.5.4-28fbcdf0be-676182b798.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-shared-npm-18.16.2-cb9431c1ea-5c444af44b.zip +0 -0
- package/.yarn/cache/@mojaloop-central-services-shared-npm-18.18.1-69bf11c401-704023ed97.zip +0 -0
- package/.yarn/cache/@mojaloop-inter-scheme-proxy-cache-lib-npm-2.3.1-b4fc6c209f-89d815d1f0.zip +0 -0
- package/.yarn/cache/@mojaloop-ml-schema-transformer-lib-npm-2.5.2-a22418b595-e9f2011e63.zip +0 -0
- package/.yarn/cache/@mojaloop-ml-schema-transformer-lib-npm-2.5.3-61baad09fa-f459689d3c.zip +0 -0
- package/.yarn/cache/@redocly-openapi-core-npm-1.27.2-c328c4b237-b5135f1d85.zip +0 -0
- package/.yarn/cache/@rollup-rollup-linux-x64-musl-npm-4.32.0-538515afc9-8.zip +0 -0
- package/.yarn/cache/@types-semver-utils-npm-1.1.3-f5c3f0e2c0-37f3bacf14.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.22.0-e9d4565a7f-0aa51fbf3a.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.22.0-cc19234a46-37fae8f21f.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.22.0-3f7a16feac-e7fd704869.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.22.0-5491e74318-976cd0e2ac.zip +0 -0
- package/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.22.0-5832313ce6-df205177bc.zip +0 -0
- package/.yarn/cache/call-bind-apply-helpers-npm-1.0.1-cda777c96d-3c55343261.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001696-067c2f955f-079be180f3.zip +0 -0
- package/.yarn/cache/cjs-module-lexer-npm-1.4.1-4a824480ac-2556807a99.zip +0 -0
- package/.yarn/cache/cli-table3-npm-0.6.5-c3f24f9c39-ab7afbf4f8.zip +0 -0
- package/.yarn/cache/compression-npm-1.7.5-346039c027-d624b55624.zip +0 -0
- package/.yarn/cache/electron-to-chromium-npm-1.5.88-0030a5a506-90f58f1562.zip +0 -0
- package/.yarn/cache/es-shim-unscopables-npm-1.0.2-a3056a4c0d-432bd527c6.zip +0 -0
- package/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-3d21519a4f.zip +0 -0
- package/.yarn/cache/fast-xml-parser-npm-4.5.1-77d072daa3-aab32d7f08.zip +0 -0
- package/.yarn/cache/fastq-npm-1.18.0-25fe4d7171-fb8d94318c.zip +0 -0
- package/.yarn/cache/for-each-npm-0.3.4-9925a6ce6e-7c094a28f9.zip +0 -0
- package/.yarn/cache/form-data-npm-4.0.1-f1a27a1c2e-ccee458cd5.zip +0 -0
- package/.yarn/cache/get-intrinsic-npm-1.2.7-2e0e0e7564-a1597b3b43.zip +0 -0
- package/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip +0 -0
- package/.yarn/cache/ini-npm-4.1.3-56188f3216-004b2be423.zip +0 -0
- package/.yarn/cache/ioredis-npm-5.4.2-d393ad1d4d-6c40ef071c.zip +0 -0
- package/.yarn/cache/is-boolean-object-npm-1.2.1-ac39eabf5e-2672609f0f.zip +0 -0
- package/.yarn/cache/is-weakref-npm-1.1.0-65d773cc3c-2a2f3a1746.zip +0 -0
- package/.yarn/cache/long-npm-5.2.4-b96a88098c-abffed049d.zip +0 -0
- package/.yarn/cache/nan-npm-2.22.0-3750ad85d9-222e3a090e.zip +0 -0
- package/.yarn/cache/node-gyp-npm-11.0.0-669e34db1b-d7d5055ccc.zip +0 -0
- package/.yarn/cache/npm-check-updates-npm-16.14.20-a12a5ccfd5-85c69d05aa.zip +0 -0
- package/.yarn/cache/oauth2-server-npm-4.0.0-dev.3-2787680f69-91cee84582.zip +0 -0
- package/.yarn/cache/object-inspect-npm-1.13.3-b4e129b6d9-8c96210211.zip +0 -0
- package/.yarn/cache/pacote-npm-15.2.0-b9ed3321e9-c731572be2.zip +0 -0
- package/.yarn/cache/possible-typed-array-names-npm-1.0.0-3a8176348a-b32d403ece.zip +0 -0
- package/.yarn/cache/postcss-npm-8.5.1-90fd898a99-cfdcfcd019.zip +0 -0
- package/.yarn/cache/prompts-ncu-npm-3.0.2-a6ba800349-fe595b880c.zip +0 -0
- package/.yarn/cache/registry-auth-token-npm-5.0.3-6280f226c2-5976f822d6.zip +0 -0
- package/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip +0 -0
- package/.yarn/cache/semver-npm-7.7.0-2100277c86-a4eefdada9.zip +0 -0
- package/.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-651b2031db.zip +0 -0
- package/.yarn/cache/ts-api-utils-npm-2.0.0-1384745dce-f16f3e4e33.zip +0 -0
- package/.yarn/cache/typescript-npm-5.7.3-e71b273452-6c38b1e989.zip +0 -0
- package/.yarn/cache/typescript-patch-eafcb0b70d-633cd749d6.zip +0 -0
- package/.yarn/cache/winston-npm-3.14.2-d92fb20061-9021637d3a.zip +0 -0
|
@@ -63,63 +63,67 @@
|
|
|
63
63
|
"url": "git@github.com:mojaloop/sdk-scheme-adapter.git"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@koa/cors": "
|
|
66
|
+
"@koa/cors": "5.0.0",
|
|
67
67
|
"@mojaloop/api-snippets": "17.8.0",
|
|
68
|
-
"@mojaloop/central-services-error-handling": "
|
|
69
|
-
"@mojaloop/central-services-logger": "
|
|
70
|
-
"@mojaloop/central-services-metrics": "
|
|
71
|
-
"@mojaloop/central-services-shared": "
|
|
72
|
-
"@mojaloop/event-sdk": "
|
|
68
|
+
"@mojaloop/central-services-error-handling": "13.0.7",
|
|
69
|
+
"@mojaloop/central-services-logger": "11.5.5",
|
|
70
|
+
"@mojaloop/central-services-metrics": "12.4.5",
|
|
71
|
+
"@mojaloop/central-services-shared": "18.21.0",
|
|
72
|
+
"@mojaloop/event-sdk": "14.1.5",
|
|
73
73
|
"@mojaloop/logging-bc-client-lib": "0.5.8",
|
|
74
|
-
"@mojaloop/ml-schema-transformer-lib": "
|
|
74
|
+
"@mojaloop/ml-schema-transformer-lib": "2.5.6",
|
|
75
75
|
"@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^",
|
|
76
|
-
"@mojaloop/sdk-standard-components": "19.
|
|
76
|
+
"@mojaloop/sdk-standard-components": "19.8.0-snapshot.4",
|
|
77
|
+
"@opentelemetry/api": "^1.9.0",
|
|
78
|
+
"@opentelemetry/context-base": "^0.17.0",
|
|
77
79
|
"ajv": "8.17.1",
|
|
78
|
-
"axios": "
|
|
79
|
-
"body-parser": "
|
|
80
|
-
"co-body": "
|
|
81
|
-
"dotenv": "
|
|
82
|
-
"env-var": "
|
|
83
|
-
"express": "
|
|
84
|
-
"fast-json-patch": "
|
|
85
|
-
"fast-safe-stringify": "
|
|
86
|
-
"javascript-state-machine": "
|
|
87
|
-
"js-yaml": "
|
|
88
|
-
"json-schema-ref-parser": "
|
|
89
|
-
"koa": "
|
|
90
|
-
"koa-body": "
|
|
91
|
-
"lodash": "
|
|
92
|
-
"module-alias": "
|
|
93
|
-
"oauth2-server": "
|
|
94
|
-
"openapi-jsonschema-parameters": "
|
|
95
|
-
"prom-client": "
|
|
96
|
-
"promise-timeout": "
|
|
97
|
-
"random-word-slugs": "
|
|
98
|
-
"redis": "
|
|
99
|
-
"uuidv4": "
|
|
100
|
-
"ws": "
|
|
80
|
+
"axios": "1.8.1",
|
|
81
|
+
"body-parser": "1.20.3",
|
|
82
|
+
"co-body": "6.2.0",
|
|
83
|
+
"dotenv": "16.4.7",
|
|
84
|
+
"env-var": "7.5.0",
|
|
85
|
+
"express": "4.21.2",
|
|
86
|
+
"fast-json-patch": "3.1.1",
|
|
87
|
+
"fast-safe-stringify": "2.1.1",
|
|
88
|
+
"javascript-state-machine": "3.1.0",
|
|
89
|
+
"js-yaml": "4.1.0",
|
|
90
|
+
"json-schema-ref-parser": "9.0.9",
|
|
91
|
+
"koa": "2.16.0",
|
|
92
|
+
"koa-body": "6.0.1",
|
|
93
|
+
"lodash": "4.17.21",
|
|
94
|
+
"module-alias": "2.2.3",
|
|
95
|
+
"oauth2-server": "4.0.0-dev.2",
|
|
96
|
+
"openapi-jsonschema-parameters": "12.1.3",
|
|
97
|
+
"prom-client": "15.1.3",
|
|
98
|
+
"promise-timeout": "1.3.0",
|
|
99
|
+
"random-word-slugs": "0.1.7",
|
|
100
|
+
"redis": "4.7.0",
|
|
101
|
+
"uuidv4": "6.2.13",
|
|
102
|
+
"ws": "8.18.1"
|
|
101
103
|
},
|
|
102
104
|
"devDependencies": {
|
|
103
|
-
"@babel/core": "
|
|
104
|
-
"@babel/preset-env": "
|
|
105
|
-
"@
|
|
106
|
-
"@
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"eslint
|
|
112
|
-
"eslint-
|
|
113
|
-
"
|
|
114
|
-
"jest
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
105
|
+
"@babel/core": "7.26.9",
|
|
106
|
+
"@babel/preset-env": "7.26.9",
|
|
107
|
+
"@opentelemetry/auto-instrumentations-node": "^0.56.1",
|
|
108
|
+
"@opentelemetry/sdk-node": "^0.57.2",
|
|
109
|
+
"@redocly/openapi-cli": "1.0.0-beta.95",
|
|
110
|
+
"@types/jest": "29.5.14",
|
|
111
|
+
"axios-mock-adapter": "2.1.0",
|
|
112
|
+
"babel-jest": "29.7.0",
|
|
113
|
+
"eslint": "9.15.0",
|
|
114
|
+
"eslint-config-airbnb-base": "15.0.0",
|
|
115
|
+
"eslint-plugin-import": "2.31.0",
|
|
116
|
+
"eslint-plugin-jest": "28.11.0",
|
|
117
|
+
"jest": "29.7.0",
|
|
118
|
+
"jest-junit": "16.0.0",
|
|
119
|
+
"npm-check-updates": "16.7.10",
|
|
120
|
+
"openapi-response-validator": "12.1.3",
|
|
121
|
+
"openapi-typescript": "7.6.1",
|
|
122
|
+
"redis-mock": "0.56.3",
|
|
123
|
+
"replace": "1.2.2",
|
|
124
|
+
"standard-version": "9.5.0",
|
|
125
|
+
"supertest": "7.0.0",
|
|
126
|
+
"swagger-cli": "4.0.4"
|
|
123
127
|
},
|
|
124
128
|
"standard-version": {
|
|
125
129
|
"scripts": {
|
|
@@ -996,8 +996,8 @@ const postFxQuotes = async (ctx) => {
|
|
|
996
996
|
const model = createInboundTransfersModel(ctx);
|
|
997
997
|
|
|
998
998
|
model.postFxQuotes({ body, headers }, sourceFspId)
|
|
999
|
-
.then(response => logger.push({ response }).
|
|
1000
|
-
.catch(err => logger.push({ err }).
|
|
999
|
+
.then(response => logger.push({ response }).verbose(`${logPrefix} is done`))
|
|
1000
|
+
.catch(err => logger.push({ err }).error(`${logPrefix} error`));
|
|
1001
1001
|
|
|
1002
1002
|
prepareResponse(ctx);
|
|
1003
1003
|
};
|
|
@@ -1041,8 +1041,8 @@ const postFxTransfers = async (ctx) => {
|
|
|
1041
1041
|
|
|
1042
1042
|
const model = createInboundTransfersModel(ctx);
|
|
1043
1043
|
model.postFxTransfers({ body, headers }, sourceFspId)
|
|
1044
|
-
.then(response => logger.push({ response }).
|
|
1045
|
-
.catch(err => logger.push({ err }).
|
|
1044
|
+
.then(response => logger.push({ response }).verbose(`${logPrefix} is done`))
|
|
1045
|
+
.catch(err => logger.push({ err }).error(`${logPrefix} error`));
|
|
1046
1046
|
|
|
1047
1047
|
prepareResponse(ctx);
|
|
1048
1048
|
};
|
|
@@ -118,14 +118,14 @@ class InboundApi extends EventEmitter {
|
|
|
118
118
|
|
|
119
119
|
api.use(middlewares.createErrorHandler(logger));
|
|
120
120
|
api.use(middlewares.createRequestIdGenerator(logger));
|
|
121
|
-
api.use(middlewares.
|
|
121
|
+
api.use(middlewares.createLogger(logger));
|
|
122
|
+
api.use(middlewares.createHeaderValidator(conf));
|
|
122
123
|
if (conf.validateInboundJws) {
|
|
123
124
|
const jwsExclusions = conf.validateInboundPutPartiesJws ? [] : ['putParties'];
|
|
124
125
|
api.use(middlewares.createJwsValidator(logger, jwsVerificationKeys, jwsExclusions));
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
api.use(middlewares.applyState({ cache, wso2, conf, logExcludePaths }));
|
|
128
|
-
api.use(middlewares.createLogger(logger));
|
|
129
129
|
api.use(middlewares.createRequestValidator(validator));
|
|
130
130
|
api.use(middlewares.assignFspiopIdentifier());
|
|
131
131
|
if (conf.enableTestFeatures) {
|
|
@@ -133,7 +133,7 @@ class InboundApi extends EventEmitter {
|
|
|
133
133
|
}
|
|
134
134
|
api.use(router(handlers, conf));
|
|
135
135
|
api.use(middlewares.createResponseBodyHandler());
|
|
136
|
-
api.use(middlewares.createResponseLogging(
|
|
136
|
+
api.use(middlewares.createResponseLogging());
|
|
137
137
|
|
|
138
138
|
api.context.resourceVersions = conf.resourceVersions;
|
|
139
139
|
|
|
@@ -247,12 +247,13 @@ const createRequestIdGenerator = (logger) => async (ctx, next) => {
|
|
|
247
247
|
* @return {Function}
|
|
248
248
|
*/
|
|
249
249
|
//
|
|
250
|
-
const createHeaderValidator = (conf
|
|
250
|
+
const createHeaderValidator = (conf) => async (
|
|
251
251
|
ctx,
|
|
252
252
|
next,
|
|
253
253
|
resources = defaultProtocolResources,
|
|
254
254
|
supportedProtocolVersions = defaultProtocolVersions
|
|
255
255
|
) => {
|
|
256
|
+
const { logger } = ctx.state;
|
|
256
257
|
const request = ctx.request;
|
|
257
258
|
|
|
258
259
|
// First, extract the resource type from the path
|
|
@@ -369,6 +370,7 @@ const createHeaderValidator = (conf, logger) => async (
|
|
|
369
370
|
* @return {Function}
|
|
370
371
|
*/
|
|
371
372
|
const createJwsValidator = (logger, keys, exclusions) => {
|
|
373
|
+
// todo: take logger from ctx
|
|
372
374
|
const jwsValidator = new Jws.validator({
|
|
373
375
|
logger: logger,
|
|
374
376
|
validationKeys: keys,
|
|
@@ -381,7 +383,7 @@ const createJwsValidator = (logger, keys, exclusions) => {
|
|
|
381
383
|
if (exclusions.includes('putParties')
|
|
382
384
|
&& ctx.request.method === 'PUT'
|
|
383
385
|
&& ctx.request.path.startsWith('/parties/')) {
|
|
384
|
-
logger.
|
|
386
|
+
logger.isInfoEnabled && logger.info('Skipping jws validation on put parties. config flag is set');
|
|
385
387
|
return await next();
|
|
386
388
|
}
|
|
387
389
|
|
|
@@ -389,7 +391,7 @@ const createJwsValidator = (logger, keys, exclusions) => {
|
|
|
389
391
|
// todo: validate this requirement. No state is mutated by GETs but
|
|
390
392
|
// there are potential security issues if message origin is used to
|
|
391
393
|
// determine permission sets i.e. what is "readable"
|
|
392
|
-
if(ctx.request.method !== 'GET') {
|
|
394
|
+
if (ctx.request.method !== 'GET') {
|
|
393
395
|
logger.isDebugEnabled && logger.push({ request: ctx.request, body: ctx.request.body }).debug('Validating JWS');
|
|
394
396
|
jwsValidator.validate(ctx.request, logger);
|
|
395
397
|
}
|
|
@@ -439,19 +441,8 @@ const createLogger = (logger) => async (ctx, next) => {
|
|
|
439
441
|
path: ctx.path,
|
|
440
442
|
method: ctx.method
|
|
441
443
|
}});
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
if (!ctx.state.logExcludePaths.includes(ctx.path) && !ctx.path.startsWith('/bulk')) {
|
|
445
|
-
ctx.state.logger.push({body: ctx.request.body}).debug('Request received');
|
|
446
|
-
}
|
|
447
|
-
try {
|
|
448
|
-
await next();
|
|
449
|
-
} catch (err) {
|
|
450
|
-
ctx.state.logger.isErrorEnabled && ctx.state.logger.push(err).error('Error');
|
|
451
|
-
}
|
|
452
|
-
if (!ctx.state.logExcludePaths.includes(ctx.path)) {
|
|
453
|
-
await ctx.state.logger.isDebugEnabled && ctx.state.logger.debug('Request processed');
|
|
454
|
-
}
|
|
444
|
+
|
|
445
|
+
await next();
|
|
455
446
|
};
|
|
456
447
|
|
|
457
448
|
|
|
@@ -510,18 +501,21 @@ const createResponseBodyHandler = () => async (ctx, next) => {
|
|
|
510
501
|
return await next();
|
|
511
502
|
};
|
|
512
503
|
|
|
513
|
-
|
|
514
|
-
|
|
504
|
+
|
|
505
|
+
const logResponse = (ctx) => {
|
|
506
|
+
if (shouldLog(ctx.path, ctx.state.logger)) {
|
|
515
507
|
const { method, path, id } = ctx.request;
|
|
516
508
|
const { status = 'n/a' } = ctx.response;
|
|
517
509
|
const processTime = ((Date.now() - ctx.state.receivedAt) / 1000).toFixed(1);
|
|
518
|
-
logger.info(`[<== ${status}] ${method?.toUpperCase()} ${path} [${processTime}sec] - requestId: ${id}`);
|
|
510
|
+
ctx.state.logger.info(`[<== ${status}] ${method?.toUpperCase()} ${path} [${processTime}sec] - requestId: ${id}`);
|
|
519
511
|
}
|
|
512
|
+
};
|
|
520
513
|
|
|
514
|
+
const createResponseLogging = () => async (ctx, next) => {
|
|
515
|
+
logResponse(ctx);
|
|
521
516
|
return await next();
|
|
522
517
|
};
|
|
523
518
|
|
|
524
|
-
|
|
525
519
|
module.exports = {
|
|
526
520
|
applyState,
|
|
527
521
|
assignFspiopIdentifier,
|
|
@@ -534,4 +528,5 @@ module.exports = {
|
|
|
534
528
|
createRequestValidator,
|
|
535
529
|
createResponseBodyHandler,
|
|
536
530
|
createResponseLogging,
|
|
531
|
+
logResponse,
|
|
537
532
|
};
|
|
@@ -71,7 +71,7 @@ const handleError = (method, err, ctx, stateField) => {
|
|
|
71
71
|
// the structure of the response object in depth to ascertain an underlying mojaloop API error code.
|
|
72
72
|
const errorInformation = err[stateField].lastError.mojaloopError.errorInformation;
|
|
73
73
|
ctx.response.body.statusCode = errorInformation.errorCode;
|
|
74
|
-
ctx.state.logger.warn('errorInformation
|
|
74
|
+
ctx.state.logger.push({ errorInformation }).warn('errorInformation:');
|
|
75
75
|
|
|
76
76
|
// if we have been configured to use an error extensionList item as status code, look for it and use
|
|
77
77
|
// it if it is present...
|
|
@@ -33,6 +33,7 @@ const {
|
|
|
33
33
|
createLogger,
|
|
34
34
|
createRequestIdGenerator,
|
|
35
35
|
createResponseLogging,
|
|
36
|
+
logResponse,
|
|
36
37
|
} = require('../InboundServer/middlewares');
|
|
37
38
|
|
|
38
39
|
|
|
@@ -42,25 +43,29 @@ const {
|
|
|
42
43
|
* @return {Function}
|
|
43
44
|
*/
|
|
44
45
|
const createRequestValidator = (validator) => async (ctx, next) => {
|
|
46
|
+
const { logger } = ctx.state;
|
|
47
|
+
|
|
45
48
|
if (!ctx.state.logExcludePaths.includes(ctx.path)) {
|
|
46
|
-
|
|
49
|
+
logger.isDebugEnabled && logger.debug('Validating request');
|
|
47
50
|
}
|
|
48
51
|
try {
|
|
49
|
-
const matchedPathObject = validator.validateRequest(ctx,
|
|
52
|
+
const matchedPathObject = validator.validateRequest(ctx, logger);
|
|
50
53
|
ctx.state.path = {
|
|
51
54
|
...matchedPathObject
|
|
52
55
|
};
|
|
53
56
|
if (!ctx.state.logExcludePaths.includes(ctx.path)) {
|
|
54
|
-
|
|
57
|
+
logger.isDebugEnabled && logger.debug('Request validation passed');
|
|
55
58
|
}
|
|
56
59
|
await next();
|
|
57
60
|
} catch (err) {
|
|
58
|
-
|
|
61
|
+
const { method, path, id } = ctx.request;
|
|
62
|
+
logger.isWarnEnabled && logger.push({ err, method, path, id }).warn('Request validation failed');
|
|
59
63
|
ctx.response.status = ReturnCodes.BADREQUEST.CODE;
|
|
60
64
|
ctx.response.body = {
|
|
61
65
|
message: `${err.dataPath ? err.dataPath + ' ' : ''}${err.message}`,
|
|
62
66
|
statusCode: 400
|
|
63
67
|
};
|
|
68
|
+
logResponse(ctx);
|
|
64
69
|
}
|
|
65
70
|
};
|
|
66
71
|
|
|
@@ -231,7 +231,7 @@ class Server extends EventEmitter {
|
|
|
231
231
|
);
|
|
232
232
|
this.inboundServer.on('error', (...args) => {
|
|
233
233
|
const errMessage = 'Unhandled error in Inbound Server';
|
|
234
|
-
this.logger.push({ args }).
|
|
234
|
+
this.logger.push({ args }).error(errMessage);
|
|
235
235
|
this.emit('error', errMessage);
|
|
236
236
|
});
|
|
237
237
|
await this.inboundServer.start();
|
|
@@ -251,7 +251,7 @@ class Server extends EventEmitter {
|
|
|
251
251
|
);
|
|
252
252
|
this.outboundServer.on('error', (...args) => {
|
|
253
253
|
const errMessage = 'Unhandled error in Outbound Server';
|
|
254
|
-
this.logger.push({ args }).
|
|
254
|
+
this.logger.push({ args }).error(errMessage);
|
|
255
255
|
this.emit('error', errMessage);
|
|
256
256
|
});
|
|
257
257
|
await this.outboundServer.start();
|
|
@@ -217,7 +217,7 @@ class Cache {
|
|
|
217
217
|
|
|
218
218
|
this.subscribe(channel, (_, message) => {
|
|
219
219
|
try {
|
|
220
|
-
this._logger.push({ channel, message, needParse }).
|
|
220
|
+
this._logger.push({ channel, message, needParse }).debug('subscribeToOneMessageWithTimer is done');
|
|
221
221
|
resolve(needParse ? JSON.parse(message) : message);
|
|
222
222
|
} catch (err) {
|
|
223
223
|
this._logger.push({ channel, err }).warn(`error in subscribeToOneMessageWithTimer: ${err.message}`);
|
|
@@ -595,9 +595,9 @@ class InboundTransfersModel {
|
|
|
595
595
|
|
|
596
596
|
return res;
|
|
597
597
|
} catch (err) {
|
|
598
|
-
this._logger.push({ err }).
|
|
598
|
+
this._logger.push({ err }).error('Error in postFxQuotes');
|
|
599
599
|
const mojaloopError = await this._handleError(err);
|
|
600
|
-
this._logger.push({ mojaloopError }).
|
|
600
|
+
this._logger.push({ mojaloopError }).info(`Sending error response to ${sourceFspId}`);
|
|
601
601
|
return this._mojaloopRequests
|
|
602
602
|
.putFxQuotesError(body.conversionRequestId, mojaloopError, sourceFspId);
|
|
603
603
|
}
|
|
@@ -646,7 +646,7 @@ class InboundTransfersModel {
|
|
|
646
646
|
return 'No response from FX backend';
|
|
647
647
|
}
|
|
648
648
|
|
|
649
|
-
this._logger.
|
|
649
|
+
this._logger.info(`fxTransfer accepted by backend returning homeTransactionId: ${beResponse.homeTransactionId} for mojaloop commitRequestId: ${body.commitRequestId}`);
|
|
650
650
|
this.data.homeTransactionId = beResponse.homeTransactionId;
|
|
651
651
|
|
|
652
652
|
// create a mojaloop fxTransfer fulfil response
|
|
@@ -663,9 +663,9 @@ class InboundTransfersModel {
|
|
|
663
663
|
|
|
664
664
|
return res;
|
|
665
665
|
} catch (err) {
|
|
666
|
-
this._logger.push({ err }).
|
|
666
|
+
this._logger.push({ err }).error('Error in postFxTransfer');
|
|
667
667
|
const mojaloopError = await this._handleError(err);
|
|
668
|
-
this._logger.push({ mojaloopError }).
|
|
668
|
+
this._logger.push({ mojaloopError }).info(`Sending error response to ${sourceFspId}`);
|
|
669
669
|
return this._mojaloopRequests
|
|
670
670
|
.putFxTransfersError(body.commitRequestId, mojaloopError, sourceFspId);
|
|
671
671
|
}
|
|
@@ -26,10 +26,12 @@
|
|
|
26
26
|
******/
|
|
27
27
|
'use strict';
|
|
28
28
|
|
|
29
|
+
const { randomBytes } = require('node:crypto');
|
|
29
30
|
const safeStringify = require('fast-safe-stringify');
|
|
30
31
|
const StateMachine = require('javascript-state-machine');
|
|
31
|
-
const { Enum, Util: {id: idGenerator} } = require('@mojaloop/central-services-shared');
|
|
32
|
+
const { Enum, Util: { id: idGenerator } } = require('@mojaloop/central-services-shared');
|
|
32
33
|
const { Ilp, MojaloopRequests } = require('@mojaloop/sdk-standard-components');
|
|
34
|
+
|
|
33
35
|
const { API_TYPES } = require('../../constants');
|
|
34
36
|
const dto = require('../dto');
|
|
35
37
|
const shared = require('./lib/shared');
|
|
@@ -226,6 +228,7 @@ class OutboundTransfersModel {
|
|
|
226
228
|
// add a transferId if one is not present e.g. on first submission
|
|
227
229
|
if(!this.data.hasOwnProperty('transferId')) {
|
|
228
230
|
this.data.transferId = this._idGenerator();
|
|
231
|
+
this.#generateTraceId();
|
|
229
232
|
}
|
|
230
233
|
|
|
231
234
|
// initialize the transfer state machine to its starting state
|
|
@@ -435,8 +438,13 @@ class OutboundTransfersModel {
|
|
|
435
438
|
// a GET /parties request to the switch
|
|
436
439
|
try {
|
|
437
440
|
latencyTimerDone = this.metrics.partyLookupLatency.startTimer();
|
|
438
|
-
const res = await this._requests.getParties(
|
|
439
|
-
this.data.to.
|
|
441
|
+
const res = await this._requests.getParties(
|
|
442
|
+
this.data.to.idType,
|
|
443
|
+
this.data.to.idValue,
|
|
444
|
+
this.data.to.idSubValue,
|
|
445
|
+
this.data.to.fspId,
|
|
446
|
+
this.#createOtelHeaders()
|
|
447
|
+
);
|
|
440
448
|
|
|
441
449
|
this.data.getPartiesRequest = res.originalRequest;
|
|
442
450
|
|
|
@@ -545,8 +553,13 @@ class OutboundTransfersModel {
|
|
|
545
553
|
// a GET /parties request to the switch
|
|
546
554
|
try {
|
|
547
555
|
latencyTimerDone = this.metrics.partyLookupLatency.startTimer();
|
|
548
|
-
const res = await this._requests.getParties(
|
|
549
|
-
this.data.to.
|
|
556
|
+
const res = await this._requests.getParties(
|
|
557
|
+
this.data.to.idType,
|
|
558
|
+
this.data.to.idValue,
|
|
559
|
+
this.data.to.idSubValue,
|
|
560
|
+
undefined,
|
|
561
|
+
this.#createOtelHeaders()
|
|
562
|
+
);
|
|
550
563
|
this.data.getPartiesRequest = res.originalRequest;
|
|
551
564
|
this.metrics.partyLookupRequests.inc();
|
|
552
565
|
this._logger.isErrorEnabled && this._logger.push({ peer: res }).error('Party lookup sent to peer');
|
|
@@ -577,7 +590,11 @@ class OutboundTransfersModel {
|
|
|
577
590
|
|
|
578
591
|
const subscribing = this._cache.subscribeToOneMessageWithTimer(channel);
|
|
579
592
|
|
|
580
|
-
const resp = await this._requests.postFxQuotes(
|
|
593
|
+
const resp = await this._requests.postFxQuotes(
|
|
594
|
+
payload,
|
|
595
|
+
payload.conversionTerms.counterPartyFsp,
|
|
596
|
+
this.#createOtelHeaders()
|
|
597
|
+
);
|
|
581
598
|
|
|
582
599
|
const { originalRequest } = resp;
|
|
583
600
|
// Setting the fxQuoteRequest to have the fspiop payload
|
|
@@ -720,7 +737,7 @@ class OutboundTransfersModel {
|
|
|
720
737
|
// a POST /quotes request to the switch
|
|
721
738
|
try {
|
|
722
739
|
latencyTimerDone = this.metrics.quoteRequestLatency.startTimer();
|
|
723
|
-
const res = await this._requests.postQuotes(quote, this.data.to.fspId);
|
|
740
|
+
const res = await this._requests.postQuotes(quote, this.data.to.fspId, this.#createOtelHeaders());
|
|
724
741
|
|
|
725
742
|
this.data.quoteRequest = {
|
|
726
743
|
body: quote,
|
|
@@ -816,7 +833,7 @@ class OutboundTransfersModel {
|
|
|
816
833
|
|
|
817
834
|
const subscribing = this._cache.subscribeToOneMessageWithTimer(channel);
|
|
818
835
|
|
|
819
|
-
const { originalRequest } = await this._requests.postFxTransfers(payload, payload.counterPartyFsp);
|
|
836
|
+
const { originalRequest } = await this._requests.postFxTransfers(payload, payload.counterPartyFsp, this.#createOtelHeaders());
|
|
820
837
|
this.data.fxTransferRequest = { body: payload , headers: originalRequest.headers };
|
|
821
838
|
this._logger.push({ originalRequest }).verbose('fxTransfers request is sent to hub');
|
|
822
839
|
|
|
@@ -931,8 +948,12 @@ class OutboundTransfersModel {
|
|
|
931
948
|
completedTimestamp: (new Date()).toISOString(),
|
|
932
949
|
transferState: TransferState.COMMITTED,
|
|
933
950
|
};
|
|
934
|
-
const res = this._requests.patchTransfers(
|
|
935
|
-
|
|
951
|
+
const res = this._requests.patchTransfers(
|
|
952
|
+
this.data.transferId,
|
|
953
|
+
patchNotification,
|
|
954
|
+
this.data.quoteResponseSource,
|
|
955
|
+
this.#createOtelHeaders()
|
|
956
|
+
);
|
|
936
957
|
this.data.patch = res.originalRequest;
|
|
937
958
|
this._logger.isInfoEnabled && this._logger.info(`PATCH final notification sent to peer for transfer ${this.data.transferId}`);
|
|
938
959
|
}
|
|
@@ -963,15 +984,16 @@ class OutboundTransfersModel {
|
|
|
963
984
|
// a POST /transfers request to the switch
|
|
964
985
|
try {
|
|
965
986
|
latencyTimerDone = this.metrics.transferLatency.startTimer();
|
|
987
|
+
const headers = this.#createOtelHeaders();
|
|
966
988
|
|
|
967
989
|
let res;
|
|
968
990
|
if (this._apiType === API_TYPES.iso20022) {
|
|
969
991
|
// Pass in quote request as context if needed for ISO20022 message generation
|
|
970
|
-
res = await this._requests.postTransfers(prepare, this.data.quoteResponseSource, {
|
|
992
|
+
res = await this._requests.postTransfers(prepare, this.data.quoteResponseSource, headers, {
|
|
971
993
|
isoPostQuoteResponse: this.data.quoteResponse.originalIso20022QuoteResponse
|
|
972
994
|
});
|
|
973
995
|
} else {
|
|
974
|
-
res = await this._requests.postTransfers(prepare, this.data.quoteResponseSource, {});
|
|
996
|
+
res = await this._requests.postTransfers(prepare, this.data.quoteResponseSource, headers, {});
|
|
975
997
|
}
|
|
976
998
|
|
|
977
999
|
this.data.prepare = {
|
|
@@ -1050,7 +1072,7 @@ class OutboundTransfersModel {
|
|
|
1050
1072
|
// now we have a timeout handler and a cache subscriber hooked up we can fire off
|
|
1051
1073
|
// a GET /transfers request to the switch
|
|
1052
1074
|
try {
|
|
1053
|
-
const res = await this._requests.getTransfers(this.data.transferId);
|
|
1075
|
+
const res = await this._requests.getTransfers(this.data.transferId, undefined, this.#createOtelHeaders());
|
|
1054
1076
|
this._logger.isVerboseEnabled && this._logger.push({ peer: res }).verbose(`getTransfers ${this.data.transferId} sent to peer`);
|
|
1055
1077
|
}
|
|
1056
1078
|
catch(err) {
|
|
@@ -1493,6 +1515,23 @@ class OutboundTransfersModel {
|
|
|
1493
1515
|
throw err;
|
|
1494
1516
|
}
|
|
1495
1517
|
}
|
|
1518
|
+
|
|
1519
|
+
#createOtelHeaders() {
|
|
1520
|
+
const { traceId } = this.data;
|
|
1521
|
+
const spanId = randomBytes(8).toString('hex');
|
|
1522
|
+
const flags = '01';
|
|
1523
|
+
|
|
1524
|
+
return Object.freeze({
|
|
1525
|
+
traceparent: `00-${traceId}-${spanId}-${flags}`,
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
#generateTraceId() {
|
|
1530
|
+
// todo: add possibility to generate traceId based on transferId
|
|
1531
|
+
this.data.traceId = randomBytes(16).toString('hex');
|
|
1532
|
+
this._logger.isVerboseEnabled && this._logger.verbose(`generated traceId: ${this.data.traceId}`);
|
|
1533
|
+
return this.data.traceId;
|
|
1534
|
+
}
|
|
1496
1535
|
}
|
|
1497
1536
|
|
|
1498
1537
|
module.exports = OutboundTransfersModel;
|
|
@@ -31,19 +31,17 @@
|
|
|
31
31
|
const { Enum } = require('@mojaloop/central-services-shared');
|
|
32
32
|
const { ReturnCodes } = Enum.Http;
|
|
33
33
|
|
|
34
|
-
const router = (handlerMap) => async (ctx, next)
|
|
34
|
+
const router = (handlerMap) => async function routeHandling (ctx, next) {
|
|
35
35
|
const handlers = handlerMap[ctx.state.path.pattern];
|
|
36
|
-
const handler = handlers
|
|
37
|
-
|
|
36
|
+
const handler = handlers?.[ctx.method.toLowerCase()];
|
|
37
|
+
|
|
38
|
+
if (!handler) {
|
|
38
39
|
ctx.state.logger.isErrorEnabled && ctx.state.logger.error('No handler found');
|
|
39
40
|
ctx.response.status = ReturnCodes.NOTFOUND.CODE;
|
|
40
41
|
// TODO: response content according to API spec. Should probably actually be a 404 here.
|
|
41
42
|
ctx.response.body = { statusCode: 404, message: 'Not found' };
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
|
-
if (!ctx.state.logExcludePaths.includes(ctx.path)) {
|
|
45
|
-
ctx.state.logger.isDebugEnabled && ctx.state.logger.push({handler}).debug('Found handler');
|
|
46
|
-
}
|
|
47
45
|
await handler(ctx);
|
|
48
46
|
}
|
|
49
47
|
await next();
|
|
@@ -150,8 +150,7 @@ describe('Outbound Transfers API', () => {
|
|
|
150
150
|
2000)),
|
|
151
151
|
},
|
|
152
152
|
};
|
|
153
|
-
return testPostTransfers(putBodyFn, 504,
|
|
154
|
-
postTransfersErrorTimeoutResponse);
|
|
153
|
+
return testPostTransfers(putBodyFn, 504, postTransfersErrorTimeoutResponse);
|
|
155
154
|
});
|
|
156
155
|
|
|
157
156
|
test('should return mojaloop error response on party resolution', () => {
|
|
@@ -226,6 +226,7 @@ function createPostTransfersTester({
|
|
|
226
226
|
if(body.transferState.prepare) {
|
|
227
227
|
delete body.transferState.prepare;
|
|
228
228
|
}
|
|
229
|
+
delete body.transferState.traceId;
|
|
229
230
|
}
|
|
230
231
|
if(body.quoteResponse) {
|
|
231
232
|
delete body.quoteResponse.headers;
|
|
@@ -248,6 +249,8 @@ function createPostTransfersTester({
|
|
|
248
249
|
if(body.quoteResponse?.originalIso20022QuoteResponse) {
|
|
249
250
|
delete body.quoteResponse.originalIso20022QuoteResponse;
|
|
250
251
|
}
|
|
252
|
+
delete body.traceId;
|
|
253
|
+
|
|
251
254
|
expect(body).toEqual(responseBody);
|
|
252
255
|
const responseValidator = new OpenAPIResponseValidator(apiSpecsOutbound.paths['/transfers'].post);
|
|
253
256
|
const err = responseValidator.validateResponse(responseCode, body);
|
|
@@ -85,6 +85,18 @@ describe('OutboundTransfersModel Tests', () => {
|
|
|
85
85
|
let cache;
|
|
86
86
|
let metricsClient;
|
|
87
87
|
|
|
88
|
+
const createAndInitModel = async (customConfig = {}) => {
|
|
89
|
+
const model = new Model({
|
|
90
|
+
cache,
|
|
91
|
+
logger,
|
|
92
|
+
metricsClient,
|
|
93
|
+
...config,
|
|
94
|
+
...customConfig
|
|
95
|
+
});
|
|
96
|
+
await model.initialize(JSON.parse(JSON.stringify(transferRequest)));
|
|
97
|
+
return model;
|
|
98
|
+
};
|
|
99
|
+
|
|
88
100
|
/**
|
|
89
101
|
*
|
|
90
102
|
* @param {Object} opts
|
|
@@ -202,17 +214,20 @@ describe('OutboundTransfersModel Tests', () => {
|
|
|
202
214
|
});
|
|
203
215
|
|
|
204
216
|
test('initializes to starting state', async () => {
|
|
205
|
-
const model =
|
|
206
|
-
cache,
|
|
207
|
-
logger,
|
|
208
|
-
metricsClient,
|
|
209
|
-
...config,
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
await model.initialize(JSON.parse(JSON.stringify(transferRequest)));
|
|
217
|
+
const model = await createAndInitModel();
|
|
213
218
|
expect(StateMachine.__instance.state).toBe('start');
|
|
219
|
+
expect(model.data.transferId).toEqual(expect.any(String));
|
|
220
|
+
expect(model.data.traceId).toEqual(expect.any(String));
|
|
221
|
+
expect(model.data.traceId.length).toBe(32);
|
|
214
222
|
});
|
|
215
223
|
|
|
224
|
+
// test('should generate traceId based on transferId value', async () => {
|
|
225
|
+
// const model = await createAndInitModel();
|
|
226
|
+
// expect(model.data.transferId.length).toBe(26);
|
|
227
|
+
// expect(model.data.traceId.length).toBe(32);
|
|
228
|
+
// // todo: check traceID value
|
|
229
|
+
// });
|
|
230
|
+
|
|
216
231
|
test('executes all three transfer stages without halting when AUTO_ACCEPT_PARTY and AUTO_ACCEPT_QUOTES are true', async () => {
|
|
217
232
|
config.autoAcceptParty = true;
|
|
218
233
|
config.autoAcceptQuotes = true;
|
|
@@ -520,8 +535,11 @@ describe('OutboundTransfersModel Tests', () => {
|
|
|
520
535
|
expect(result.currentState).toBe(SDKStateEnum.WAITING_FOR_PARTY_ACCEPTANCE);
|
|
521
536
|
expect(StateMachine.__instance.state).toBe('payeeResolved');
|
|
522
537
|
|
|
538
|
+
const otelHeaders = expect.objectContaining({
|
|
539
|
+
traceparent: expect.any(String)
|
|
540
|
+
});
|
|
523
541
|
// check getParties mojaloop requests method was called with the correct arguments
|
|
524
|
-
expect(MojaloopRequests.__getParties).toHaveBeenCalledWith(req.to.idType, req.to.idValue, req.to.idSubValue, testFspId);
|
|
542
|
+
expect(MojaloopRequests.__getParties).toHaveBeenCalledWith(req.to.idType, req.to.idValue, req.to.idSubValue, testFspId, otelHeaders);
|
|
525
543
|
});
|
|
526
544
|
|
|
527
545
|
test('resolves multiple payees and halts', async () => {
|