diff --git a/package-lock.json b/package-lock.json index ced5a5cb0..d6b7f86ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "import-sort-style-module": "^6.0.0", "jsdom": "^22.1.0", "lint-staged": "^14.0.1", - "msw": "^1.2.3", + "msw": "^2.2.14", "postcss": "^8.4.33", "prettier": "^3.2.4", "prettier-plugin-import-sort": "0.0.7", @@ -592,6 +592,24 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, + "dependencies": { + "statuses": "^2.0.1" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.7", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", @@ -1096,6 +1114,116 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "node_modules/@inquirer/confirm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.1.tgz", + "integrity": "sha512-epf2RVHJJxX5qF85U41PBq9qq2KTJW9sKNLx6+bb2/i2rjXgeoHVGUm8kJxZHavrESgXgBLKCABcfOJYIso8cQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^7.1.1", + "@inquirer/type": "^1.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-7.1.1.tgz", + "integrity": "sha512-rD1UI3eARN9qJBcLRXPOaZu++Bg+xsk0Tuz1EUOXEW+UbYif1sGjr0Tw7lKejHzKD9IbXE1CEtZ+xR/DrNlQGQ==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.2.1", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.11.30", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "20.12.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.3.tgz", + "integrity": "sha512-sD+ia2ubTeWrOu+YMF+MTAB7E+O7qsMqAbMfW7DG3K1URwhZ5hN1pLlRVGbf4wDFzSfikL05M17EyorS86jShw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@inquirer/core/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@inquirer/core/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.2.1.tgz", + "integrity": "sha512-xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -1277,44 +1405,29 @@ } }, "node_modules/@mswjs/cookies": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", - "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", + "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", "dev": true, - "dependencies": { - "@types/set-cookie-parser": "^2.4.0", - "set-cookie-parser": "^2.4.6" - }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/@mswjs/interceptors": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.8.tgz", - "integrity": "sha512-hjS5dy8u+Baa5r/SVAQyWZYQr8YZzpeGldNXJlZQBPjt7FQL7Acd1BnXJWmIhl62s5uh0WJNAcUMfAAcnqTchA==", + "version": "0.26.15", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.26.15.tgz", + "integrity": "sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==", "dev": true, "dependencies": { - "@open-draft/until": "^1.0.3", - "@types/debug": "^4.1.7", - "@xmldom/xmldom": "^0.8.3", - "debug": "^4.3.3", - "headers-polyfill": "^3.1.0", + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", "outvariant": "^1.2.1", - "strict-event-emitter": "^0.2.4", - "web-encoding": "^1.1.5" + "strict-event-emitter": "^0.5.1" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", - "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", - "dev": true, - "dependencies": { - "events": "^3.3.0" + "node": ">=18" } }, "node_modules/@navikt/aksel-icons": { @@ -1883,10 +1996,26 @@ "node": ">= 8" } }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, "node_modules/@open-draft/until": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", "dev": true }, "node_modules/@radix-ui/primitive": { @@ -2886,20 +3015,11 @@ } }, "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "dev": true }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -2926,12 +3046,6 @@ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "node_modules/@types/js-levenshtein": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", - "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.12", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", @@ -2956,11 +3070,14 @@ "moment": ">=2.14.0" } }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/node": { "version": "18.19.14", @@ -3044,20 +3161,23 @@ "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, - "node_modules/@types/set-cookie-parser": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", - "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", + "dev": true }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", @@ -3551,22 +3671,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", - "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "dev": true, - "optional": true - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -3647,6 +3751,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3920,26 +4036,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/bin-check": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", @@ -4234,17 +4330,6 @@ "node": ">=8" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -4312,30 +4397,6 @@ "node": ">= 0.4.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4645,12 +4706,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -4723,22 +4778,10 @@ "node": ">= 10.0" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -4764,12 +4807,12 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cliui": { @@ -4811,15 +4854,6 @@ "node": ">=8" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -4933,9 +4967,9 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" @@ -5222,18 +5256,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -6061,15 +6083,6 @@ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/execa": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", @@ -6144,32 +6157,6 @@ "node": ">=4" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6895,9 +6882,9 @@ } }, "node_modules/headers-polyfill": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", - "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", "dev": true }, "node_modules/hoist-non-react-statics": { @@ -7263,61 +7250,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -7557,15 +7489,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -7738,18 +7661,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -7909,15 +7820,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8315,22 +8217,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", @@ -8790,44 +8676,41 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/msw": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/msw/-/msw-1.2.3.tgz", - "integrity": "sha512-Fqy/TaLKR32x4IkMwudJHJysBzVM/v/lSoMPS9f3QaHLOmb3xHN9YurSUnRt+2eEvNXLjVPij1wMBQtLmTbKsg==", + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.2.14.tgz", + "integrity": "sha512-64i8rNCa1xzDK8ZYsTrVMli05D687jty8+Th+PU5VTbJ2/4P7fkQFVyDQ6ZFT5FrNR8z2BHhbY47fKNvfHrumA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@mswjs/cookies": "^0.2.2", - "@mswjs/interceptors": "^0.17.5", - "@open-draft/until": "^1.0.3", - "@types/cookie": "^0.4.1", - "@types/js-levenshtein": "^1.1.1", - "chalk": "4.1.1", - "chokidar": "^3.4.2", - "cookie": "^0.4.2", - "graphql": "^15.0.0 || ^16.0.0", - "headers-polyfill": "^3.1.2", - "inquirer": "^8.2.0", + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/statuses": "^1.0.1", + "@inquirer/confirm": "^3.0.0", + "@mswjs/cookies": "^1.1.0", + "@mswjs/interceptors": "^0.26.14", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "chalk": "^4.1.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", "is-node-process": "^1.2.0", - "js-levenshtein": "^1.1.6", - "node-fetch": "^2.6.7", - "outvariant": "^1.4.0", + "outvariant": "^1.4.2", "path-to-regexp": "^6.2.0", - "strict-event-emitter": "^0.4.3", - "type-fest": "^2.19.0", - "yargs": "^17.3.1" + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.9.0", + "yargs": "^17.7.2" }, "bin": { "msw": "cli/index.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mswjs" + "url": "https://github.com/sponsors/mswjs" }, "peerDependencies": { - "typescript": ">= 4.4.x <= 5.1.x" + "typescript": ">= 4.7.x" }, "peerDependenciesMeta": { "typescript": { @@ -8835,46 +8718,21 @@ } } }, - "node_modules/msw/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/msw/node_modules/path-to-regexp": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", "dev": true }, - "node_modules/msw/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -8978,7 +8836,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "devOptional": true, + "optional": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -9352,29 +9210,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/os-filter-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", @@ -9387,19 +9222,10 @@ "node": ">=4" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/outvariant": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", - "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==", "dev": true }, "node_modules/p-cancelable": { @@ -10411,43 +10237,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10548,15 +10337,6 @@ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "devOptional": true }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10579,15 +10359,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/safe-array-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", @@ -10711,12 +10482,6 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, - "node_modules/set-cookie-parser": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", - "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", - "dev": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11033,6 +10798,15 @@ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/std-env": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.2.tgz", @@ -11051,9 +10825,9 @@ } }, "node_modules/strict-event-emitter": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", - "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", "dev": true }, "node_modules/string_decoder": { @@ -11528,12 +11302,6 @@ "node": ">=0.8" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, "node_modules/tiny-invariant": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", @@ -11560,18 +11328,6 @@ "node": ">=14.0.0" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/to-camel-case": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", @@ -11657,7 +11413,7 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "devOptional": true + "optional": true }, "node_modules/trim-repeated": { "version": "2.0.0", @@ -11715,12 +11471,12 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.15.0.tgz", + "integrity": "sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11884,19 +11640,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -13057,27 +12800,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dev": true, - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -13112,7 +12834,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "devOptional": true, + "optional": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13122,7 +12844,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "devOptional": true + "optional": true }, "node_modules/which": { "version": "2.0.2", @@ -13365,9 +13087,9 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", diff --git a/package.json b/package.json index dca451d2a..d4ed2789e 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "import-sort-style-module": "^6.0.0", "jsdom": "^22.1.0", "lint-staged": "^14.0.1", - "msw": "^1.2.3", + "msw": "^2.2.14", "postcss": "^8.4.33", "prettier": "^3.2.4", "prettier-plugin-import-sort": "0.0.7", diff --git a/src/api/aktivitetAPI.ts b/src/api/aktivitetAPI.ts index 53f78c49a..c75124367 100644 --- a/src/api/aktivitetAPI.ts +++ b/src/api/aktivitetAPI.ts @@ -3,14 +3,12 @@ import { Forhaandsorientering } from '../datatypes/forhaandsorienteringTypes'; import { MoteAktivitet, SamtalereferatAktivitet, VeilarbAktivitet } from '../datatypes/internAktivitetTypes'; import { AKTIVITET_BASE_URL } from '../environment'; import { fetchToJson, postAsJson, putAsJson } from './utils'; +import { StillingFraNavSoknadsstatus } from '../datatypes/aktivitetTypes'; import { hentFraSessionStorage, LocalStorageElement } from '../mocks/demo/localStorage'; export const hentAktivitet = (aktivitetId: string): Promise => fetchToJson(`${AKTIVITET_BASE_URL}/aktivitet/${aktivitetId}`); -export const hentAktiviteter = (): Promise<{ aktiviteter: VeilarbAktivitet[] }> => - fetchToJson(`${AKTIVITET_BASE_URL}/aktivitet`); - export const lagNyAktivitet = (aktivitet: VeilarbAktivitet, oppfolgingsperiodeId: string): Promise => postAsJson(`${AKTIVITET_BASE_URL}/aktivitet/${oppfolgingsperiodeId}/ny`, aktivitet); @@ -68,15 +66,19 @@ export const oppdaterReferat = ( export const hentVersjonerTilAktivitet = (aktivitet: VeilarbAktivitet): Promise => fetchToJson(`${AKTIVITET_BASE_URL}/aktivitet/${aktivitet.id}/versjoner`); +export interface OppdaterStillingFraNavSoknadsstatusPayload { + aktivitetVersjon: string; + soknadsstatus: StillingFraNavSoknadsstatus; +} export const oppdaterStillingFraNavSoknadsstatus = ( aktivitetId: string, aktivitetVersjon: string, - soknadsstatus: string, + soknadsstatus: StillingFraNavSoknadsstatus, ): Promise => putAsJson(`${AKTIVITET_BASE_URL}/stillingFraNav/soknadStatus?aktivitetId=${aktivitetId}`, { aktivitetVersjon, soknadsstatus, - }); + } as OppdaterStillingFraNavSoknadsstatusPayload); export const hentArenaAktiviteter = (): Promise => postAsJson(`${AKTIVITET_BASE_URL}/arena/tiltak`, { fnr: hentFraSessionStorage(LocalStorageElement.FNR) }); diff --git a/src/api/personAPI.ts b/src/api/personAPI.ts index 164f3decb..cc9ca6aa8 100644 --- a/src/api/personAPI.ts +++ b/src/api/personAPI.ts @@ -1,11 +1,8 @@ -import { HarLoggetInnRespons, RegoppslagDto } from '../datatypes/types'; +import { RegoppslagDto } from '../datatypes/types'; import { PERSON_BASE_URL } from '../environment'; -import { fetchToJson, fetchToJsonPlain } from './utils'; +import { fetchToJsonPlain } from './utils'; export const hentPerson = (fnr: string) => fetchToJsonPlain(`${PERSON_BASE_URL}/v2/person?fnr=${fnr}`); export const hentAdresse = (fnr: string): Promise => fetchToJsonPlain(`${PERSON_BASE_URL}/v2/person/postadresse?fnr=${fnr}`); - -export const hentHarNivaa4 = (fnr: string): Promise => - fetchToJson(`${PERSON_BASE_URL}/person/${fnr}/harNivaa4`); diff --git a/src/hovedside/Hovedside.test.tsx b/src/hovedside/Hovedside.test.tsx index 4a656bdea..693a2a4cb 100644 --- a/src/hovedside/Hovedside.test.tsx +++ b/src/hovedside/Hovedside.test.tsx @@ -4,7 +4,7 @@ import { WrappedHovedside } from '../testUtils/WrappedHovedside'; import { act, render } from '@testing-library/react'; import { emptyLoadedVeilederState } from '../testUtils/defaultInitialStore'; import { setupServer } from 'msw/node'; -import { rest } from 'msw'; +import { http } from 'msw'; import { failOrGrahpqlResponse } from '../mocks/utils'; import { configureStore } from '@reduxjs/toolkit'; import reducer from '../reducer'; @@ -31,7 +31,7 @@ const initialState = { const server = setupServer( ...[ // If handlers on same route are declared twice the first one is used - rest.post( + http.post( '/veilarbaktivitet/graphql', failOrGrahpqlResponse( () => true, diff --git a/src/mocks/aktivitet.ts b/src/mocks/aktivitet.ts index daa5b3687..f0425dc3b 100644 --- a/src/mocks/aktivitet.ts +++ b/src/mocks/aktivitet.ts @@ -1,5 +1,5 @@ import { addDays, subDays } from 'date-fns'; -import { RestRequest } from 'msw'; +import { DefaultBodyType, PathParams, StrictRequest } from 'msw'; import { AktivitetStatus, @@ -38,6 +38,7 @@ import { enLestForhaandsorientering, enUlestForhaandsorientering } from './forha import { etSamtalereferat } from './samtalereferatFixtures'; import { enSokeAktivitet } from './sokeAktivitetFixtures'; import { rndId } from './utils'; +import { OppdaterStillingFraNavSoknadsstatusPayload } from '../api/aktivitetAPI'; const eksternBruker = erEksternBruker(); const bruker: BrukerType = eksternBruker ? 'BRUKER' : 'NAV'; @@ -492,30 +493,28 @@ export function wrapAktivitet(a: T): T { } as unknown as T; } -export const getAktivitet = (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; - +export const getAktivitet = (_: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; return aktiviteter.find((aktivitet) => aktivitet.id === aktivitetId); }; -export const getAktivitetVersjoner = (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; - +export const getAktivitetVersjoner = (_: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; return versjoner.filter((aktivitet) => aktivitet.id === aktivitetId); }; -export const opprettAktivitet = async (req: RestRequest) => { +export const opprettAktivitet = async (req: StrictRequest) => { const body = await req.json(); const nyAktivitet = wrapAktivitet({ id: rndId(), - opprettetDato: new Date(), + opprettetDato: new Date().toISOString(), endretAvType: bruker, endretDato: new Date().toISOString(), endretAv: bruker, versjon: '1', erLestAvBruker: eksternBruker, - transaksjonsType: 'OPPRETTET', + transaksjonsType: FellesTransaksjonsTyper.OPPRETTET, oppfolgingsperiodeId: 'a2aa22a2-2aa2-4e02-8cc2-d44ef605fa33', ...body, }); @@ -556,8 +555,8 @@ function lagNyVersion(aktivitet: VeilarbAktivitet): VeilarbAktivitet { }; } -export const oppdaterAktivitet = async (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; +export const oppdaterAktivitet = async (req: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; const body = await req.json(); const nyeAktivitetAttributter = { @@ -567,8 +566,8 @@ export const oppdaterAktivitet = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterAktivitetStatus = async (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; +export const oppdaterAktivitetStatus = async (req: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; const body = await req.json(); const nyeAktivitetAttributter = { @@ -578,8 +577,8 @@ export const oppdaterAktivitetStatus = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterEtikett = async (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; +export const oppdaterEtikett = async (req: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; const body: StillingAktivitet = await req.json(); const nyeAktivitetAttributter: StillingAktivitet = { @@ -589,8 +588,8 @@ export const oppdaterEtikett = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterAvtaltMedNav = async (req: RestRequest) => { - const aktivitetId = req.url.searchParams.get('aktivitetId'); +export const oppdaterAvtaltMedNav = async (req: StrictRequest) => { + const aktivitetId = new URL(req.url).searchParams.get('aktivitetId'); const body: any = await req.json(); const nyeAktivitetAttributter: Partial = { @@ -602,8 +601,8 @@ export const oppdaterAvtaltMedNav = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterCVKanDelesSvar = async (req: RestRequest) => { - const aktivitetId = req.url.searchParams.get('aktivitetId'); +export const oppdaterCVKanDelesSvar = async (req: StrictRequest) => { + const aktivitetId = new URL(req.url).searchParams.get('aktivitetId'); const cvKanDelesData: CvKanDelesData = await req.json(); const gammelAktivitet = aktiviteter.find((akivitet) => akivitet.id === aktivitetId) as StillingFraNavAktivitet; @@ -626,14 +625,17 @@ export const oppdaterCVKanDelesSvar = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterStillingFraNavSoknadsstatus = async (req: RestRequest) => { - const aktivitetId = req.url.searchParams.get('aktivitetId'); +export const oppdaterStillingFraNavSoknadsstatus = async ( + req: StrictRequest, +) => { + const aktivitetId = new URL(req.url).searchParams.get('aktivitetId'); const body = await req.json(); - const gammelAktivitet = aktiviteter.find((aktivitet) => aktivitet.id === aktivitetId); - const nyeAktivitetAttributter = { + const gammelAktivitet = aktiviteter.find((aktivitet) => aktivitet.id === aktivitetId) as StillingFraNavAktivitet; + const nyeAktivitetAttributter: StillingFraNavAktivitet = { + ...gammelAktivitet, stillingFraNavData: { - ...(gammelAktivitet as StillingFraNavAktivitet).stillingFraNavData, + ...gammelAktivitet.stillingFraNavData, soknadsstatus: body.soknadsstatus, }, transaksjonsType: StillingFraNavTransaksjonsType.SOKNADSSTATUS_ENDRET, @@ -641,9 +643,9 @@ export const oppdaterStillingFraNavSoknadsstatus = async (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const oppdaterLestFho = async (req: RestRequest) => { +export const oppdaterLestFho = async (req: StrictRequest) => { const body = await req.json(); - const { aktivitetId } = body; + const { id } = body; const gammelAktivitet = aktiviteter.find((akivitet) => akivitet.id === aktivitetId) as VeilarbAktivitet; const nyeAktivitetAttributter: VeilarbAktivitet = { @@ -654,11 +656,11 @@ export const oppdaterLestFho = async (req: RestRequest) => { }, transaksjonsType: FellesTransaksjonsTyper.FORHAANDSORIENTERING_LEST, }; - return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId, nyeAktivitetAttributter); + return doOppdaterInternMockStateOgReturnerNyAktivitet(id, nyeAktivitetAttributter); }; -export const publiserReferat = (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; +export const publiserReferat = (req: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; const nyeAktivitetAttributter = { erReferatPublisert: true, @@ -667,9 +669,9 @@ export const publiserReferat = (req: RestRequest) => { return doOppdaterInternMockStateOgReturnerNyAktivitet(aktivitetId as string, nyeAktivitetAttributter); }; -export const endreReferat = async (req: RestRequest) => { - const aktivitetId = req.params.aktivitetId; - const body: MoteAktivitet = await req.json(); +export const endreReferat = async (req: StrictRequest, params: PathParams) => { + const aktivitetId = params.aktivitetId; + const body = await req.json(); const nyeAktivitetAttributter: MoteAktivitet = { ...body, diff --git a/src/mocks/data/arena.ts b/src/mocks/data/arena.ts index 406274e98..4f1c04a26 100644 --- a/src/mocks/data/arena.ts +++ b/src/mocks/data/arena.ts @@ -1,8 +1,8 @@ import { addDays, subDays } from 'date-fns'; -import { RestRequest } from 'msw'; +import { DefaultBodyType, StrictRequest } from 'msw'; import { ArenaAktivitet, ArenaEtikett } from '../../datatypes/arenaAktivitetTypes'; -import { Forhaandsorientering } from '../../datatypes/forhaandsorienteringTypes'; +import { Forhaandsorientering, ForhaandsorienteringType } from '../../datatypes/forhaandsorienteringTypes'; import { visArenaAktiviteter } from '../demo/localStorage'; export const arenaMockAktiviteter = [ @@ -293,10 +293,9 @@ export const arenaMockAktiviteter = [ export const arena = !visArenaAktiviteter() ? [] : arenaMockAktiviteter; -export const oppdaterArenaaktivitet = async (req: RestRequest) => { - const arenaaktivitetId = req.url.searchParams.get('arenaaktivitetId'); +export const oppdaterArenaaktivitet = async (req: StrictRequest<{ type: ForhaandsorienteringType; tekst: string }>) => { + const arenaaktivitetId = new URL(req.url).searchParams.get('arenaaktivitetId'); const body = await req.json(); - const aktivitet = arena.find((arenaaktivitet) => arenaaktivitet.id === arenaaktivitetId) as ArenaAktivitet; aktivitet.forhaandsorientering = { @@ -308,9 +307,8 @@ export const oppdaterArenaaktivitet = async (req: RestRequest) => { return aktivitet; }; -export const oppdaterLestFhoArenaaktivitet = (req: RestRequest) => { - const aktivitetId = req.url.searchParams.get('aktivitetId'); - +export const oppdaterLestFhoArenaaktivitet = (req: StrictRequest) => { + const aktivitetId = new URL(req.url).searchParams.get('aktivitetId'); const lestAktivitet = arena.find((arenaaktivitet) => arenaaktivitet.id === aktivitetId) as ArenaAktivitet; lestAktivitet.forhaandsorientering = { diff --git a/src/mocks/data/dialog.ts b/src/mocks/data/dialog.ts index 7bfc48fd4..5216fdffe 100644 --- a/src/mocks/data/dialog.ts +++ b/src/mocks/data/dialog.ts @@ -1,7 +1,4 @@ -import { ResponseComposition, RestContext, RestRequest } from 'msw'; - -import { erEksternBruker, ulesteDialoger } from '../demo/localStorage'; -import { rndId } from '../utils'; +import { ulesteDialoger } from '../demo/localStorage'; const dialoger = [ { @@ -193,61 +190,4 @@ const dialoger = [ }, ]; -export const opprettDialog = async (req: RestRequest) => { - const body = await req.json(); - - const dialogId = body.dialogId === undefined ? rndId() : `${body.dialogId}`; - const nyHenvendelse = { - id: rndId(), - dialogId: dialogId, - avsender: erEksternBruker() ? 'BRUKER' : 'VEILEDER', - avsenderId: 'Z123456', - overskrift: body.overskrift, - tekst: body.tekst, - lest: !ulesteDialoger(), - sendt: new Date(), - } as any; - - const eksisterendeDialoger = dialoger.filter((dialog) => body.dialogId !== undefined && dialog.id === dialogId); - - if (eksisterendeDialoger.length === 1) { - const oldDialog = eksisterendeDialoger[0]; - oldDialog.sisteTekst = body.tekst; - oldDialog.sisteDato = nyHenvendelse.sendt; - oldDialog.henvendelser.push(nyHenvendelse); - return oldDialog; - } else { - const nyDialog = { - id: nyHenvendelse.dialogId, - ferdigBehandlet: !body.ikkeFerdigbehandlet, - venterPaSvar: !!body.venterPaSvar, - aktivitetId: body.aktivitetId === undefined ? null : body.aktivitetId, - overskrift: body.overskrift, - sisteTekst: body.tekst, - sisteDato: new Date(), - opprettetDato: new Date(), - historisk: false, - lest: !ulesteDialoger(), - lestAvBrukerTidspunkt: null, - erLestAvBruker: false, - henvendelser: [nyHenvendelse], - egenskaper: body.egenskaper === undefined ? [] : body.egenskaper, - } as any; - dialoger.push(nyDialog); - return nyDialog; - } -}; - -export function setVenterPaaSvar(req: RestRequest, _res: ResponseComposition, _ctx: RestContext) { - const dialog = dialoger.filter((d) => d.id === req.params.id)[0]; - dialog.venterPaSvar = req.params.bool === 'true'; - return dialog; -} - -export function setFerdigBehandlet(req: RestRequest, _res: ResponseComposition, _ctx: RestContext) { - const dialog = dialoger.filter((d) => d.id === req.params.id)[0]; - dialog.ferdigBehandlet = req.params.bool === 'true'; - return dialog; -} - export default dialoger; diff --git a/src/mocks/data/mal.ts b/src/mocks/data/mal.ts index f3f1917ac..ca4964e84 100644 --- a/src/mocks/data/mal.ts +++ b/src/mocks/data/mal.ts @@ -1,4 +1,4 @@ -import { RestRequest } from 'msw'; +import { StrictRequest } from 'msw'; import { Mal } from '../../datatypes/oppfolgingTypes'; import { erEksternBruker, ingenMal } from '../demo/localStorage'; @@ -29,7 +29,7 @@ export function sisteMal() { return maler[maler.length - 1]; } -export async function opprettMal(req: RestRequest) { +export async function opprettMal(req: StrictRequest<{ mal: string | undefined }>) { const body = await req.json(); const nyMal = { diff --git a/src/mocks/data/malverk.ts b/src/mocks/data/malverk.ts index 93ef728d3..d1ec371f7 100644 --- a/src/mocks/data/malverk.ts +++ b/src/mocks/data/malverk.ts @@ -1,4 +1,4 @@ -import { RestRequest } from 'msw'; +import { StrictRequest } from 'msw'; const egenMalverk = [ { @@ -52,7 +52,7 @@ const sokeavtaleMalverk = [ }, ]; -export const hentMalverkMedType = async (req: RestRequest) => { +export const hentMalverkMedType = async (req: StrictRequest<{ type: 'EGEN' | 'SOKEAVTALE' }>) => { const body = await req.json(); const { type } = body; diff --git a/src/mocks/data/oppfolging.ts b/src/mocks/data/oppfolging.ts index 952ebd2a6..e4e8aa68a 100644 --- a/src/mocks/data/oppfolging.ts +++ b/src/mocks/data/oppfolging.ts @@ -1,4 +1,4 @@ -import { RestRequest } from 'msw'; +import { DefaultBodyType, StrictRequest } from 'msw'; import { Oppfolgingsperiode, OppfolgingStatus } from '../../datatypes/oppfolgingTypes'; import { erKRRBruker, erManuellBruker, erPrivatBruker, ingenOppfPerioder } from '../demo/localStorage'; @@ -51,8 +51,8 @@ const oppfolging: OppfolgingStatus = { export const mockOppfolging = oppfolging; -export const getOppfolging = (req: RestRequest) => { - return { ...oppfolging, fnr: req.url.searchParams.get('fnr') ?? undefined }; +export const getOppfolging = (request: StrictRequest) => { + return { ...oppfolging, fnr: new URL(request.url).searchParams.get('fnr') ?? undefined }; }; export function settDigital() { diff --git a/src/mocks/data/tilgang.ts b/src/mocks/data/tilgang.ts deleted file mode 100644 index 533ab43d7..000000000 --- a/src/mocks/data/tilgang.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { RestRequest } from 'msw'; - -import { ikkeLoggetInnNivaa4 } from '../demo/localStorage'; - -export default function getNivaa4(req: RestRequest) { - return { - harbruktnivaa4: !ikkeLoggetInnNivaa4(), - personidentifikator: req.params.fnr, - }; -} diff --git a/src/mocks/demo/demoToggles.ts b/src/mocks/demo/demoToggles.ts index ee49a329f..37a960712 100644 --- a/src/mocks/demo/demoToggles.ts +++ b/src/mocks/demo/demoToggles.ts @@ -8,12 +8,10 @@ import { erManuellBruker, erPrivatBruker, forhaandsvisningFeiler, - ikkeLoggetInnNivaa4, ingenOppfPerioder, journalforingFeiler, LocalStorageElement, maalFeilet, - nivaa4Feilet, oppdateringKunFeiler, oppfFeilet, ulesteDialoger, @@ -56,11 +54,6 @@ export const features = [ id: LocalStorageElement.KRR_BRUKER, checked: erKRRBruker, }, - { - label: 'Ikke innlogget med nivå 4', - id: LocalStorageElement.INNLOGGET_NIVAA4, - checked: ikkeLoggetInnNivaa4, - }, { label: 'Ingen oppfølgingsperioder', id: LocalStorageElement.INGEN_OPPF_PERIODER, @@ -135,11 +128,6 @@ export const feiltilstander = [ id: LocalStorageElement.OPPDATERING_KUN_FEILER, checked: oppdateringKunFeiler, }, - { - label: 'Nivå 4 feiler', - id: LocalStorageElement.NIVAA4_FEILET, - checked: nivaa4Feilet, - }, { label: 'Forhåndsvisning feiler', id: LocalStorageElement.FORHAANDSVISNING_FEILER, diff --git a/src/mocks/demo/localStorage.ts b/src/mocks/demo/localStorage.ts index 924b74f47..8b1f704d3 100644 --- a/src/mocks/demo/localStorage.ts +++ b/src/mocks/demo/localStorage.ts @@ -1,12 +1,9 @@ -import { RestRequest } from 'msw'; - export enum LocalStorageElement { PRIVAT_BRUKER = 'privatbruker', MANUELL_BRUKER = 'manuellbruker', KRR_BRUKER = 'krrbruker', GAMMEL_ESKALERT_BRUKER = 'eskalertbruker_gammel', ESKALERT_BRUKER = 'eskalertbruker', - INNLOGGET_NIVAA4 = 'innlogget_nivaa4', OPPF_FEILET = 'oppffeilet', DIALOG_FEILET = 'dialogfeilet', AKTIVITET_FEILET = 'aktivitetfeilet', @@ -59,8 +56,6 @@ export const erEskalertBrukerGammel = () => erSatt(LocalStorageElement.GAMMEL_ES export const erEskalertBruker = () => erSatt(LocalStorageElement.ESKALERT_BRUKER); -export const ikkeLoggetInnNivaa4 = () => erSatt(LocalStorageElement.INNLOGGET_NIVAA4); - export const ingenOppfPerioder = () => erSatt(LocalStorageElement.INGEN_OPPF_PERIODER); export const visAutomatiskeAktiviteter = () => erSatt(LocalStorageElement.AUTOMATISKE_AKTIVITETER); @@ -77,16 +72,15 @@ export const oppfFeilet = () => erSatt(LocalStorageElement.OPPF_FEILET); export const dialogFeilet = () => erSatt(LocalStorageElement.DIALOG_FEILET); -export const aktivitetFeilet = (request: RestRequest) => { +export const aktivitetFeilet = () => { if (erSatt(LocalStorageElement.AKTIVITET_FEILET)) return true; + return false; }; export const arenaFeilet = () => erSatt(LocalStorageElement.ARENA_FEILET); export const maalFeilet = () => erSatt(LocalStorageElement.MAAL_FEILET); -export const nivaa4Feilet = () => erSatt(LocalStorageElement.NIVAA4_FEILET); - export const oppdateringKunFeiler = () => erSatt(LocalStorageElement.OPPDATERING_KUN_FEILER); export const ulesteDialoger = () => erSatt(LocalStorageElement.ULESTE_DIALOGER); diff --git a/src/mocks/handlers.ts b/src/mocks/handlers.ts index 0fd8e0787..460eb7380 100644 --- a/src/mocks/handlers.ts +++ b/src/mocks/handlers.ts @@ -1,4 +1,4 @@ -import { rest } from 'msw'; +import { http } from 'msw'; import { aktiviteterData, @@ -17,7 +17,7 @@ import { } from './aktivitet'; import { arena, oppdaterArenaaktivitet, oppdaterLestFhoArenaaktivitet } from './data/arena'; import { auth } from './data/auth'; -import dialog, { opprettDialog, setFerdigBehandlet, setVenterPaaSvar } from './data/dialog'; +import dialog from './data/dialog'; import { eskaleringsvarsel } from './data/eskaleringsvarsel'; import { features } from './data/feature'; import { innstillingsHistorikk } from './data/innstillings-historikk'; @@ -28,7 +28,6 @@ import { me } from './data/me'; import { oppfoelgingsstatus } from './data/oppfoelgingsstatus'; import getOppfolging, { avslutningStatus, settDigital } from './data/oppfolging'; import { getPerson, getPostadresse } from './data/person'; -import getNivaa4 from './data/tilgang'; import { veilederMe } from './data/Veileder'; import { veilederTilgang } from './data/veilederTilgang'; import pdfForhaandsvisning from './fixtures/pdfForhaandsvisning.json'; @@ -39,7 +38,6 @@ import { forhaandsvisningFeiler, journalforingFeiler, maalFeilet, - nivaa4Feilet, oppdateringKunFeiler, oppfFeilet, } from './demo/localStorage'; @@ -50,130 +48,123 @@ import { journalføring } from './data/journalføring'; const getOppfFeiler = () => oppfFeilet() && !oppdateringKunFeiler(); const getMaalFeiler = () => maalFeilet() && !oppdateringKunFeiler(); const getAktivitetFeiler = () => aktivitetFeilet() && !oppdateringKunFeiler(); - +const resolveAktiviteter = () => aktiviteterData; export const handlers = [ - rest.get('/auth/info', jsonResponse(auth)), + http.get('/auth/info', jsonResponse(auth)), // veilarboppfolging - rest.get('/veilarboppfolging/api/oppfolging/me', failOrGetResponse(getOppfFeiler, me)), - rest.get('/veilarboppfolging/api/oppfolging', failOrGetResponse(getOppfFeiler, getOppfolging)), - rest.get('/veilarboppfolging/api/oppfolging/harFlereAktorIderMedOppfolging', jsonResponse(true)), - rest.get('/veilarboppfolging/api/oppfolging/mal', failOrGetResponse(getMaalFeiler, sisteMal)), - rest.get('/veilarboppfolging/api/oppfolging/malListe', failOrGetResponse(getMaalFeiler, malListe)), - rest.get('/veilarboppfolging/api/oppfolging/veilederTilgang', jsonResponse(veilederTilgang)), - rest.get('/veilarboppfolging/api/oppfolging/avslutningStatus', jsonResponse(avslutningStatus)), - rest.get( + http.get('/veilarboppfolging/api/oppfolging/me', failOrGetResponse(getOppfFeiler, me)), + http.get('/veilarboppfolging/api/oppfolging', failOrGetResponse(getOppfFeiler, getOppfolging)), + http.get('/veilarboppfolging/api/oppfolging/harFlereAktorIderMedOppfolging', jsonResponse(true)), + http.get('/veilarboppfolging/api/oppfolging/mal', failOrGetResponse(getMaalFeiler, sisteMal)), + http.get('/veilarboppfolging/api/oppfolging/malListe', failOrGetResponse(getMaalFeiler, malListe)), + http.get('/veilarboppfolging/api/oppfolging/veilederTilgang', jsonResponse(veilederTilgang)), + http.get('/veilarboppfolging/api/oppfolging/avslutningStatus', jsonResponse(avslutningStatus)), + http.get( '/veilarboppfolging/api/oppfolging/innstillingsHistorikk', failOrGetResponse(getOppfFeiler, () => innstillingsHistorikk), ), - rest.get( + http.get( '/veilarboppfolging/api/person/:fnr/oppfoelgingsstatus', failOrGetResponse(oppfFeilet, () => oppfoelgingsstatus), ), - rest.post('/veilarboppfolging/api/oppfolging/mal', failOrGetResponse(maalFeilet, opprettMal)), - rest.post('/veilarboppfolging/api/:fnr/lestaktivitetsplan', (_, res, ctx) => res(ctx.status(204))), - rest.post('/veilarboppfolging/api/oppfolging/settDigital', failOrGetResponse(oppfFeilet, settDigital)), + http.post('/veilarboppfolging/api/oppfolging/mal', failOrGetResponse(maalFeilet, opprettMal)), + http.post('/veilarboppfolging/api/:fnr/lestaktivitetsplan', () => new Response(null, { status: 204 })), + http.post('/veilarboppfolging/api/oppfolging/settDigital', failOrGetResponse(oppfFeilet, settDigital)), // veilarbdialog - rest.get( + http.get( '/veilarbdialog/api/dialog', failOrGetResponse(dialogFeilet, () => dialog), ), - rest.get('/veilarbdialog/api/eskaleringsvarsel/gjeldende', jsonResponse(eskaleringsvarsel)), - rest.get('/veilarbdialog/api/dialog/sistOppdatert', jsonResponse({ sistOppdatert: 1678793406845 })), - rest.put('/veilarbdialog/api/dialog/:dialogId/venter_pa_svar/:bool', jsonResponse(setVenterPaaSvar)), - rest.put('/veilarbdialog/api/dialog/:dialogId/ferdigbehandlet/:bool', jsonResponse(setFerdigBehandlet)), - rest.post('/veilarbdialog/api/dialog', jsonResponse(opprettDialog)), + http.get('/veilarbdialog/api/eskaleringsvarsel/gjeldende', jsonResponse(eskaleringsvarsel)), + http.get('/veilarbdialog/api/dialog/sistOppdatert', jsonResponse({ sistOppdatert: 1678793406845 })), // veilarbaktivitet - rest.post('/veilarbaktivitet/api/logger/event', (_, res, ctx) => res(ctx.status(200))), - rest.get( - '/veilarbaktivitet/api/aktivitet', - failOrGetResponse(getAktivitetFeiler, () => aktiviteterData), - ), - rest.post( + http.post('/veilarbaktivitet/api/logger/event', () => new Response()), + http.get('/veilarbaktivitet/api/aktivitet', failOrGetResponse(getAktivitetFeiler, resolveAktiviteter)), + http.post( '/veilarbaktivitet/graphql', - failOrGrahpqlResponse(getAktivitetFeiler, () => { + failOrGrahpqlResponse(getAktivitetFeiler, (noe) => { return aktivitestplanResponse(); // Default aktiviteter }), ), - rest.post( + http.post( '/veilarbaktivitet/api/arena/tiltak', failOrGetResponse( () => arenaFeilet() && !oppdateringKunFeiler(), () => arena, ), ), - rest.get( + http.get( '/veilarbaktivitet/api/aktivitet/kanaler', failOrGetResponse(getAktivitetFeiler, () => ['INTERNETT', 'OPPMOTE', 'TELEFON']), ), - rest.put( + http.put( '/veilarbaktivitet/api/arena/forhaandsorientering', failOrGetResponse(() => arenaFeilet() && !oppdateringKunFeiler(), oppdaterArenaaktivitet), ), - rest.put( + http.put( '/veilarbaktivitet/api/arena/forhaandsorientering/lest', failOrGetResponse(() => arenaFeilet() && !oppdateringKunFeiler(), oppdaterLestFhoArenaaktivitet), ), - rest.get('/veilarbaktivitet/api/aktivitet/:aktivitetId', failOrGetResponse(getAktivitetFeiler, getAktivitet)), - rest.put('/veilarbaktivitet/api/aktivitet/:aktivitetId', failOrGetResponse(aktivitetFeilet, oppdaterAktivitet)), - rest.post('/veilarbaktivitet/api/aktivitet/ny', failOrGetResponse(aktivitetFeilet, opprettAktivitet)), - rest.get( + http.get('/veilarbaktivitet/api/aktivitet/:aktivitetId', failOrGetResponse(getAktivitetFeiler, getAktivitet)), + http.put('/veilarbaktivitet/api/aktivitet/:aktivitetId', failOrGetResponse(aktivitetFeilet, oppdaterAktivitet)), + http.post('/veilarbaktivitet/api/aktivitet/ny', failOrGetResponse(aktivitetFeilet, opprettAktivitet)), + http.get( '/veilarbaktivitet/api/aktivitet/:aktivitetId/versjoner', failOrGetResponse(getAktivitetFeiler, getAktivitetVersjoner), ), - rest.put( + http.put( '/veilarbaktivitet/api/aktivitet/:aktivitetId/status', failOrGetResponse(aktivitetFeilet, oppdaterAktivitetStatus), ), // todo sjekk ut denne, tror ikke det kun er stillingsaktivitet - rest.put( + http.put( '/veilarbaktivitet/api/aktivitet/:aktivitetId/etikett', failOrGetResponse(aktivitetFeilet, oppdaterEtikett), ), - rest.put( + http.put( '/veilarbaktivitet/api/aktivitet/:aktivitetId/referat/publiser', failOrGetResponse(aktivitetFeilet, publiserReferat), ), - rest.put('/veilarbaktivitet/api/aktivitet/:aktivitetId/referat', failOrGetResponse(aktivitetFeilet, endreReferat)), - rest.put('/veilarbaktivitet/api/avtaltMedNav', failOrGetResponse(aktivitetFeilet, oppdaterAvtaltMedNav)), - rest.put('/veilarbaktivitet/api/avtaltMedNav/lest', failOrGetResponse(aktivitetFeilet, oppdaterLestFho)), - rest.put( + http.put('/veilarbaktivitet/api/aktivitet/:aktivitetId/referat', failOrGetResponse(aktivitetFeilet, endreReferat)), + http.put('/veilarbaktivitet/api/avtaltMedNav', failOrGetResponse(aktivitetFeilet, oppdaterAvtaltMedNav)), + http.put('/veilarbaktivitet/api/avtaltMedNav/lest', failOrGetResponse(aktivitetFeilet, oppdaterLestFho)), + http.put( '/veilarbaktivitet/api/stillingFraNav/kanDeleCV', failOrGetResponse(aktivitetFeilet, oppdaterCVKanDelesSvar), ), - rest.put( + http.put( '/veilarbaktivitet/api/stillingFraNav/soknadStatus', failOrGetResponse(aktivitetFeilet, oppdaterStillingFraNavSoknadsstatus), ), - rest.get('/veilarbaktivitet/api/feature', jsonResponse(features)), - rest.get( + http.get('/veilarbaktivitet/api/feature', jsonResponse(features)), + http.get( '/veilarbaktivitet/api/arkivering/forhaandsvisning', failOrGetResponse(forhaandsvisningFeiler, () => pdfForhaandsvisning, 500), ), - rest.post( + http.post( '/veilarbaktivitet/api/arkivering/journalfor', failOrGetResponse(journalforingFeiler, () => journalføring, 2000), ), // veilarblest - rest.get('/veilarblest/api/aktivitetsplan/les', jsonResponse(lest)), - rest.put('/veilarblest/api/informasjon/les', jsonResponse(lest)), + http.get('/veilarblest/api/aktivitetsplan/les', jsonResponse(lest)), + http.put('/veilarblest/api/informasjon/les', jsonResponse(lest)), // veilarbperson - rest.get('/veilarbperson/api/v2/person', jsonResponse(getPerson)), - rest.get('/veilarbperson/api/v2/person/postadresse', jsonResponse(getPostadresse)), - rest.get('/veilarbperson/api/person/:fnr/harNivaa4', failOrGetResponse(nivaa4Feilet, getNivaa4)), + http.get('/veilarbperson/api/v2/person', jsonResponse(getPerson)), + http.get('/veilarbperson/api/v2/person/postadresse', jsonResponse(getPostadresse)), // veilarbveileder - rest.get('/veilarbveileder/api/veileder/me', jsonResponse(veilederMe)), + http.get('/veilarbveileder/api/veileder/me', jsonResponse(veilederMe)), // veilarboppgave - rest.get('/veilarboppgave/api/oppgavehistorikk', jsonResponse([])), + http.get('/veilarboppgave/api/oppgavehistorikk', jsonResponse([])), // veilarbmalverk - rest.post('/veilarbmalverk/api/mal', jsonResponse(hentMalverkMedType)), + http.post('/veilarbmalverk/api/mal', jsonResponse(hentMalverkMedType)), ]; export const aktivitestplanResponse = ( diff --git a/src/mocks/index.ts b/src/mocks/index.ts index 0c0b9f54e..33b7aba86 100644 --- a/src/mocks/index.ts +++ b/src/mocks/index.ts @@ -1,4 +1,4 @@ -import { setupWorker } from 'msw'; +import { setupWorker } from 'msw/browser'; import { handlers } from './handlers'; @@ -10,16 +10,16 @@ export default () => url: `${import.meta.env.BASE_URL}mockServiceWorker.js`, }, onUnhandledRequest: (req, print) => { - const hostBlacklist = ['amplitude.nav.no', 'nav.psplugin.com']; + const hostBlacklist = ['amplitude.nav.no', 'nav.psplugin.com', 'dekoratoren.ekstern.dev.nav.no']; const ignoredFileExtensions = ['.ts', '.js', '.tsx', '.jsx', 'css', 'svg', 'png', '.less']; + const url = new URL(req.url); const ignore = - hostBlacklist.some((route) => req.url.host.includes(route)) || - ignoredFileExtensions.some((fileExtension) => req.url.pathname.endsWith(fileExtension)); + hostBlacklist.some((route) => url.host.includes(route)) || + ignoredFileExtensions.some((fileExtension) => url.pathname.endsWith(fileExtension)); if (ignore) { return; } - print.warning(); }, }); diff --git a/src/mocks/utils.ts b/src/mocks/utils.ts index 09612abb3..b689d96cd 100644 --- a/src/mocks/utils.ts +++ b/src/mocks/utils.ts @@ -1,4 +1,4 @@ -import { ResponseComposition, RestContext, RestRequest } from 'msw'; +import { DefaultBodyType, HttpResponseResolver, PathParams, StrictRequest, delay as _delay } from 'msw'; export const mockfnr = '12345678910'; export const mockAktivEnhet = '0909'; @@ -7,62 +7,57 @@ export const rndId = (): string => { return `${Math.floor(Math.random() * 100000000)}`; }; -export const delayed = (ms: any, handler: any) => { - return async (req: any, res: any, ctx: any) => { - await new Promise((f) => setTimeout(f, ms)); - return handler(req, res, ctx); - }; -}; - -export const internalServerError = (ctx: RestContext) => { - return [ - ctx.status(500, 'Internal server error'), - ctx.json({ - id: '9170c6534ed5eca272d527cd30c6a458', - type: 'UKJENT', - detaljer: { - detaljertType: 'javax.ws.rs.InternalServerErrorException', - feilMelding: 'HTTP 500 Internal Server Error', - stackTrace: 'javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error\r\n\t', - }, - }), - ]; -}; +export const internalServerError = new Response( + JSON.stringify({ + id: '9170c6534ed5eca272d527cd30c6a458', + type: 'UKJENT', + detaljer: { + detaljertType: 'javax.ws.rs.InternalServerErrorException', + feilMelding: 'HTTP 500 Internal Server Error', + stackTrace: 'javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error\r\n\t', + }, + }), + { status: 500 }, +); -export const failOrGetResponse = ( +export const failOrGetResponse = ( failFn: () => boolean, - successFn: (req: RestRequest) => object | undefined, + successFn: (req: StrictRequest, params: PathParams) => object | undefined, delay?: number | undefined, -) => { - return async (req: RestRequest, res: ResponseComposition, ctx: RestContext) => { +): HttpResponseResolver => { + return (async ({ request, params }): Promise => { if (failFn()) { - return res(...internalServerError(ctx)); + return internalServerError; } - if (delay) { - return res(ctx.delay(delay), ctx.json(await successFn(req))); - } - return res(ctx.json(await successFn(req))); - }; + if (delay) await _delay(delay); + const result = successFn(request, params); + return new Response(JSON.stringify(result)); + }) as HttpResponseResolver; }; -export const failOrGrahpqlResponse = (failFn: () => boolean, successFn: (req: RestRequest) => object | undefined) => { - return async (req: RestRequest, res: ResponseComposition, ctx: RestContext) => { +export const failOrGrahpqlResponse = ( + failFn: () => boolean, + successFn: (req: StrictRequest) => object | undefined, +): HttpResponseResolver => { + return async ({ request }) => { if (failFn()) { const failResponse = { data: undefined, errors: [{ message: 'Kunne ikke hente aktiviteter (graphql)' }], }; - return res(ctx.json(failResponse)); + return new Response(JSON.stringify(failResponse)); } - return res(ctx.json(await successFn(req))); + return new Response(JSON.stringify(await successFn(request))); }; }; -export const jsonResponse = (response: object | null | boolean | ((req: RestRequest) => object)) => { - return async (req: RestRequest, res: ResponseComposition, ctx: RestContext) => { +type MockPayload = object | null | boolean | ((req: StrictRequest) => object); + +export const jsonResponse = (response: MockPayload): HttpResponseResolver => { + return async ({ request }) => { if (typeof response === 'function') { - return res(ctx.json(await response(req))); + return new Response(JSON.stringify(await response(request))); } - return res(ctx.json(response)); + return new Response(JSON.stringify(response)); }; }; diff --git a/src/moduler/aktivitet/aktivitet-actions.ts b/src/moduler/aktivitet/aktivitet-actions.ts index 6e8ca916a..d0b9e3c55 100644 --- a/src/moduler/aktivitet/aktivitet-actions.ts +++ b/src/moduler/aktivitet/aktivitet-actions.ts @@ -1,7 +1,7 @@ import { createAsyncThunk } from '@reduxjs/toolkit'; import * as Api from '../../api/aktivitetAPI'; -import { AktivitetStatus } from '../../datatypes/aktivitetTypes'; +import { AktivitetStatus, StillingFraNavSoknadsstatus } from '../../datatypes/aktivitetTypes'; import { Forhaandsorientering } from '../../datatypes/forhaandsorienteringTypes'; import { MoteAktivitet, SamtalereferatAktivitet, VeilarbAktivitet } from '../../datatypes/internAktivitetTypes'; import { hentAktiviteterGraphql } from '../../api/aktivitetsplanGraphql'; @@ -97,7 +97,7 @@ export const oppdaterStillingFraNavSoknadsstatus = createAsyncThunk( }: { aktivitetId: string; aktivitetVersjon: string; - soknadsstatus: string; + soknadsstatus: StillingFraNavSoknadsstatus; }) => { return await Api.oppdaterStillingFraNavSoknadsstatus(aktivitetId, aktivitetVersjon, soknadsstatus); }, diff --git a/src/moduler/filtrering/filter/PeriodeFilter.test.tsx b/src/moduler/filtrering/filter/PeriodeFilter.test.tsx index cf447f6a2..77b057a59 100644 --- a/src/moduler/filtrering/filter/PeriodeFilter.test.tsx +++ b/src/moduler/filtrering/filter/PeriodeFilter.test.tsx @@ -16,7 +16,7 @@ import { expect } from 'vitest'; import { erHistorisk, HistoriskOppfolgingsperiode } from '../../../datatypes/oppfolgingTypes'; import { WrappedHovedside } from '../../../testUtils/WrappedHovedside'; import { emptyLoadedVeilederState } from '../../../testUtils/defaultInitialStore'; -import { rest } from 'msw'; +import { http } from 'msw'; import { failOrGrahpqlResponse } from '../../../mocks/utils'; vi.mock('../../../felles-komponenter/utils/logging', async () => { @@ -103,14 +103,14 @@ const initialStore = { // Overstyr lesing av aktiviteter i denne testen const server = setupServer( - rest.post( + http.post( '/veilarbaktivitet/graphql', failOrGrahpqlResponse( () => false, () => aktivitestplanResponse({ aktiviteter: [veilarbAktivitet, gammelVeilarbAktivitet] }), ), ), - rest.get( + http.get( '/veilarbaktivitet/api/arena/tiltak', failOrGrahpqlResponse( () => false, diff --git a/src/moduler/filtrering/filter/aktivitetFilter.test.tsx b/src/moduler/filtrering/filter/aktivitetFilter.test.tsx index 241cd1987..d92db57fb 100644 --- a/src/moduler/filtrering/filter/aktivitetFilter.test.tsx +++ b/src/moduler/filtrering/filter/aktivitetFilter.test.tsx @@ -24,7 +24,7 @@ import { aktivitetTypeMap, stillingsEtikettMapper } from '../../../utils/textMap import { erHistorisk } from '../../../datatypes/oppfolgingTypes'; import { WrappedHovedside } from '../../../testUtils/WrappedHovedside'; import { emptyLoadedVeilederState } from '../../../testUtils/defaultInitialStore'; -import { rest } from 'msw'; +import { http } from 'msw'; import { failOrGrahpqlResponse } from '../../../mocks/utils'; vi.mock('../../../felles-komponenter/utils/logging', async () => { @@ -66,7 +66,7 @@ function makeTestAktiviteter( let filterTestData = aktiviteterData.aktiviteter; const server = setupServer( - rest.post( + http.post( '/veilarbaktivitet/graphql', failOrGrahpqlResponse( () => false, diff --git a/src/moduler/journalforing/Sidebar.tsx b/src/moduler/journalforing/Sidebar.tsx index b3323fe16..669096a3d 100644 --- a/src/moduler/journalforing/Sidebar.tsx +++ b/src/moduler/journalforing/Sidebar.tsx @@ -27,7 +27,6 @@ const Sidebar: FunctionComponent = () => { const journalføringsStatus = useSelector(selectJournalføringstatus); const henterForhaandsvisning = [Status.PENDING, Status.RELOADING].includes(forhaandsvisningStatus); const journalfører = [Status.PENDING, Status.RELOADING].includes(journalføringsStatus); - console.log({ journalføringsStatus }); const { hovedsideRoute } = useRoutes(); const navigate = useNavigate(); const { aktivEnhet: journalførendeEnhet } = useFnrOgEnhetContext();