From b62d95c7984c9da7232cae49519e7421db3ccb34 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Sun, 3 Mar 2024 13:13:36 +0200 Subject: [PATCH 01/20] Updated packages --- package-lock.json | 406 ++++++++++++++++++++++------------------------ 1 file changed, 198 insertions(+), 208 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a5ae4ed..50ba14ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "lahjalista", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@prisma/client": "5.9.1", "@types/node": "20.6.0", @@ -64,13 +65,13 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -170,9 +171,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -180,11 +181,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -255,9 +256,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", - "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -400,9 +401,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -520,14 +521,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -619,9 +620,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1426,14 +1427,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.23.3" }, @@ -1826,14 +1827,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -1886,7 +1887,7 @@ "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", @@ -1979,9 +1980,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1990,23 +1991,23 @@ } }, "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", @@ -2015,8 +2016,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2025,9 +2026,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -2270,13 +2271,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -2291,9 +2292,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } @@ -2304,9 +2305,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2996,9 +2997,9 @@ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -3778,9 +3779,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3864,15 +3868,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bare-events": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", - "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", "optional": true }, "node_modules/bare-fs": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz", - "integrity": "sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.1.tgz", + "integrity": "sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==", "optional": true, "dependencies": { "bare-events": "^2.0.0", @@ -4163,9 +4167,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", "funding": [ { "type": "opencollective", @@ -4841,9 +4845,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.670", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz", - "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==" + "version": "1.4.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz", + "integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -4867,9 +4871,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4911,17 +4915,17 @@ } }, "node_modules/es-abstract": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", - "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.6", + "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", @@ -4929,15 +4933,15 @@ "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.1", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "hasown": "^2.0.1", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", @@ -4950,10 +4954,10 @@ "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.1", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.14" }, @@ -5014,13 +5018,13 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -5258,9 +5262,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dependencies": { "debug": "^3.2.7" }, @@ -5892,13 +5896,13 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -5954,29 +5958,6 @@ "isarray": "0.0.1" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5990,20 +5971,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6164,9 +6131,9 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "node_modules/follow-redirects": { "version": "1.15.5", @@ -6531,9 +6498,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -6861,9 +6828,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -6930,11 +6897,14 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7674,9 +7644,9 @@ } }, "node_modules/node-abi": { - "version": "3.54.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", - "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", + "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", "dependencies": { "semver": "^7.3.5" }, @@ -8167,6 +8137,14 @@ "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.33", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", @@ -8263,9 +8241,9 @@ } }, "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.0.tgz", - "integrity": "sha512-p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "engines": { "node": ">=14" }, @@ -8309,9 +8287,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -9058,13 +9036,14 @@ } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9147,11 +9126,11 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -9345,9 +9324,9 @@ } }, "node_modules/streamx": { - "version": "2.15.8", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.8.tgz", - "integrity": "sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -9887,11 +9866,11 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", - "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" }, @@ -9900,14 +9879,15 @@ } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -9917,15 +9897,16 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -9935,13 +9916,19 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10246,9 +10233,12 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz", + "integrity": "sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } From db6e3e6e0a358dc3120e6239d923dcacb8aae259 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 14:24:19 +0200 Subject: [PATCH 02/20] Created a new folder backend. Created a file called handleError.ts --- backend/handleError.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 backend/handleError.ts diff --git a/backend/handleError.ts b/backend/handleError.ts new file mode 100644 index 00000000..e69de29b From e05d2704efb3e6a78036138b56d5bb98db4de44e Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 14:32:17 +0200 Subject: [PATCH 03/20] Changed if UUID is not a string now returns instantly the error instead going through error found process --- pages/api/gifts/[uuid].ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/api/gifts/[uuid].ts b/pages/api/gifts/[uuid].ts index b6ccd5a4..8eafdca9 100644 --- a/pages/api/gifts/[uuid].ts +++ b/pages/api/gifts/[uuid].ts @@ -24,7 +24,7 @@ export default async function handlePrisma( const reqHandler = req.method !== undefined && HANDLERS[req.method]; if (reqHandler) { if (typeof req.query.uuid !== 'string') { - throw new Error('Invalid ID', { cause: 'idError' }); + return res.status(400).send('Invalid ID'); } const queryUUID = req.query.uuid; await reqHandler({ req, res, queryUUID }); From d5355fc81f9d3fcdd9eb11884c23f35d4c9f714b Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 14:35:43 +0200 Subject: [PATCH 04/20] Created simple error handler and added Prisma's 'record not found' error there --- backend/handleError.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/handleError.ts b/backend/handleError.ts index e69de29b..8cabaea9 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -0,0 +1,12 @@ +import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library'; +import { NextApiResponse } from 'next'; + +export function handleError(res: NextApiResponse, e: unknown) { + if (e instanceof PrismaClientKnownRequestError) { + if (e.code === 'P2025') { + return res.status(404).send('Gift was not found on the server!'); + } + } + + return res.status(500).send('Server error!'); +} From e07ab7181d36891e98c0028258b85bfe3bd009ce Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 14:38:50 +0200 Subject: [PATCH 05/20] Changed errorFound to handleError --- pages/api/gifts/[uuid].ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/api/gifts/[uuid].ts b/pages/api/gifts/[uuid].ts index 8eafdca9..ee1596bf 100644 --- a/pages/api/gifts/[uuid].ts +++ b/pages/api/gifts/[uuid].ts @@ -1,7 +1,7 @@ import { Gift } from '~/shared/types'; import { NextApiRequest, NextApiResponse } from 'next'; import prisma from '~/prisma'; -import { errorFound } from '.'; +import { handleError } from '~/backend/handleError'; type HandlerParams = { req: NextApiRequest; @@ -36,7 +36,7 @@ export default async function handlePrisma( ); } } catch (e) { - return errorFound(res, e); + return handleError(res, e); } } From b3ed93c1048c6658698793831ab400d7ed0e42f2 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 14:39:22 +0200 Subject: [PATCH 06/20] Removed errorFound function. Replaced it with backend's handleError function --- pages/api/gifts/index.ts | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/pages/api/gifts/index.ts b/pages/api/gifts/index.ts index 7c02d007..3443f287 100644 --- a/pages/api/gifts/index.ts +++ b/pages/api/gifts/index.ts @@ -1,6 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next'; import { CreateGift, Gift } from '~/shared/types'; import prisma from '~/prisma'; +import { handleError } from '~/backend/handleError'; const HANDLER: Record< string, @@ -26,7 +27,7 @@ export default async function handlePrisma( ); } } catch (e) { - return errorFound(res, e); + return handleError(res, e); } } @@ -62,15 +63,3 @@ async function handlePOST(req: NextApiRequest, res: NextApiResponse) { return res.status(200).json(addedGift); } - -export function errorFound(res: NextApiResponse, e: unknown) { - if (e instanceof Error) { - if (e.message.toLowerCase() === 'no gift found') { - return res.status(400).send('Gift was not found!'); - } - if (e.cause === 'idError') return res.status(400).send('Invalid ID!'); - return res.status(500).send('Server error!'); - } - - return res.status(500).send('Unexpected error occurred!'); -} From 3205825bcab335f9befed27ec9e589f0c57d2724 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Tue, 5 Mar 2024 15:39:54 +0200 Subject: [PATCH 07/20] Added an error if trying to send an invalid request body to server (in POST or PUT request) --- backend/handleError.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/backend/handleError.ts b/backend/handleError.ts index 8cabaea9..a580e813 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -1,4 +1,7 @@ -import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library'; +import { + PrismaClientKnownRequestError, + PrismaClientValidationError, +} from '@prisma/client/runtime/library'; import { NextApiResponse } from 'next'; export function handleError(res: NextApiResponse, e: unknown) { @@ -8,5 +11,9 @@ export function handleError(res: NextApiResponse, e: unknown) { } } + if (e instanceof PrismaClientValidationError) { + return res.status(400).send('Invalid request body!'); + } + return res.status(500).send('Server error!'); } From 1ba1824f9b359f747de9e827799aa181943436a8 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Thu, 7 Mar 2024 14:36:52 +0200 Subject: [PATCH 08/20] Created a new file HttpError.ts --- backend/HttpError.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 backend/HttpError.ts diff --git a/backend/HttpError.ts b/backend/HttpError.ts new file mode 100644 index 00000000..e69de29b From eae2e85051625c2047b513edd51a5c91224d92d4 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Thu, 7 Mar 2024 14:37:27 +0200 Subject: [PATCH 09/20] Added a basic custom error class --- backend/HttpError.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/backend/HttpError.ts b/backend/HttpError.ts index e69de29b..db5d579c 100644 --- a/backend/HttpError.ts +++ b/backend/HttpError.ts @@ -0,0 +1,13 @@ +class HttpError extends Error { + httpStatusCode: number; + + constructor(message: string, httpStatusCode: number) { + super(message); + this.httpStatusCode = httpStatusCode; + this.name = this.constructor.name; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} From 22f7e9b1d5b508a31bbf21bd6e111e7745159419 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Thu, 7 Mar 2024 14:37:52 +0200 Subject: [PATCH 10/20] Added HttpError custom error to be recognized in handleError.ts --- backend/handleError.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/handleError.ts b/backend/handleError.ts index a580e813..95359cf5 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -5,6 +5,10 @@ import { import { NextApiResponse } from 'next'; export function handleError(res: NextApiResponse, e: unknown) { + if (e instanceof HttpError) { + return res.status(e.httpStatusCode ?? 400).send(e.message); + } + if (e instanceof PrismaClientKnownRequestError) { if (e.code === 'P2025') { return res.status(404).send('Gift was not found on the server!'); From b1a9157783410cb7602bd6439b9dc08af7adaf5c Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Thu, 7 Mar 2024 14:39:31 +0200 Subject: [PATCH 11/20] Made HttpError class exportable and imported it in handleError.ts --- backend/HttpError.ts | 2 +- backend/handleError.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/HttpError.ts b/backend/HttpError.ts index db5d579c..e8602f3a 100644 --- a/backend/HttpError.ts +++ b/backend/HttpError.ts @@ -1,4 +1,4 @@ -class HttpError extends Error { +export class HttpError extends Error { httpStatusCode: number; constructor(message: string, httpStatusCode: number) { diff --git a/backend/handleError.ts b/backend/handleError.ts index 95359cf5..ebc2e21a 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -3,6 +3,7 @@ import { PrismaClientValidationError, } from '@prisma/client/runtime/library'; import { NextApiResponse } from 'next'; +import { HttpError } from './HttpError'; export function handleError(res: NextApiResponse, e: unknown) { if (e instanceof HttpError) { From 1f27b5341a506b8ac5fb75b3fc3efb9bde0d2881 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 10:53:35 +0200 Subject: [PATCH 12/20] Added console.error if error was not validated --- backend/handleError.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/handleError.ts b/backend/handleError.ts index ebc2e21a..44c88f50 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -20,5 +20,6 @@ export function handleError(res: NextApiResponse, e: unknown) { return res.status(400).send('Invalid request body!'); } + console.error(e); return res.status(500).send('Server error!'); } From a8919c41dd168cdb16679c819f6e0e97d203cd2b Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 11:02:01 +0200 Subject: [PATCH 13/20] Added a check if error was related to Gift --- backend/handleError.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/handleError.ts b/backend/handleError.ts index 44c88f50..57f2e797 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -12,7 +12,10 @@ export function handleError(res: NextApiResponse, e: unknown) { if (e instanceof PrismaClientKnownRequestError) { if (e.code === 'P2025') { - return res.status(404).send('Gift was not found on the server!'); + if (e.meta?.modelName === 'Gift') { + return res.status(404).send('Gift was not found on the server!'); + } + return res.status(404).send('Record was not found on the server!'); } } From 958fb85ed5b08360d1bef774ba5114749b863688 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 11:05:58 +0200 Subject: [PATCH 14/20] Changed error returns to throw an error instead --- pages/api/gifts/[uuid].ts | 12 ++++++------ pages/api/gifts/index.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pages/api/gifts/[uuid].ts b/pages/api/gifts/[uuid].ts index ee1596bf..52d348af 100644 --- a/pages/api/gifts/[uuid].ts +++ b/pages/api/gifts/[uuid].ts @@ -2,6 +2,7 @@ import { Gift } from '~/shared/types'; import { NextApiRequest, NextApiResponse } from 'next'; import prisma from '~/prisma'; import { handleError } from '~/backend/handleError'; +import { HttpError } from '~/backend/HttpError'; type HandlerParams = { req: NextApiRequest; @@ -24,16 +25,15 @@ export default async function handlePrisma( const reqHandler = req.method !== undefined && HANDLERS[req.method]; if (reqHandler) { if (typeof req.query.uuid !== 'string') { - return res.status(400).send('Invalid ID'); + throw new HttpError('Invalid ID', 400); } const queryUUID = req.query.uuid; await reqHandler({ req, res, queryUUID }); } else { - return res - .status(405) - .send( - `${req.method} is not a valid method. GET, PATCH, PUT and DELETE request are valid.`, - ); + throw new HttpError( + `${req.method} is not a valid method. GET, PATCH, PUT and DELETE request are valid.`, + 405, + ); } } catch (e) { return handleError(res, e); diff --git a/pages/api/gifts/index.ts b/pages/api/gifts/index.ts index 3443f287..0007eb65 100644 --- a/pages/api/gifts/index.ts +++ b/pages/api/gifts/index.ts @@ -2,6 +2,7 @@ import { NextApiRequest, NextApiResponse } from 'next'; import { CreateGift, Gift } from '~/shared/types'; import prisma from '~/prisma'; import { handleError } from '~/backend/handleError'; +import { HttpError } from '~/backend/HttpError'; const HANDLER: Record< string, @@ -20,11 +21,10 @@ export default async function handlePrisma( if (reqHandler) { await reqHandler(req, res); } else { - return res - .status(405) - .send( - `${req.method} is not a valid method. Only GET and POST requests are valid!`, - ); + throw new HttpError( + `${req.method} is not a valid method. Only GET and POST requests are valid!`, + 405, + ); } } catch (e) { return handleError(res, e); From 637fe9e3eb14403ffcf1bccb37f3beaa7187de34 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 11:21:38 +0200 Subject: [PATCH 15/20] Created a new folder frontend. Added handleError.ts file --- frontend/handleError.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 frontend/handleError.ts diff --git a/frontend/handleError.ts b/frontend/handleError.ts new file mode 100644 index 00000000..e69de29b From 9a3694944c9b9407e461e0b04487a474c6cfd55e Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 11:22:48 +0200 Subject: [PATCH 16/20] Created a function handleGiftError and added the same error handling code as in .tsx files --- frontend/handleError.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/handleError.ts b/frontend/handleError.ts index e69de29b..620dee78 100644 --- a/frontend/handleError.ts +++ b/frontend/handleError.ts @@ -0,0 +1,11 @@ +import { isAxiosError } from 'axios'; + +export function handleGiftError(e: unknown) { + if (isAxiosError(e) && e.response?.status === 404) { + console.error('Lahjaa ei löytynyt palvelimelta!'); + } else if (e instanceof Error) { + console.error(e.message); + } else { + console.error(e); + } +} From 9b4353c05526ebe1c4dc633630ce80e2fc4c337a Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Mon, 11 Mar 2024 11:23:50 +0200 Subject: [PATCH 17/20] Changed 'own error handling' to a function --- components/DeleteModal.tsx | 10 ++-------- components/EditModal.tsx | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/components/DeleteModal.tsx b/components/DeleteModal.tsx index 004763d4..3c38a705 100644 --- a/components/DeleteModal.tsx +++ b/components/DeleteModal.tsx @@ -6,7 +6,7 @@ import { Button } from './Button'; import { SvgCheckMarkIcon } from '~/icons/CheckMarkIcon'; import { SvgDeclineIcon } from '~/icons/DeclineIcon'; import { deleteGift } from '~/utils/giftRequests'; -import { isAxiosError } from 'axios'; +import { handleGiftError } from '~/frontend/handleError'; type DeleteModal = { gift: Gift; @@ -23,13 +23,7 @@ export function DeleteModal({ try { await deleteGift(gift.uuid); } catch (e) { - if (isAxiosError(e) && e.response?.status === 404) { - console.error('Lahjaa ei löytynyt palvelimelta!'); - } else if (e instanceof Error) { - console.error(e.message); - } else { - console.error(e); - } + handleGiftError(e); } refreshGiftList(); setIsModalOpen(false); diff --git a/components/EditModal.tsx b/components/EditModal.tsx index a853dfe9..d0b5aedd 100644 --- a/components/EditModal.tsx +++ b/components/EditModal.tsx @@ -13,7 +13,7 @@ import { updateGift } from '~/utils/giftRequests'; import { Input } from './Input'; import { SvgCheckMarkIcon } from '~/icons/CheckMarkIcon'; import { SvgDeclineIcon } from '~/icons/DeclineIcon'; -import { isAxiosError } from 'axios'; +import { handleGiftError } from '~/frontend/handleError'; type EditModal = { gift: Gift; @@ -46,13 +46,7 @@ export function EditModal({ try { await updateGift(gift.uuid, { receiver: giftReceiver, gift: giftName }); } catch (e) { - if (isAxiosError(e) && e.response?.status === 404) { - console.error('Lahjaa ei löytynyt palvelimelta!'); - } else if (e instanceof Error) { - console.error(e.message); - } else { - console.error(e); - } + handleGiftError(e); } refreshGiftList(); setIsModalOpen(false); From 348358343e5c5ca0114707b8228a926ee51373ce Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Wed, 13 Mar 2024 16:22:53 +0200 Subject: [PATCH 18/20] Moved handleError.ts to utils folder --- {frontend => utils}/handleError.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {frontend => utils}/handleError.ts (100%) diff --git a/frontend/handleError.ts b/utils/handleError.ts similarity index 100% rename from frontend/handleError.ts rename to utils/handleError.ts From 5c0cd04e6e0acb55f313f54aff5e3e56818a235f Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Wed, 13 Mar 2024 16:28:42 +0200 Subject: [PATCH 19/20] Fixed imports after move of handleError.ts --- components/DeleteModal.tsx | 2 +- components/EditModal.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/DeleteModal.tsx b/components/DeleteModal.tsx index 3c38a705..55b0758b 100644 --- a/components/DeleteModal.tsx +++ b/components/DeleteModal.tsx @@ -6,7 +6,7 @@ import { Button } from './Button'; import { SvgCheckMarkIcon } from '~/icons/CheckMarkIcon'; import { SvgDeclineIcon } from '~/icons/DeclineIcon'; import { deleteGift } from '~/utils/giftRequests'; -import { handleGiftError } from '~/frontend/handleError'; +import { handleGiftError } from '~/utils/handleError'; type DeleteModal = { gift: Gift; diff --git a/components/EditModal.tsx b/components/EditModal.tsx index d0b5aedd..1e53d911 100644 --- a/components/EditModal.tsx +++ b/components/EditModal.tsx @@ -13,7 +13,7 @@ import { updateGift } from '~/utils/giftRequests'; import { Input } from './Input'; import { SvgCheckMarkIcon } from '~/icons/CheckMarkIcon'; import { SvgDeclineIcon } from '~/icons/DeclineIcon'; -import { handleGiftError } from '~/frontend/handleError'; +import { handleGiftError } from '~/utils/handleError'; type EditModal = { gift: Gift; From c282fe20c23c6d33ebe71d7bc951467718244813 Mon Sep 17 00:00:00 2001 From: Antti Asmala Date: Wed, 13 Mar 2024 19:24:49 +0200 Subject: [PATCH 20/20] Made Prisma's error code P2025 to be generic --- backend/handleError.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/handleError.ts b/backend/handleError.ts index 57f2e797..79c3bcee 100644 --- a/backend/handleError.ts +++ b/backend/handleError.ts @@ -12,10 +12,9 @@ export function handleError(res: NextApiResponse, e: unknown) { if (e instanceof PrismaClientKnownRequestError) { if (e.code === 'P2025') { - if (e.meta?.modelName === 'Gift') { - return res.status(404).send('Gift was not found on the server!'); - } - return res.status(404).send('Record was not found on the server!'); + const modelName = + typeof e.meta?.modelName === 'string' ? e.meta?.modelName : 'Record'; + return res.status(404).send(`${modelName} was not found on the server!`); } }