diff --git a/package-lock.json b/package-lock.json index 091bb295..ad2ace39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "sims", - "version": "10.6.0", + "version": "10.6.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -459,9 +459,9 @@ } }, "@jsdevtools/ono": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.2.tgz", - "integrity": "sha512-qS/a24RA5FEoiJS9wiv6Pwg2c/kiUo3IVUQcfeM9JvsR6pM8Yx+yl/6xWYLckZCT5jpLNhslgjiA8p/XcGyMRQ==" + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "@korzio/djv-draft-04": { "version": "2.0.1", @@ -477,6 +477,20 @@ "requires": { "@mojaloop/sdk-standard-components": "10.3.2", "lodash": "4.17.19" + }, + "dependencies": { + "@mojaloop/sdk-standard-components": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@mojaloop/sdk-standard-components/-/sdk-standard-components-10.3.2.tgz", + "integrity": "sha512-O5DqUL+ncS718nFDFUMx8QO0pmTmg+/CNYuaXPrFfHDgf8c05mgSjg6Z8wt69Auwph6WXWaNjKTQRqZG2/BDdQ==", + "requires": { + "base64url": "3.0.1", + "fast-safe-stringify": "^2.0.7", + "ilp-packet": "2.2.0", + "jsonwebtoken": "8.5.1", + "jws": "4.0.0" + } + } } }, "@mojaloop/central-services-logger": { @@ -498,24 +512,24 @@ } }, "@mojaloop/central-services-shared": { - "version": "10.5.3", - "resolved": "https://registry.npmjs.org/@mojaloop/central-services-shared/-/central-services-shared-10.5.3.tgz", - "integrity": "sha512-RG91BLBTgui51NAsEogtxY6Stq9ic2OmfRe5qpSgQze4HM6+ziEMBVyxeVSM+43FbwXE3RKCJFHe77akba+xew==", + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/@mojaloop/central-services-shared/-/central-services-shared-10.6.2.tgz", + "integrity": "sha512-16fEcpaB0dYt+2acYJOtm95IQEtkXDgZSucHAYgZcqrpH6C7Tx9SmMJ/smXR6fDg88uIB6Hs9J4zE/61BhlFlw==", "requires": { "@hapi/catbox": "11.1.0", "@hapi/catbox-memory": "5.0.0", - "@mojaloop/central-services-error-handling": "10.4.1", - "@mojaloop/central-services-logger": "10.4.0", + "@mojaloop/central-services-error-handling": "10.6.0", + "@mojaloop/central-services-logger": "10.6.0", "@mojaloop/central-services-metrics": "9.5.0", - "@mojaloop/event-sdk": "10.4.0", - "ajv": "6.12.2", - "ajv-keywords": "3.5.0", + "@mojaloop/event-sdk": "10.6.0", + "ajv": "6.12.3", + "ajv-keywords": "3.5.1", "axios": "0.19.2", "base64url": "3.0.1", "clone": "2.1.2", "data-urls": "2.0.0", "immutable": "3.8.2", - "lodash": "4.17.15", + "lodash": "4.17.19", "mustache": "4.0.1", "openapi-backend": "3.5.1", "raw-body": "2.4.1" @@ -532,88 +546,31 @@ "@hapi/podium": "4.x.x" } }, - "@mojaloop/central-services-error-handling": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@mojaloop/central-services-error-handling/-/central-services-error-handling-10.4.1.tgz", - "integrity": "sha512-WGhZC+L5va4XwA2jFi7+1S1DrnpRE7Vdefu6u676d2AH1SvMx2ZM8e5943+1Y1T/xlF1ngXYrP7HSMaQG4g+GA==", + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { - "@mojaloop/sdk-standard-components": "10.3.2", - "lodash": "4.17.15" - } - }, - "@mojaloop/central-services-logger": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@mojaloop/central-services-logger/-/central-services-logger-10.4.0.tgz", - "integrity": "sha512-vndjDG6klX7cGF8+5KrlmwDtav+2rCL5Ntpfd5NG9FqxluFcUkj9d2BUUs99CzG+qkkJZNITvfL8uBooSdYiJg==", - "requires": { - "parse-strings-in-object": "2.0.0", - "rc": "1.2.8", - "winston": "3.2.1" - } - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "one-time": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", - "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "winston": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", - "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", - "requires": { - "async": "^2.6.1", - "diagnostics": "^1.1.1", - "is-stream": "^1.1.0", - "logform": "^2.1.1", - "one-time": "0.0.4", - "readable-stream": "^3.1.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.3.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } } } }, "@mojaloop/event-sdk": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@mojaloop/event-sdk/-/event-sdk-10.4.0.tgz", - "integrity": "sha512-F6ceYlFR7gd3IUvUmJnE5aqKX5+1gsV+KdudFtWzOjjuP9dtuKtkAtVUP934ijvlGKF6vZPGheiwgnqGUh1cTA==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/@mojaloop/event-sdk/-/event-sdk-10.6.0.tgz", + "integrity": "sha512-mDVow/3WDILDUF2v32fqcOZAoRQCOZX8D2fJF3kHvZLGthU9ydNPHK118aVibw76XAyq6E6UbxHMXg3ZUPBlhg==", "requires": { "@grpc/proto-loader": "0.5.4", - "@mojaloop/central-services-logger": "10.4.0", + "@mojaloop/central-services-logger": "10.6.0", "brototype": "0.0.6", "error-callsites": "2.0.3", "grpc": "1.24.3", - "lodash": "4.17.15", - "moment": "2.26.0", + "lodash": "4.17.19", + "moment": "2.27.0", "parse-strings-in-object": "2.0.0", "protobufjs": "6.9.0", "rc": "1.2.8", @@ -621,85 +578,26 @@ "sinon": "9.0.2", "traceparent": "1.0.0", "tslib": "2.0.0", - "uuid4": "1.1.4", - "winston": "3.2.1" + "uuid4": "2.0.2", + "winston": "3.3.3" }, "dependencies": { - "@mojaloop/central-services-logger": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@mojaloop/central-services-logger/-/central-services-logger-10.4.0.tgz", - "integrity": "sha512-vndjDG6klX7cGF8+5KrlmwDtav+2rCL5Ntpfd5NG9FqxluFcUkj9d2BUUs99CzG+qkkJZNITvfL8uBooSdYiJg==", - "requires": { - "parse-strings-in-object": "2.0.0", - "rc": "1.2.8", - "winston": "3.2.1" - } - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, "moment": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", - "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" - }, - "one-time": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", - "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" }, "tslib": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" - }, - "winston": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", - "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", - "requires": { - "async": "^2.6.1", - "diagnostics": "^1.1.1", - "is-stream": "^1.1.0", - "logform": "^2.1.1", - "one-time": "0.0.4", - "readable-stream": "^3.1.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.3.0" - } } } }, "@mojaloop/sdk-standard-components": { - "version": "10.3.2", - "resolved": "https://registry.npmjs.org/@mojaloop/sdk-standard-components/-/sdk-standard-components-10.3.2.tgz", - "integrity": "sha512-O5DqUL+ncS718nFDFUMx8QO0pmTmg+/CNYuaXPrFfHDgf8c05mgSjg6Z8wt69Auwph6WXWaNjKTQRqZG2/BDdQ==", + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/@mojaloop/sdk-standard-components/-/sdk-standard-components-10.6.1.tgz", + "integrity": "sha512-EX5QeJdEqfBaOpEMBM7NcrXPy96xSHO6JODBRDPRj9T6xyLPUICYImKpXQd6rgTZga5APKqtT2Xo1dy1F3pevw==", "requires": { "base64url": "3.0.1", "fast-safe-stringify": "^2.0.7", @@ -917,9 +815,9 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" }, "@types/node": { - "version": "13.13.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.13.tgz", - "integrity": "sha512-UfvBE9oRCAJVzfR+3eWm/sdLFe/qroAPEXP3GPJ1SehQiEVgZT6NQZWYbPMiJ3UdcKM06v4j+S1lTcdWCmw+3g==" + "version": "13.13.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.14.tgz", + "integrity": "sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g==" }, "abab": { "version": "2.0.3", @@ -1007,9 +905,9 @@ } }, "ajv-keywords": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz", - "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==" }, "ansi-align": { "version": "3.0.0", @@ -1704,11 +1602,6 @@ "simple-swizzle": "^0.2.2" } }, - "colornames": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", - "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=" - }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -1992,34 +1885,6 @@ "wrappy": "1" } }, - "diagnostics": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", - "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", - "requires": { - "colorspace": "1.1.x", - "enabled": "1.0.x", - "kuler": "1.0.x" - }, - "dependencies": { - "enabled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", - "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", - "requires": { - "env-variable": "0.0.x" - } - }, - "kuler": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", - "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==", - "requires": { - "colornames": "^1.1.1" - } - } - } - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -2138,11 +2003,6 @@ "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, - "env-variable": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", - "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==" - }, "err-code": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", @@ -6473,9 +6333,9 @@ "dev": true }, "uuid4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/uuid4/-/uuid4-1.1.4.tgz", - "integrity": "sha512-Gr1q2k40LpF8CokcnQFjPDsdslzJbTCTBG5xQIEflUov431gFkY5KduiGIeKYAamkQnNn4IfdHJbLnl9Bib8TQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uuid4/-/uuid4-2.0.2.tgz", + "integrity": "sha512-TzsQS8sN1B2m9WojyNp0X/3JL8J2RScnrAJnooNPL6lq3lA02/XdoWysyUgI6rAif0DzkkWk51N6OggujPy2RA==" }, "v8-compile-cache": { "version": "2.1.0", diff --git a/package.json b/package.json index c150cad4..8d8ae07e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sims", - "version": "10.6.0", + "version": "10.6.1", "description": "A super-simple fsp simulator", "main": "src/index.js", "author": "ModusBox", @@ -42,8 +42,8 @@ "@mojaloop/central-services-error-handling": "10.6.0", "@mojaloop/central-services-logger": "10.6.0", "@mojaloop/central-services-metrics": "9.5.0", - "@mojaloop/central-services-shared": "10.5.3", - "@mojaloop/sdk-standard-components": "10.3.2", + "@mojaloop/central-services-shared": "10.6.2", + "@mojaloop/sdk-standard-components": "10.6.1", "axios": "0.19.2", "base64url": "3.0.1", "blipp": "4.0.1", diff --git a/src/bulkTransfers/routes.js b/src/bulkTransfers/routes.js index 96bd20a1..b1e7f2af 100644 --- a/src/bulkTransfers/routes.js +++ b/src/bulkTransfers/routes.js @@ -180,8 +180,16 @@ module.exports = [ id: Joi.string().required().description('path') }), payload: Joi.object({ - bulkTransferState: Joi.string().required().valid('RECEIVED', 'PENDING', 'ACCEPTED', 'PROCESSING', 'COMPLETED', 'REJECTED').description('State of the bulk transfer').label('@ Invalid bulk transfer state given. @'), - completedTimestamp: Joi.string().regex(/^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$/).description('When the transfer was completed').label('@ A valid transfer completion date must be supplied. @') + errorInformation: Joi.object().keys({ + errorDescription: Joi.string().required(), + errorCode: Joi.string().required().regex(/^[0-9]{4}/), + extensionList: Joi.object().keys({ + extension: Joi.array().items(Joi.object().keys({ + key: Joi.string().required().min(1).max(32).description('Key').label('@ Supplied key fails to match the required format. @'), + value: Joi.string().required().min(1).max(128).description('Value').label('@ Supplied key value fails to match the required format. @') + })).required().min(1).max(16).description('extension') + }).optional().description('Extension list') + }).required().description('Error information') }) } } diff --git a/src/bulkTransfersNegative/routes.js b/src/bulkTransfersNegative/routes.js index 78bcd5f0..f8a8ef6a 100644 --- a/src/bulkTransfersNegative/routes.js +++ b/src/bulkTransfersNegative/routes.js @@ -180,8 +180,16 @@ module.exports = [ id: Joi.string().required().description('path') }), payload: Joi.object({ - bulkTransferState: Joi.string().required().valid('RECEIVED', 'PENDING', 'ACCEPTED', 'PROCESSING', 'COMPLETED', 'REJECTED').description('State of the bulk transfer').label('@ Invalid bulk transfer state given. @'), - completedTimestamp: Joi.string().regex(/^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$/).description('When the transfer was completed').label('@ A valid transfer completion date must be supplied. @') + errorInformation: Joi.object().keys({ + errorDescription: Joi.string().required(), + errorCode: Joi.string().required().regex(/^[0-9]{4}/), + extensionList: Joi.object().keys({ + extension: Joi.array().items(Joi.object().keys({ + key: Joi.string().required().min(1).max(32).description('Key').label('@ Supplied key fails to match the required format. @'), + value: Joi.string().required().min(1).max(128).description('Value').label('@ Supplied key value fails to match the required format. @') + })).required().min(1).max(16).description('extension') + }).optional().description('Extension list') + }).required().description('Error information') }) } }