From 5f6fa439f4a2382fc9b5f1f7f20bb51233650a6e Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:33:59 +0100 Subject: [PATCH 01/13] Install prismock --- examples/bri-3/package-lock.json | 1438 +++++++++++++++++++++++++++++- examples/bri-3/package.json | 1 + 2 files changed, 1409 insertions(+), 30 deletions(-) diff --git a/examples/bri-3/package-lock.json b/examples/bri-3/package-lock.json index 5ac987db7..8ef387694 100644 --- a/examples/bri-3/package-lock.json +++ b/examples/bri-3/package-lock.json @@ -81,6 +81,7 @@ "jest-mock-extended": "^3.0.3", "prettier": "^2.3.2", "prisma": "^5.2.0", + "prismock": "^1.26.1", "source-map-support": "^0.5.20", "supertest": "^6.1.3", "ts-jest": "28.0.5", @@ -237,6 +238,21 @@ "dev": true, "license": "0BSD" }, + "node_modules/@antfu/ni": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@antfu/ni/-/ni-0.21.5.tgz", + "integrity": "sha512-rFmuqZMFa1OTRbxdu3vmfytsy1CtsIUFH0bO85rZ1xdu2uLoioSaEi6iOULDVTQUrnes50jMs+UW355Ndj7Oxg==", + "dev": true, + "bin": { + "na": "bin/na.mjs", + "nci": "bin/nci.mjs", + "ni": "bin/ni.mjs", + "nlx": "bin/nlx.mjs", + "nr": "bin/nr.mjs", + "nu": "bin/nu.mjs", + "nun": "bin/nun.mjs" + } + }, "node_modules/@automapper/classes": { "version": "8.7.7", "resolved": "https://registry.npmjs.org/@automapper/classes/-/classes-8.7.7.tgz", @@ -4465,6 +4481,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@opentelemetry/api": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "dev": true, + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, "node_modules/@personaelabs/spartan-ecdsa": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@personaelabs/spartan-ecdsa/-/spartan-ecdsa-2.1.4.tgz", @@ -4548,6 +4582,17 @@ } } }, + "node_modules/@prisma/debug": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.1.1.tgz", + "integrity": "sha512-R9e2Tn8f+ujVjwn6ne1YkXY35BXzUmxJbGsmD1c8RAZ/NXgbYktEFAwIkOZn5H5zRfY2VDSBvGI6TFpnOu50cg==", + "dev": true, + "dependencies": { + "@types/debug": "4.1.8", + "debug": "4.3.4", + "strip-ansi": "6.0.1" + } + }, "node_modules/@prisma/engines": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.2.0.tgz", @@ -4560,6 +4605,246 @@ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f.tgz", "integrity": "sha512-jsnKT5JIDIE01lAeCj2ghY9IwxkedhKNvxQeoyLs6dr4ZXynetD0vTy7u6wMJt8vVPv8I5DPy/I4CFaoXAgbtg==" }, + "node_modules/@prisma/fetch-engine": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.1.1.tgz", + "integrity": "sha512-75aKd1QAk0ChoKcpq8J3UeFCL6MfE4ETpnrqjS6x/IoscEWDhS4xoLP8+cctROUG46YExwV5ptuBUawVhGi/Jw==", + "dev": true, + "dependencies": { + "@prisma/debug": "5.1.1", + "@prisma/get-platform": "5.1.1", + "execa": "5.1.1", + "find-cache-dir": "3.3.2", + "fs-extra": "11.1.1", + "hasha": "5.2.2", + "http-proxy-agent": "7.0.0", + "https-proxy-agent": "7.0.1", + "kleur": "4.1.5", + "node-fetch": "2.6.12", + "p-filter": "2.1.0", + "p-map": "4.0.0", + "p-retry": "4.6.2", + "progress": "2.0.3", + "rimraf": "3.0.2", + "temp-dir": "2.0.0", + "tempy": "1.0.1" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/https-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz", + "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@prisma/generator-helper": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-5.1.1.tgz", + "integrity": "sha512-Qk9iiVk4JZQYZrYsc1Wx9fXFFnS1AH4T7WyLxCIFnX/end0K5tOK75Qxv6mjZAHE0XUGrzoTlZUkbSDVYz/CvQ==", + "dev": true, + "dependencies": { + "@prisma/debug": "5.1.1", + "@types/cross-spawn": "6.0.2", + "cross-spawn": "7.0.3", + "kleur": "4.1.5" + } + }, + "node_modules/@prisma/generator-helper/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@prisma/get-platform": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.1.1.tgz", + "integrity": "sha512-AH3rafdGQ0WWZMGCrGXPg49Ebd7G/ZT8HL+WR9cqr+i5/g+95dPpMNZjuPt6doAM6EdbrlFj4M08a0x4Fazm4g==", + "dev": true, + "dependencies": { + "@prisma/debug": "5.1.1", + "escape-string-regexp": "4.0.0", + "execa": "5.1.1", + "fs-jetpack": "5.1.0", + "kleur": "4.1.5", + "replace-string": "3.1.0", + "strip-ansi": "6.0.1", + "tempy": "1.0.1", + "terminal-link": "2.1.1", + "ts-pattern": "4.3.0" + } + }, + "node_modules/@prisma/get-platform/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@prisma/internals": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/internals/-/internals-5.1.1.tgz", + "integrity": "sha512-RIai3iR/MbliBZgU4UXtFwAAhhAudmh1UIfxG/9AtZWDQl7x1ENFD8Kf4XW+M/Fh3ZO27aWRgSuNwHBKHEHPtw==", + "dev": true, + "dependencies": { + "@antfu/ni": "0.21.5", + "@opentelemetry/api": "1.4.1", + "@prisma/debug": "5.1.1", + "@prisma/engines": "5.1.1", + "@prisma/fetch-engine": "5.1.1", + "@prisma/generator-helper": "5.1.1", + "@prisma/get-platform": "5.1.1", + "@prisma/prisma-schema-wasm": "5.1.1-1.6a3747c37ff169c90047725a05a6ef02e32ac97e", + "archiver": "5.3.1", + "arg": "5.0.2", + "checkpoint-client": "1.1.27", + "cli-truncate": "2.1.0", + "dotenv": "16.0.3", + "escape-string-regexp": "4.0.0", + "execa": "5.1.1", + "find-up": "5.0.0", + "fp-ts": "2.16.0", + "fs-extra": "11.1.1", + "fs-jetpack": "5.1.0", + "global-dirs": "3.0.1", + "globby": "11.1.0", + "indent-string": "4.0.0", + "is-windows": "1.0.2", + "is-wsl": "2.2.0", + "kleur": "4.1.5", + "new-github-issue-url": "0.2.1", + "node-fetch": "2.6.12", + "npm-packlist": "5.1.3", + "open": "7.4.2", + "p-map": "4.0.0", + "prompts": "2.4.2", + "read-pkg-up": "7.0.1", + "replace-string": "3.1.0", + "resolve": "1.22.2", + "string-width": "4.2.3", + "strip-ansi": "6.0.1", + "strip-indent": "3.0.0", + "temp-dir": "2.0.0", + "tempy": "1.0.1", + "terminal-link": "2.1.1", + "tmp": "0.2.1", + "ts-pattern": "4.3.0" + } + }, + "node_modules/@prisma/internals/node_modules/@prisma/engines": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.1.1.tgz", + "integrity": "sha512-NV/4nVNWFZSJCCIA3HIFJbbDKO/NARc9ej0tX5S9k2EVbkrFJC4Xt9b0u4rNZWL4V+F5LAjvta8vzEUw0rw+HA==", + "dev": true, + "hasInstallScript": true + }, + "node_modules/@prisma/internals/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/@prisma/internals/node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@prisma/internals/node_modules/fp-ts": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.0.tgz", + "integrity": "sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==", + "dev": true + }, + "node_modules/@prisma/internals/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@prisma/internals/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@prisma/internals/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@prisma/prisma-schema-wasm": { + "version": "5.1.1-1.6a3747c37ff169c90047725a05a6ef02e32ac97e", + "resolved": "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.1.1-1.6a3747c37ff169c90047725a05a6ef02e32ac97e.tgz", + "integrity": "sha512-d1E8kp7DwfWG6R5Fy+06Jin/AJEHIXvROMGPvJ3SBoUUOv+w3n4EyFD6ouy2/U16CbPQkZtPlhsaJvEuaR9fkg==", + "dev": true + }, "node_modules/@rushstack/eslint-patch": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", @@ -5102,12 +5387,30 @@ "@types/node": "*" } }, + "node_modules/@types/cross-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", + "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/crypto-js": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", "dev": true }, + "node_modules/@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/ed2curve": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@types/ed2curve/-/ed2curve-0.2.2.tgz", @@ -5271,10 +5574,22 @@ "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", "peer": true }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, "node_modules/@types/node": { "version": "16.11.62", "license": "MIT" }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, "node_modules/@types/parse-json": { "version": "4.0.0", "license": "MIT" @@ -5343,6 +5658,12 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, "node_modules/@types/secp256k1": { "version": "4.0.3", "license": "MIT", @@ -6106,6 +6427,59 @@ "version": "1.0.0", "license": "MIT" }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/arg": { "version": "4.1.3", "license": "MIT" @@ -6310,7 +6684,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "peer": true, "engines": { "node": ">=8" } @@ -6881,6 +7254,15 @@ "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "dev": true, + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/buffer": { "version": "5.7.1", "dev": true, @@ -6904,6 +7286,15 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -7095,6 +7486,50 @@ "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" }, + "node_modules/checkpoint-client": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/checkpoint-client/-/checkpoint-client-1.1.27.tgz", + "integrity": "sha512-xstymfUalJOv6ZvTtmkwP4ORJN36ikT4PvrIoLe3wstbYf87XIXCcZrSmbFQOjyB0v1qbBnCsAscDpfdZlCkFA==", + "dev": true, + "dependencies": { + "ci-info": "3.8.0", + "env-paths": "2.2.1", + "make-dir": "4.0.0", + "ms": "2.1.3", + "node-fetch": "2.6.12", + "uuid": "9.0.0" + } + }, + "node_modules/checkpoint-client/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/checkpoint-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/checkpoint-client/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/chokidar": { "version": "3.5.3", "funding": [ @@ -7129,9 +7564,19 @@ } }, "node_modules/ci-info": { - "version": "3.3.2", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/cipher-base": { "version": "1.0.4", @@ -7245,6 +7690,36 @@ "@colors/colors": "1.5.0" } }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cli-width": { "version": "3.0.0", "dev": true, @@ -7451,21 +7926,56 @@ "node": ">= 6" } }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.0", "dev": true, "license": "MIT" }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -7588,6 +8098,33 @@ "node": ">=0.8" } }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/create-hash": { "version": "1.2.0", "license": "MIT", @@ -7649,6 +8186,15 @@ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -7773,6 +8319,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "license": "MIT", @@ -10177,6 +10745,23 @@ "version": "2.0.0", "license": "MIT" }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", @@ -10371,6 +10956,12 @@ "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "10.1.0", "dev": true, @@ -10384,6 +10975,36 @@ "node": ">=12" } }, + "node_modules/fs-jetpack": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-5.1.0.tgz", + "integrity": "sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA==", + "dev": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/fs-jetpack/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/fs-jetpack/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs-monkey": { "version": "1.0.3", "dev": true, @@ -10411,8 +11032,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -10649,6 +11274,30 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -11272,6 +11921,42 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11311,6 +11996,12 @@ "node": ">= 6.0.0" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "node_modules/html-escaper": { "version": "2.0.2", "dev": true, @@ -11345,6 +12036,31 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", @@ -11430,6 +12146,39 @@ "node": ">= 4" } }, + "node_modules/ignore-walk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/immutable": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", @@ -11676,10 +12425,11 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "license": "MIT", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11699,6 +12449,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "license": "MIT", @@ -11779,6 +12544,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -11893,6 +12676,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "1.0.0", "license": "MIT" @@ -13037,6 +13841,18 @@ "language-subtag-registry": "^0.3.20" } }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, "node_modules/level": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", @@ -13159,10 +13975,28 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" }, "node_modules/lodash.isboolean": { "version": "3.0.3", @@ -13209,6 +14043,12 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "peer": true }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "license": "MIT", @@ -13492,6 +14332,15 @@ "node": ">=6" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "license": "ISC" @@ -13768,6 +14617,15 @@ "version": "2.6.2", "license": "MIT" }, + "node_modules/new-github-issue-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", + "integrity": "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/nkeys.js": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", @@ -13810,8 +14668,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -13866,6 +14725,27 @@ "nopt": "bin/nopt.js" } }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "license": "MIT", @@ -13873,6 +14753,85 @@ "node": ">=0.10.0" } }, + "node_modules/npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", + "dev": true, + "dependencies": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-packlist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "dev": true, @@ -14068,6 +15027,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.1", "license": "MIT", @@ -14148,6 +15123,27 @@ "node": ">=0.10.0" } }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/p-limit": { "version": "3.1.0", "license": "MIT", @@ -14188,6 +15184,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "2.2.0", "license": "MIT", @@ -14531,10 +15540,34 @@ "@prisma/client": ">=5.0.0" } }, + "node_modules/prismock": { + "version": "1.26.1", + "resolved": "https://registry.npmjs.org/prismock/-/prismock-1.26.1.tgz", + "integrity": "sha512-Glb3DVHzyZY6E9WdD4KdvhUNJN0ChYS+HEXlfW6VMrE+q/PeewXIH2WcrCoG+a1rbUP+6ZwsJ6MdoRLkn+X5Qg==", + "dev": true, + "dependencies": { + "@paralleldrive/cuid2": "2.2.2", + "@prisma/generator-helper": "5.1.1", + "@prisma/internals": "5.1.1", + "bson": "6.2.0" + }, + "peerDependencies": { + "@prisma/client": "*" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "license": "MIT" }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", @@ -14678,6 +15711,108 @@ "dev": true, "license": "MIT" }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "license": "MIT", @@ -14695,6 +15830,36 @@ "version": "5.1.2", "license": "MIT" }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/readdirp": { "version": "3.6.0", "license": "MIT", @@ -14834,6 +15999,18 @@ "jsesc": "bin/jsesc" } }, + "node_modules/replace-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/replace-string/-/replace-string-3.1.0.tgz", + "integrity": "sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/req-cwd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", @@ -14986,10 +16163,11 @@ "peer": true }, "node_modules/resolve": { - "version": "1.22.1", - "license": "MIT", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -15046,6 +16224,15 @@ "node": ">=8" } }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/reusify": { "version": "1.0.4", "license": "MIT", @@ -15402,9 +16589,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -16333,6 +17520,38 @@ "dev": true, "license": "MIT" }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, "node_modules/sprintf-js": { "version": "1.0.3", "license": "BSD-3-Clause" @@ -16571,6 +17790,18 @@ "npm": ">=3" } }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "license": "MIT", @@ -16758,6 +17989,76 @@ "node": ">=6" } }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/terminal-link": { "version": "2.1.1", "dev": true, @@ -17146,6 +18447,12 @@ } } }, + "node_modules/ts-pattern": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.3.0.tgz", + "integrity": "sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==", + "dev": true + }, "node_modules/tsconfig-paths": { "version": "4.0.0", "dev": true, @@ -17586,6 +18893,18 @@ "node": ">=4" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "2.0.0", "license": "MIT", @@ -17682,6 +19001,16 @@ "node": ">=10.12.0" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/validator": { "version": "13.7.0", "license": "MIT", @@ -18218,6 +19547,55 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "dev": true, + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } } } } diff --git a/examples/bri-3/package.json b/examples/bri-3/package.json index 67ef20528..b82a44b5b 100644 --- a/examples/bri-3/package.json +++ b/examples/bri-3/package.json @@ -99,6 +99,7 @@ "jest-mock-extended": "^3.0.3", "prettier": "^2.3.2", "prisma": "^5.2.0", + "prismock": "^1.26.1", "source-map-support": "^0.5.20", "supertest": "^6.1.3", "ts-jest": "28.0.5", From 2b2d2f9246643f292eddd6dc2d1248d6921cdb35 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:34:09 +0100 Subject: [PATCH 02/13] Add mocks folder with prisma client mock --- examples/bri-3/__mocks__/@prisma/client.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 examples/bri-3/__mocks__/@prisma/client.ts diff --git a/examples/bri-3/__mocks__/@prisma/client.ts b/examples/bri-3/__mocks__/@prisma/client.ts new file mode 100644 index 000000000..0599af728 --- /dev/null +++ b/examples/bri-3/__mocks__/@prisma/client.ts @@ -0,0 +1,4 @@ +import { PrismockClient } from 'prismock'; + +export * from '@prisma/client'; +export { PrismockClient as PrismaClient }; \ No newline at end of file From 5d4d6df2c43cfcea023369aeec04dadeabc2014f Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:34:47 +0100 Subject: [PATCH 03/13] Fix not found error msgs --- .../src/bri/workgroup/workflows/agents/workflows.agent.ts | 6 ++++-- .../workgroup/workflows/agents/workflowsStorage.agent.ts | 4 ++-- .../bri-3/src/bri/workgroup/workflows/api/err.messages.ts | 4 +--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts b/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts index f1534a786..a47af5f6d 100644 --- a/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts +++ b/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts @@ -10,9 +10,11 @@ import { WorkstepStorageAgent } from '../../worksteps/agents/workstepsStorage.ag import { Workstep } from '../../worksteps/models/workstep'; import { BPI_ACCOUNT_OWNERS_NOT_WORKGROUP_PARTICIPANTS, - WORKFLOW_NOT_FOUND_ERR_MESSAGE, - WORKSTEP_NOT_FOUND_ERR_MESSAGE, + NOT_FOUND_ERR_MESSAGE as WORKFLOW_NOT_FOUND_ERR_MESSAGE, } from '../api/err.messages'; +import { + NOT_FOUND_ERR_MESSAGE as WORKSTEP_NOT_FOUND_ERR_MESSAGE +} from '../../worksteps/api/err.messages'; import { Workflow } from '../models/workflow'; import { WorkflowStorageAgent } from './workflowsStorage.agent'; import { BpiAccount } from 'src/bri/state/bpiAccounts/models/bpiAccount'; diff --git a/examples/bri-3/src/bri/workgroup/workflows/agents/workflowsStorage.agent.ts b/examples/bri-3/src/bri/workgroup/workflows/agents/workflowsStorage.agent.ts index 9e6ace341..e0ac96685 100644 --- a/examples/bri-3/src/bri/workgroup/workflows/agents/workflowsStorage.agent.ts +++ b/examples/bri-3/src/bri/workgroup/workflows/agents/workflowsStorage.agent.ts @@ -1,7 +1,7 @@ import { Injectable, NotFoundException } from '@nestjs/common'; import { PrismaMapper } from '../../../../shared/prisma/prisma.mapper'; import { PrismaService } from '../../../../shared/prisma/prisma.service'; -import { WORKFLOW_NOT_FOUND_ERR_MESSAGE } from '../api/err.messages'; +import { NOT_FOUND_ERR_MESSAGE } from '../api/err.messages'; import { Workflow } from '../models/workflow'; @Injectable() @@ -21,7 +21,7 @@ export class WorkflowStorageAgent { }); if (!workflowModel) { - throw new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE); + throw new NotFoundException(NOT_FOUND_ERR_MESSAGE); } return this.mapper.map(workflowModel, Workflow); diff --git a/examples/bri-3/src/bri/workgroup/workflows/api/err.messages.ts b/examples/bri-3/src/bri/workgroup/workflows/api/err.messages.ts index 6739e95ba..873f0d305 100644 --- a/examples/bri-3/src/bri/workgroup/workflows/api/err.messages.ts +++ b/examples/bri-3/src/bri/workgroup/workflows/api/err.messages.ts @@ -1,6 +1,4 @@ -export const WORKFLOW_NOT_FOUND_ERR_MESSAGE = 'Workflow does not exist.'; - -export const WORKSTEP_NOT_FOUND_ERR_MESSAGE = 'Workstep does not exist.'; +export const NOT_FOUND_ERR_MESSAGE = 'Workflow does not exist.'; export const BPI_ACCOUNT_OWNERS_NOT_WORKGROUP_PARTICIPANTS = 'Provided Bpi Subject Account owners are not Workgroup participants.'; From d3b81ad24fb6eb65c91e11e464e241590da9d86c Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:35:04 +0100 Subject: [PATCH 04/13] Fix not found msgs in tests --- .../workflows/api/workflows.controller.spec.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/bri-3/src/bri/workgroup/workflows/api/workflows.controller.spec.ts b/examples/bri-3/src/bri/workgroup/workflows/api/workflows.controller.spec.ts index a8d8b4dc9..6c978373c 100644 --- a/examples/bri-3/src/bri/workgroup/workflows/api/workflows.controller.spec.ts +++ b/examples/bri-3/src/bri/workgroup/workflows/api/workflows.controller.spec.ts @@ -10,7 +10,7 @@ import { TestDataHelper } from '../../../../shared/testing/testData.helper'; import { BpiAccountAgent } from '../../../state/bpiAccounts/agents/bpiAccounts.agent'; import { BpiAccountStorageAgent } from '../../../state/bpiAccounts/agents/bpiAccountsStorage.agent'; import { BpiSubjectAccountAgent } from '../../../identity/bpiSubjectAccounts/agents/bpiSubjectAccounts.agent'; -import { WORKFLOW_NOT_FOUND_ERR_MESSAGE } from '../../workflows/api/err.messages'; +import { NOT_FOUND_ERR_MESSAGE } from '../../workflows/api/err.messages'; import { WorkgroupAgent } from '../../workgroups/agents/workgroups.agent'; import { WorkstepStorageAgent } from '../../worksteps/agents/workstepsStorage.agent'; import { WorkstepProfile } from '../../worksteps/workstep.profile'; @@ -141,13 +141,13 @@ describe('WorkflowsController', () => { // Arrange const nonExistentId = '123'; workflowStorageAgentMock.getWorkflowById.mockRejectedValueOnce( - new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE), + new NotFoundException(NOT_FOUND_ERR_MESSAGE), ); // Act and assert expect(async () => { await workflowController.getWorkflowById(nonExistentId); - }).rejects.toThrow(new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE)); + }).rejects.toThrow(new NotFoundException(NOT_FOUND_ERR_MESSAGE)); }); it('should return the correct workflow if proper id passed ', async () => { @@ -250,13 +250,13 @@ describe('WorkflowsController', () => { }; workflowStorageAgentMock.updateWorkflow.mockRejectedValueOnce( - new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE), + new NotFoundException(NOT_FOUND_ERR_MESSAGE), ); // Act and assert expect(async () => { await workflowController.updateWorkflow(nonExistentId, requestDto); - }).rejects.toThrow(new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE)); + }).rejects.toThrow(new NotFoundException(NOT_FOUND_ERR_MESSAGE)); }); it('should perform the update if existing id passed', async () => { @@ -297,13 +297,13 @@ describe('WorkflowsController', () => { // Arrange const nonExistentId = '123'; workflowStorageAgentMock.updateWorkflow.mockRejectedValueOnce( - new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE), + new NotFoundException(NOT_FOUND_ERR_MESSAGE), ); // Act and assert expect(async () => { await workflowController.deleteWorkflow(nonExistentId); - }).rejects.toThrow(new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE)); + }).rejects.toThrow(new NotFoundException(NOT_FOUND_ERR_MESSAGE)); }); it('should perform the delete if existing id passed', async () => { From c1780cbe41280208150c6f3a84bfe44557bf0c81 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:35:37 +0100 Subject: [PATCH 05/13] Rework transaction agent tests --- .../agents/transactions.agent.spec.ts | 413 +++++++++--------- 1 file changed, 210 insertions(+), 203 deletions(-) diff --git a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts index a9c064d3e..6e66bda16 100644 --- a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts +++ b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts @@ -1,10 +1,5 @@ -import { DeepMockProxy, mockDeep } from 'jest-mock-extended'; -import { uuid } from 'uuidv4'; -import { ICircuitService } from '../../../bri/zeroKnowledgeProof/services/circuit/circuitService.interface'; -import { TestDataHelper } from '../../../shared/testing/testData.helper'; import { AuthAgent } from '../../auth/agent/auth.agent'; -import { BpiSubjectAccount } from '../../identity/bpiSubjectAccounts/models/bpiSubjectAccount'; -import { BpiSubject } from '../../identity/bpiSubjects/models/bpiSubject'; +import { BpiSubjectAccount as ModelBpiSubjectAccount } from '../../identity/bpiSubjectAccounts/models/bpiSubjectAccount'; import { WorkflowStorageAgent } from '../../workgroup/workflows/agents/workflowsStorage.agent'; import { WorkstepStorageAgent } from '../../workgroup/worksteps/agents/workstepsStorage.agent'; import { Transaction } from '../models/transaction'; @@ -12,191 +7,235 @@ import { TransactionStatus } from '../models/transactionStatus.enum'; import { TransactionStorageAgent } from './transactionStorage.agent'; import { TransactionAgent } from './transactions.agent'; import { MerkleTreeService } from '../../merkleTree/services/merkleTree.service'; +import { + BpiSubject, + BpiSubjectAccount, + Workflow, + Workgroup, + Workstep, + BpiAccount, + PrismaClient, +} from '../../../../__mocks__/@prisma/client'; +import { Test, TestingModule } from '@nestjs/testing'; +import { SnarkjsCircuitService } from '../../zeroKnowledgeProof/services/circuit/snarkjs/snarkjs.service'; +import { PrismaMapper } from '../../../shared/prisma/prisma.mapper'; +import { PrismaService } from '../../../shared/prisma/prisma.service'; +import { BpiSubjectStorageAgent } from '../../identity/bpiSubjects/agents/bpiSubjectsStorage.agent'; +import { LoggingModule } from '../../../shared/logging/logging.module'; +import { NotFoundException } from '@nestjs/common'; +import { NOT_FOUND_ERR_MESSAGE as WORKSTEP_NOT_FOUND_ERR_MESSAGE } from '../../workgroup/worksteps/api/err.messages'; +import { NOT_FOUND_ERR_MESSAGE as WORKFLOW_NOT_FOUND_ERR_MESSAGE } from '../../workgroup/workflows/api/err.messages'; +import { AuthModule } from '../../../bri/auth/auth.module'; +import { AutomapperModule } from '@automapper/nestjs'; +import { classes } from '@automapper/classes'; + +let agent: TransactionAgent; +let authAgent: AuthAgent; +let prisma = new PrismaClient(); +let bpiSubject1: BpiSubject; +let bpiSubject2: BpiSubject; +let bpiSubjectAccount1: BpiSubjectAccount; +let bpiSubjectAccount2: BpiSubjectAccount; +let bpiAccount1: BpiAccount; +let workgroup: Workgroup; +let workstep: Workstep; +let workflow: Workflow; + +beforeEach(async () => { + prisma = new PrismaClient(); + const module: TestingModule = await Test.createTestingModule({ + imports: [ + LoggingModule, + AuthModule, + AutomapperModule.forRoot({ + strategyInitializer: classes(), + }), + ], + providers: [ + TransactionAgent, + WorkstepStorageAgent, + WorkflowStorageAgent, + MerkleTreeService, + TransactionStorageAgent, + PrismaService, + PrismaMapper, + BpiSubjectStorageAgent, + { + provide: 'ICircuitService', + useClass: SnarkjsCircuitService, + }, + ], + }) + .overrideProvider(PrismaService) + .useValue(prisma) + .compile(); + + agent = module.get(TransactionAgent); + authAgent = module.get(AuthAgent); + bpiSubject1 = await prisma.bpiSubject.create({ + data: { + name: 'name', + description: 'desc', + publicKey: + '0x047a197a795a747c154dd92b217a048d315ef9ca1bfa9c15bfefe4e02fb338a70af23e7683b565a8dece5104a85ed24a50d791d8c5cb09ee21aabc927c98516539', + }, + }); -let transactionAgent: TransactionAgent; - -const transactionStorageAgentMock: DeepMockProxy = - mockDeep(); -const workstepStorageAgentMock: DeepMockProxy = - mockDeep(); -const workflowStorageAgentMock: DeepMockProxy = - mockDeep(); -const authAgentMock: DeepMockProxy = mockDeep(); -const merkleTreeServiceMock: DeepMockProxy = - mockDeep(); -const circuitsServiceMock: DeepMockProxy = - mockDeep(); - -// TODO: #742 Setup of this test data below is what should be handled in a separate file where we mock only prisma.client -// and implement various test data scenarios that can be selected with a single line of code. -// https://github.com/demonsters/prisma-mock -const existingWorkgroupId = uuid(); + bpiSubject2 = await prisma.bpiSubject.create({ + data: { + name: 'name2', + description: 'desc2', + publicKey: + '0x04203db7d27bab8d711acc52479efcfa9d7846e4e176d82389689f95cf06a51818b0b9ab1c2c8d72f1a32e236e6296c91c922a0dc3d0cb9afc269834fc5646b980', + }, + }); -const existingBpiSubject1 = new BpiSubject( - '', - 'name', - 'desc', - '0x047a197a795a747c154dd92b217a048d315ef9ca1bfa9c15bfefe4e02fb338a70af23e7683b565a8dece5104a85ed24a50d791d8c5cb09ee21aabc927c98516539', - [], -); -const existingBpiSubject2 = new BpiSubject( - '', - 'name2', - 'desc2', - '0x04203db7d27bab8d711acc52479efcfa9d7846e4e176d82389689f95cf06a51818b0b9ab1c2c8d72f1a32e236e6296c91c922a0dc3d0cb9afc269834fc5646b980', - [], -); + bpiSubjectAccount1 = await prisma.bpiSubjectAccount.create({ + data: { + creatorBpiSubjectId: bpiSubject1.id, + ownerBpiSubjectId: bpiSubject1.id, + authenticationPolicy: '', + authorizationPolicy: '', + verifiableCredential: '', + recoveryKey: '', + }, + include: { + ownerBpiSubject: true, + }, + }); + bpiSubjectAccount2 = await prisma.bpiSubjectAccount.create({ + data: { + creatorBpiSubjectId: bpiSubject2.id, + ownerBpiSubjectId: bpiSubject2.id, + authenticationPolicy: '', + authorizationPolicy: '', + verifiableCredential: '', + recoveryKey: '', + }, + include: { + ownerBpiSubject: true, + }, + }); + bpiAccount1 = await prisma.bpiAccount.create({ + data: { + nonce: 0, + ownerBpiSubjectAccounts: { + connect: [{ + id: bpiSubjectAccount1.id, + }], + }, + }, + }); -const fromBpiSubjectAccount = new BpiSubjectAccount( - '1', - existingBpiSubject1, - existingBpiSubject1, - '', - '', - '', - '', -); -const toBpiSubjectAccount = new BpiSubjectAccount( - '2', - existingBpiSubject2, - existingBpiSubject2, - '', - '', - '', - '', -); + workgroup = await prisma.workgroup.create({ + data: { + name: '', + securityPolicy: '', + privacyPolicy: '', + }, + }); -const existingBpiAccount1 = TestDataHelper.createBpiAccount([ - fromBpiSubjectAccount, -]); -const existingWorkstep1 = - TestDataHelper.createTestWorkstep(existingWorkgroupId); -const existingWorkflow1 = TestDataHelper.createTestWorkflow( - existingWorkgroupId, - [existingWorkstep1], - existingBpiAccount1, -); + workstep = await prisma.workstep.create({ + data: { + name: '', + version: '', + status: '', + securityPolicy: '', + privacyPolicy: '', + workgroupId: workgroup.id, + }, + }); -beforeAll(async () => { - // TODO: #742 https://github.com/prisma/prisma/issues/10203 - transactionAgent = new TransactionAgent( - transactionStorageAgentMock, - workstepStorageAgentMock, - workflowStorageAgentMock, - authAgentMock, - merkleTreeServiceMock, - circuitsServiceMock, - ); + workflow = await prisma.workflow.create({ + data: { + name: '', + workgroupId: workgroup.id, + bpiAccountId: bpiAccount1.id, + }, + include: { + bpiAccount: true, + }, + }); }); describe('Transaction Agent', () => { - it('Should return false when validateTransactionForExecution invoked with tx with non existent workflow id', async () => { + it('Should throw not found workflow when validateTransactionForExecution invoked with tx with non existent workflow id', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce(undefined); - const tx = new Transaction( '1', 1, '123', '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', 'sig', TransactionStatus.Processing, ); - // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); - - // Assert - expect(validationResult).toBeFalsy(); + // Act and assert + expect(async () => { + await agent.validateTransactionForExecution(tx); + }).rejects.toThrow(new NotFoundException(WORKFLOW_NOT_FOUND_ERR_MESSAGE)); }); - it('Should return false when validateTransactionForExecution invoked with tx with non existent workstep id', async () => { + it('Should throw not found workstep when validateTransactionForExecution invoked with tx with non existent workstep id', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce(undefined); - const tx = new Transaction( '1', 1, + workflow.id, '123', - '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', 'sig', TransactionStatus.Processing, ); - // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); - - // Assert - expect(validationResult).toBeFalsy(); + // Act and assert + expect(async () => { + await agent.validateTransactionForExecution(tx); + }).rejects.toThrow(new NotFoundException(WORKSTEP_NOT_FOUND_ERR_MESSAGE)); }); - it('Should return false when validateTransactionForExecution invoked with tx with non existent fromBpiSubjectAccount', async () => { + it('Should return false when validateTransactionForExecution invoked with tx with undefined fromBpiSubjectAccount', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - const tx = new Transaction( '1', 1, - '123', - '123', - undefined as unknown as BpiSubjectAccount, - toBpiSubjectAccount, + workflow.id, + workstep.id, + undefined as unknown as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', 'sig', TransactionStatus.Processing, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeFalsy(); }); - it('Should return false when validateTransactionForExecution invoked with tx with non existent toBpiSubjectAccount', async () => { + it('Should return false when validateTransactionForExecution invoked with tx with undefined toBpiSubjectAccount', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - const tx = new Transaction( '1', 1, - '123', - '123', - fromBpiSubjectAccount, - undefined as unknown as BpiSubjectAccount, + workflow.id + '', + workstep.id, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + undefined as unknown as ModelBpiSubjectAccount, 'transaction payload', 'sig', TransactionStatus.Processing, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeFalsy(); @@ -204,31 +243,23 @@ describe('Transaction Agent', () => { it('Should return false when validateTransactionForExecution invoked with tx with wrong signature', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - - authAgentMock.verifySignatureAgainstPublicKey.mockReturnValue(false); - + jest + .spyOn(authAgent, 'verifySignatureAgainstPublicKey') + .mockImplementationOnce(() => false); const tx = new Transaction( '1', 1, - '123', - '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + workflow.id, + workstep.id, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', 'wrong sig', TransactionStatus.Processing, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeFalsy(); @@ -236,63 +267,47 @@ describe('Transaction Agent', () => { it('Should return false when validateTransactionForExecution invoked with tx with status not processing', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - - authAgentMock.verifySignatureAgainstPublicKey.mockReturnValue(true); - + jest + .spyOn(authAgent, 'verifySignatureAgainstPublicKey') + .mockImplementationOnce(() => true); const tx = new Transaction( '1', 1, - '123', - '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + workflow.id, + workstep.id, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', - 'correct sig', + 'wrong sig', TransactionStatus.Executed, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeFalsy(); }); - it('Should return false when validateTransactionForExecution invoked with tx with nonce not bpi account nonce + 1', async () => { + it('Should return false when validateTransactionForExecution invoked with tx with nonce not bpi account nonce + 1', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - - authAgentMock.verifySignatureAgainstPublicKey.mockReturnValue(true); - + jest + .spyOn(authAgent, 'verifySignatureAgainstPublicKey') + .mockImplementationOnce(() => true); const tx = new Transaction( '1', - 999, - '123', - '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + 2, + workflow.id, + workstep.id, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', - 'correct sig', - TransactionStatus.Executed, + 'wrong sig', + TransactionStatus.Processing, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeFalsy(); @@ -300,31 +315,23 @@ describe('Transaction Agent', () => { it('Should return true when validateTransactionForExecution invoked with tx with all properties correctly set', async () => { // Arrange - workflowStorageAgentMock.getWorkflowById.mockResolvedValueOnce( - existingWorkflow1, - ); - - workstepStorageAgentMock.getWorkstepById.mockResolvedValueOnce( - existingWorkstep1, - ); - - authAgentMock.verifySignatureAgainstPublicKey.mockReturnValue(true); - + jest + .spyOn(authAgent, 'verifySignatureAgainstPublicKey') + .mockImplementationOnce(() => true); const tx = new Transaction( '1', 1, - '123', - '123', - fromBpiSubjectAccount, - toBpiSubjectAccount, + workflow.id, + workstep.id, + bpiSubjectAccount1 as ModelBpiSubjectAccount, + bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', - 'correct sig', + 'wrong sig', TransactionStatus.Processing, ); // Act - const validationResult = - await transactionAgent.validateTransactionForExecution(tx); + const validationResult = await agent.validateTransactionForExecution(tx); // Assert expect(validationResult).toBeTruthy(); From 1376cc7ef71738407d74b6c0f443ba91ac46d2fd Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:41:20 +0100 Subject: [PATCH 06/13] Fix typo --- .../src/bri/transactions/agents/transactions.agent.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts index 6e66bda16..1303c3fd3 100644 --- a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts +++ b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts @@ -278,7 +278,7 @@ describe('Transaction Agent', () => { bpiSubjectAccount1 as ModelBpiSubjectAccount, bpiSubjectAccount2 as ModelBpiSubjectAccount, 'transaction payload', - 'wrong sig', + 'correct sig', TransactionStatus.Executed, ); From 0337afed23ad69093c7c670917745678a54be9b7 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:43:52 +0100 Subject: [PATCH 07/13] Run prettier --- .../bri/transactions/agents/transactions.agent.spec.ts | 8 +++++--- .../src/bri/workgroup/workflows/agents/workflows.agent.ts | 4 +--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts index 1303c3fd3..8ef9803c2 100644 --- a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts +++ b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts @@ -120,9 +120,11 @@ beforeEach(async () => { data: { nonce: 0, ownerBpiSubjectAccounts: { - connect: [{ - id: bpiSubjectAccount1.id, - }], + connect: [ + { + id: bpiSubjectAccount1.id, + }, + ], }, }, }); diff --git a/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts b/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts index a47af5f6d..ab04f2ac4 100644 --- a/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts +++ b/examples/bri-3/src/bri/workgroup/workflows/agents/workflows.agent.ts @@ -12,9 +12,7 @@ import { BPI_ACCOUNT_OWNERS_NOT_WORKGROUP_PARTICIPANTS, NOT_FOUND_ERR_MESSAGE as WORKFLOW_NOT_FOUND_ERR_MESSAGE, } from '../api/err.messages'; -import { - NOT_FOUND_ERR_MESSAGE as WORKSTEP_NOT_FOUND_ERR_MESSAGE -} from '../../worksteps/api/err.messages'; +import { NOT_FOUND_ERR_MESSAGE as WORKSTEP_NOT_FOUND_ERR_MESSAGE } from '../../worksteps/api/err.messages'; import { Workflow } from '../models/workflow'; import { WorkflowStorageAgent } from './workflowsStorage.agent'; import { BpiAccount } from 'src/bri/state/bpiAccounts/models/bpiAccount'; From e420690cdcbf627423a759bf612bd00b5b00dd27 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:47:35 +0100 Subject: [PATCH 08/13] Run prisma generate before unit tests in workflow --- .github/workflows/bri-3.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bri-3.yml b/.github/workflows/bri-3.yml index 666086e92..37039388a 100644 --- a/.github/workflows/bri-3.yml +++ b/.github/workflows/bri-3.yml @@ -89,14 +89,14 @@ jobs: working-directory: examples/bri-3 run: npm run lint:check - - name: Run tests - working-directory: examples/bri-3 - run: npm run test - - name: Run prisma generate working-directory: examples/bri-3 run: npm run prisma:generate + - name: Run tests + working-directory: examples/bri-3 + run: npm run test + - name: Run prisma migrate working-directory: examples/bri-3 run: npm run prisma:migrate:dev From 65bccbef08323ec266b5fcf12f188933306d47ce Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:53:02 +0100 Subject: [PATCH 09/13] Reorder prisma steps in workflow --- .github/workflows/bri-3.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bri-3.yml b/.github/workflows/bri-3.yml index 37039388a..ef3787816 100644 --- a/.github/workflows/bri-3.yml +++ b/.github/workflows/bri-3.yml @@ -93,10 +93,6 @@ jobs: working-directory: examples/bri-3 run: npm run prisma:generate - - name: Run tests - working-directory: examples/bri-3 - run: npm run test - - name: Run prisma migrate working-directory: examples/bri-3 run: npm run prisma:migrate:dev @@ -105,6 +101,10 @@ jobs: working-directory: examples/bri-3 run: npx prisma db seed + - name: Run tests + working-directory: examples/bri-3 + run: npm run test + - name: Run e2e tests working-directory: examples/bri-3 run: npm run test:e2e From 5d710a76ceab39e8f92f2ca7a16f6135c7578ef5 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 00:55:58 +0100 Subject: [PATCH 10/13] Bump node version in bri-3 workflow --- .github/workflows/bri-3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bri-3.yml b/.github/workflows/bri-3.yml index ef3787816..b10bcda3c 100644 --- a/.github/workflows/bri-3.yml +++ b/.github/workflows/bri-3.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node: [16.17.0] + node: [20.0.0] services: postgres: From ff10220938805032375596dc1293f18d575bc1e6 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 01:00:29 +0100 Subject: [PATCH 11/13] Change node version to 17 --- .github/workflows/bri-3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bri-3.yml b/.github/workflows/bri-3.yml index b10bcda3c..58a28cfaf 100644 --- a/.github/workflows/bri-3.yml +++ b/.github/workflows/bri-3.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node: [20.0.0] + node: [17.0.0] services: postgres: From f9f620b3dc6c4709e75c32f14410a76413787ee1 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jan 2024 01:00:53 +0100 Subject: [PATCH 12/13] Revert ordering of workflow steps to run them as they are needed --- .github/workflows/bri-3.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bri-3.yml b/.github/workflows/bri-3.yml index 58a28cfaf..c9d5a6982 100644 --- a/.github/workflows/bri-3.yml +++ b/.github/workflows/bri-3.yml @@ -93,6 +93,10 @@ jobs: working-directory: examples/bri-3 run: npm run prisma:generate + - name: Run tests + working-directory: examples/bri-3 + run: npm run test + - name: Run prisma migrate working-directory: examples/bri-3 run: npm run prisma:migrate:dev @@ -101,10 +105,6 @@ jobs: working-directory: examples/bri-3 run: npx prisma db seed - - name: Run tests - working-directory: examples/bri-3 - run: npm run test - - name: Run e2e tests working-directory: examples/bri-3 run: npm run test:e2e From e67f4b1e66fb224cd7f579db7c632607d663d321 Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 6 Feb 2024 21:40:33 +0100 Subject: [PATCH 13/13] PR comments --- .../agents/transactions.agent.spec.ts | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts index 8ef9803c2..89ec6e4ca 100644 --- a/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts +++ b/examples/bri-3/src/bri/transactions/agents/transactions.agent.spec.ts @@ -1,5 +1,5 @@ import { AuthAgent } from '../../auth/agent/auth.agent'; -import { BpiSubjectAccount as ModelBpiSubjectAccount } from '../../identity/bpiSubjectAccounts/models/bpiSubjectAccount'; +import { BpiSubjectAccount as BpiSubjectAccountPrismaModel } from '../../identity/bpiSubjectAccounts/models/bpiSubjectAccount'; import { WorkflowStorageAgent } from '../../workgroup/workflows/agents/workflowsStorage.agent'; import { WorkstepStorageAgent } from '../../workgroup/worksteps/agents/workstepsStorage.agent'; import { Transaction } from '../models/transaction'; @@ -168,8 +168,8 @@ describe('Transaction Agent', () => { 1, '123', '123', - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'sig', TransactionStatus.Processing, @@ -188,8 +188,8 @@ describe('Transaction Agent', () => { 1, workflow.id, '123', - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'sig', TransactionStatus.Processing, @@ -208,8 +208,8 @@ describe('Transaction Agent', () => { 1, workflow.id, workstep.id, - undefined as unknown as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + undefined as unknown as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'sig', TransactionStatus.Processing, @@ -227,10 +227,10 @@ describe('Transaction Agent', () => { const tx = new Transaction( '1', 1, - workflow.id + '', + workflow.id, workstep.id, - bpiSubjectAccount1 as ModelBpiSubjectAccount, - undefined as unknown as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + undefined as unknown as BpiSubjectAccountPrismaModel, 'transaction payload', 'sig', TransactionStatus.Processing, @@ -253,8 +253,8 @@ describe('Transaction Agent', () => { 1, workflow.id, workstep.id, - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'wrong sig', TransactionStatus.Processing, @@ -277,8 +277,8 @@ describe('Transaction Agent', () => { 1, workflow.id, workstep.id, - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'correct sig', TransactionStatus.Executed, @@ -301,8 +301,8 @@ describe('Transaction Agent', () => { 2, workflow.id, workstep.id, - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'wrong sig', TransactionStatus.Processing, @@ -325,8 +325,8 @@ describe('Transaction Agent', () => { 1, workflow.id, workstep.id, - bpiSubjectAccount1 as ModelBpiSubjectAccount, - bpiSubjectAccount2 as ModelBpiSubjectAccount, + bpiSubjectAccount1 as BpiSubjectAccountPrismaModel, + bpiSubjectAccount2 as BpiSubjectAccountPrismaModel, 'transaction payload', 'wrong sig', TransactionStatus.Processing,