From 49eaf3db847f2eaaa8f5b48ff6a99f0af72d03f5 Mon Sep 17 00:00:00 2001
From: Anngr950 <anngr950@student.liu.se>
Date: Thu, 4 Apr 2024 15:39:55 +0200
Subject: [PATCH] =?UTF-8?q?Nu=20s=C3=A5,=20f=C3=A5r=20iallafall=20upp=20da?=
 =?UTF-8?q?tabasen=20utan=20problem?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 my-app/app/api/checkdb/route.js              |  11 +
 my-app/app/api/checkdb/route.ts              |  21 --
 my-app/app/myndighet/listaMyndighet/page.tsx |   2 -
 my-app/lib/db.js                             |  26 --
 my-app/lib/dbConnect.ts                      |  48 +---
 my-app/lib/myndigheter.ts                    |  27 +-
 my-app/package-lock.json                     | 247 ++++++++++++++++++-
 my-app/package.json                          |   8 +-
 8 files changed, 279 insertions(+), 111 deletions(-)
 create mode 100644 my-app/app/api/checkdb/route.js
 delete mode 100644 my-app/app/api/checkdb/route.ts
 delete mode 100644 my-app/lib/db.js

diff --git a/my-app/app/api/checkdb/route.js b/my-app/app/api/checkdb/route.js
new file mode 100644
index 0000000..d5ec49b
--- /dev/null
+++ b/my-app/app/api/checkdb/route.js
@@ -0,0 +1,11 @@
+import { NextResponse } from 'next/server';
+import Movie from '../../../lib/myndigheter'
+
+export async function GET() {
+    try {
+        const movie = await Movie.find();
+        return NextResponse.json({movie},{status:200, message: 'Movies found'});
+    } catch (error) {
+        return NextResponse.json({status:500, message: 'Error finding movies'});
+    }
+}
\ No newline at end of file
diff --git a/my-app/app/api/checkdb/route.ts b/my-app/app/api/checkdb/route.ts
deleted file mode 100644
index 6d92caf..0000000
--- a/my-app/app/api/checkdb/route.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { NextRequest } from "next/server";
-import { NextApiRequest, NextApiResponse } from "next";
-import dbConnect from "../../../lib/dbConnect";
-import Movie from "../../../lib/myndigheter";
-
-export default async function handler(
-    req: NextApiRequest,
-    res: NextApiResponse,
-  ) {
-    const { method } = req;
-    await dbConnect();
-
-    if (method === "GET"){
-      try {
-        const movies = await Movie.find({});
-        res.status(200).json({ success: true, data: movies });
-      } catch (error) {
-        res.status(400).json({ success: false });
-      }
-    }
-  }
\ No newline at end of file
diff --git a/my-app/app/myndighet/listaMyndighet/page.tsx b/my-app/app/myndighet/listaMyndighet/page.tsx
index d692b6f..0b05505 100644
--- a/my-app/app/myndighet/listaMyndighet/page.tsx
+++ b/my-app/app/myndighet/listaMyndighet/page.tsx
@@ -2,8 +2,6 @@ import React from 'react'
 import CompleteMenu from '../../../components/completeMenu';
 import Logo from '../../../components/logo';
 
-
-
 export default function Page() {
     return (
         <div>
diff --git a/my-app/lib/db.js b/my-app/lib/db.js
deleted file mode 100644
index 91b3f3c..0000000
--- a/my-app/lib/db.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import mongoose from 'mongoose'
-
-global.mongoose = {
-    conn: null,
-    promise: null,
-}
-
-export async function dbConnect() {
-    if (global.mongoose && global.mongoose.conn) {
-        return global.mongoose.conn; 
-    } else {
-        const conString = process.env.MONGO_URL; 
-
-        const promise = mongoose.connect(conString, {
-            autoIndex: true,
-        });
-
-        global.mongoose = {
-            conn: await promise, 
-            promise,
-        };
-        console.log("Newly connected"); 
-
-        return await promise;
-    }
-}
\ No newline at end of file
diff --git a/my-app/lib/dbConnect.ts b/my-app/lib/dbConnect.ts
index 11163bd..b8ab141 100644
--- a/my-app/lib/dbConnect.ts
+++ b/my-app/lib/dbConnect.ts
@@ -1,44 +1,22 @@
 //CONNECTING TO OUR DATABASE
-
 import mongoose from "mongoose";
-declare global {
-  var mongoose: any;
-}
-
-const MONGODB_URI = process.env.MONGODB_URI!; 
-
-if (!MONGODB_URI) {
-  throw new Error(
-    "Please define the MONGODB_URI environment variable inside .env.local",
-  );
-}
 
-let cached = global.mongoose;
+let isConnected = false; 
 
-if (!cached) {
-  cached = global.mongoose = { conn: null, promise: null };
-}
+export const dbConnect = async () =>{
+  mongoose.set('strictQuery', true);
 
-async function dbConnect() {
-  if (cached.conn) {
-    return cached.conn;
+  if(!process.env.MONGODB_URI) {
+    return (console.log("MONGODB_URI is not defined"));
   }
-  if (!cached.promise) {
-    const opts = {
-      bufferCommands: false,
-    };
-    cached.promise = mongoose.connect(MONGODB_URI, opts).then((mongoose) => {
-      return mongoose;
-    });
+  if(isConnected) {
+    return console.log("Already connected to database");
   }
+
   try {
-    cached.conn = await cached.promise;
-  } catch (e) {
-    cached.promise = null;
-    throw e;
+    await mongoose.connect(process.env.MONGODB_URI);
+    isConnected = true;
+  } catch (error) {
+    console.log("Error connecting to database: ", error);
   }
-
-  return cached.conn;
-}
-
-export default dbConnect;
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/my-app/lib/myndigheter.ts b/my-app/lib/myndigheter.ts
index 2154c67..b173cad 100644
--- a/my-app/lib/myndigheter.ts
+++ b/my-app/lib/myndigheter.ts
@@ -1,23 +1,16 @@
-import mongoose from "mongoose";
+import mongoose, { Document, Model } from "mongoose";
 
-export interface Movie extends mongoose.Document {
-  _id: string;
+export interface MovieDocument extends Document {
+  id: number;
   title: string;
+  // Define other properties here if needed
 }
 
-/* correspond to a collection in your MongoDB database. */
-const MovieSchema = new mongoose.Schema<Movie>({
-  title: {
-    type: String,
-    required: [true, "Please provide a name for this pet."],
-    maxlength: [60, "Name cannot be more than 60 characters"],
-  },
+const movieSchema = new mongoose.Schema({
+  id: { type: Number, required: true },
+  title: { type: String, required: true },
+  // Define other schema properties here if needed
 });
 
-const MovieModel = mongoose.models.Movie || mongoose.model<Movie>("Movie", MovieSchema);
-
-export default MovieModel
-
-
-
-
+const Movie = mongoose.models.Movie || mongoose.model<MovieDocument>("Movie", movieSchema);
+export default Movie;
diff --git a/my-app/package-lock.json b/my-app/package-lock.json
index b4799f5..1bd3567 100644
--- a/my-app/package-lock.json
+++ b/my-app/package-lock.json
@@ -13,8 +13,10 @@
         "@radix-ui/react-slot": "^1.0.2",
         "class-variance-authority": "^0.7.0",
         "clsx": "^2.1.0",
+        "cmdk": "^1.0.0",
         "date-fns": "^3.6.0",
         "lucide-react": "^0.364.0",
+        "mongoose": "^8.3.0",
         "next": "14.1.4",
         "react": "^18",
         "react-day-picker": "^8.10.0",
@@ -23,15 +25,15 @@
         "tailwindcss-animate": "^1.0.7"
       },
       "devDependencies": {
-        "@types/node": "^20",
-        "@types/react": "^18",
+        "@types/node": "20.12.2",
+        "@types/react": "18.2.73",
         "@types/react-dom": "^18",
         "autoprefixer": "^10.0.1",
         "eslint": "^8",
         "eslint-config-next": "14.1.4",
         "postcss": "^8",
         "tailwindcss": "^3.3.0",
-        "typescript": "^5"
+        "typescript": "5.4.3"
       }
     },
     "node_modules/@aashutoshrathi/word-wrap": {
@@ -272,6 +274,14 @@
         "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
+    "node_modules/@mongodb-js/saslprep": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz",
+      "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==",
+      "dependencies": {
+        "sparse-bitfield": "^3.0.3"
+      }
+    },
     "node_modules/@next/env": {
       "version": "14.1.4",
       "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.4.tgz",
@@ -561,6 +571,42 @@
         }
       }
     },
+    "node_modules/@radix-ui/react-dialog": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz",
+      "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==",
+      "dependencies": {
+        "@babel/runtime": "^7.13.10",
+        "@radix-ui/primitive": "1.0.1",
+        "@radix-ui/react-compose-refs": "1.0.1",
+        "@radix-ui/react-context": "1.0.1",
+        "@radix-ui/react-dismissable-layer": "1.0.5",
+        "@radix-ui/react-focus-guards": "1.0.1",
+        "@radix-ui/react-focus-scope": "1.0.4",
+        "@radix-ui/react-id": "1.0.1",
+        "@radix-ui/react-portal": "1.0.4",
+        "@radix-ui/react-presence": "1.0.1",
+        "@radix-ui/react-primitive": "1.0.3",
+        "@radix-ui/react-slot": "1.0.2",
+        "@radix-ui/react-use-controllable-state": "1.0.1",
+        "aria-hidden": "^1.1.1",
+        "react-remove-scroll": "2.5.5"
+      },
+      "peerDependencies": {
+        "@types/react": "*",
+        "@types/react-dom": "*",
+        "react": "^16.8 || ^17.0 || ^18.0",
+        "react-dom": "^16.8 || ^17.0 || ^18.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/react": {
+          "optional": true
+        },
+        "@types/react-dom": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/@radix-ui/react-direction": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz",
@@ -1139,6 +1185,19 @@
         "@types/react": "*"
       }
     },
+    "node_modules/@types/webidl-conversions": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
+      "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
+    },
+    "node_modules/@types/whatwg-url": {
+      "version": "11.0.4",
+      "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz",
+      "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==",
+      "dependencies": {
+        "@types/webidl-conversions": "*"
+      }
+    },
     "node_modules/@typescript-eslint/parser": {
       "version": "6.21.0",
       "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
@@ -1692,6 +1751,14 @@
         "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
       }
     },
+    "node_modules/bson": {
+      "version": "6.6.0",
+      "resolved": "https://registry.npmjs.org/bson/-/bson-6.6.0.tgz",
+      "integrity": "sha512-BVINv2SgcMjL4oYbBuCQTpE3/VKOSxrOA8Cj/wQP7izSzlBGVomdm+TcUd0Pzy0ytLSSDweCKQ6X3f5veM5LQA==",
+      "engines": {
+        "node": ">=16.20.1"
+      }
+    },
     "node_modules/busboy": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
@@ -1840,6 +1907,19 @@
         "node": ">=6"
       }
     },
+    "node_modules/cmdk": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz",
+      "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==",
+      "dependencies": {
+        "@radix-ui/react-dialog": "1.0.5",
+        "@radix-ui/react-primitive": "1.0.3"
+      },
+      "peerDependencies": {
+        "react": "^18.0.0",
+        "react-dom": "^18.0.0"
+      }
+    },
     "node_modules/color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -1970,7 +2050,6 @@
       "version": "4.3.4",
       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
       "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dev": true,
       "dependencies": {
         "ms": "2.1.2"
       },
@@ -3700,6 +3779,14 @@
         "node": ">=4.0"
       }
     },
+    "node_modules/kareem": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.0.tgz",
+      "integrity": "sha512-B9wwgyKKKZkxYZXQzefvb/Ykh9eHixxR+ttTP2c/Pq8NvHi1iYIAImf3nj/DXkPcnenjGEffhPWXnCFRIbNAhw==",
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
     "node_modules/keyv": {
       "version": "4.5.4",
       "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -3801,6 +3888,11 @@
         "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/memory-pager": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+      "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
+    },
     "node_modules/merge2": {
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -3850,11 +3942,109 @@
         "node": ">=16 || 14 >=14.17"
       }
     },
+    "node_modules/mongodb": {
+      "version": "6.5.0",
+      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.5.0.tgz",
+      "integrity": "sha512-Fozq68InT+JKABGLqctgtb8P56pRrJFkbhW0ux+x1mdHeyinor8oNzJqwLjV/t5X5nJGfTlluxfyMnOXNggIUA==",
+      "dependencies": {
+        "@mongodb-js/saslprep": "^1.1.5",
+        "bson": "^6.4.0",
+        "mongodb-connection-string-url": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=16.20.1"
+      },
+      "peerDependencies": {
+        "@aws-sdk/credential-providers": "^3.188.0",
+        "@mongodb-js/zstd": "^1.1.0",
+        "gcp-metadata": "^5.2.0",
+        "kerberos": "^2.0.1",
+        "mongodb-client-encryption": ">=6.0.0 <7",
+        "snappy": "^7.2.2",
+        "socks": "^2.7.1"
+      },
+      "peerDependenciesMeta": {
+        "@aws-sdk/credential-providers": {
+          "optional": true
+        },
+        "@mongodb-js/zstd": {
+          "optional": true
+        },
+        "gcp-metadata": {
+          "optional": true
+        },
+        "kerberos": {
+          "optional": true
+        },
+        "mongodb-client-encryption": {
+          "optional": true
+        },
+        "snappy": {
+          "optional": true
+        },
+        "socks": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/mongodb-connection-string-url": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz",
+      "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==",
+      "dependencies": {
+        "@types/whatwg-url": "^11.0.2",
+        "whatwg-url": "^13.0.0"
+      }
+    },
+    "node_modules/mongoose": {
+      "version": "8.3.0",
+      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.3.0.tgz",
+      "integrity": "sha512-Y5QNnuA38CEin8hnA+q//nUVztIi4Xklu9xlmbkd1KdWHnIlemSwf5IL/evcI+e2zplL4g5Y6PMkO+nPSAnIdA==",
+      "dependencies": {
+        "bson": "^6.5.0",
+        "kareem": "2.6.0",
+        "mongodb": "6.5.0",
+        "mpath": "0.9.0",
+        "mquery": "5.0.0",
+        "ms": "2.1.3",
+        "sift": "16.0.1"
+      },
+      "engines": {
+        "node": ">=16.20.1"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/mongoose"
+      }
+    },
+    "node_modules/mongoose/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
+    "node_modules/mpath": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
+      "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
+    "node_modules/mquery": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
+      "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
+      "dependencies": {
+        "debug": "4.x"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
     "node_modules/ms": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-      "dev": true
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     "node_modules/mz": {
       "version": "2.7.0",
@@ -4445,7 +4635,6 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
       "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
-      "dev": true,
       "engines": {
         "node": ">=6"
       }
@@ -4880,6 +5069,11 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/sift": {
+      "version": "16.0.1",
+      "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz",
+      "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ=="
+    },
     "node_modules/signal-exit": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
@@ -4908,6 +5102,14 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/sparse-bitfield": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+      "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+      "dependencies": {
+        "memory-pager": "^1.0.2"
+      }
+    },
     "node_modules/streamsearch": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
@@ -5262,6 +5464,17 @@
         "node": ">=8.0"
       }
     },
+    "node_modules/tr46": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
+      "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
+      "dependencies": {
+        "punycode": "^2.3.0"
+      },
+      "engines": {
+        "node": ">=14"
+      }
+    },
     "node_modules/ts-api-utils": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
@@ -5512,6 +5725,26 @@
       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
     },
+    "node_modules/webidl-conversions": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+      "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/whatwg-url": {
+      "version": "13.0.0",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
+      "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
+      "dependencies": {
+        "tr46": "^4.1.1",
+        "webidl-conversions": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
     "node_modules/which": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/my-app/package.json b/my-app/package.json
index b25ecf3..b6d1947 100644
--- a/my-app/package.json
+++ b/my-app/package.json
@@ -14,8 +14,10 @@
     "@radix-ui/react-slot": "^1.0.2",
     "class-variance-authority": "^0.7.0",
     "clsx": "^2.1.0",
+    "cmdk": "^1.0.0",
     "date-fns": "^3.6.0",
     "lucide-react": "^0.364.0",
+    "mongoose": "^8.3.0",
     "next": "14.1.4",
     "react": "^18",
     "react-day-picker": "^8.10.0",
@@ -24,14 +26,14 @@
     "tailwindcss-animate": "^1.0.7"
   },
   "devDependencies": {
-    "@types/node": "^20",
-    "@types/react": "^18",
+    "@types/node": "20.12.2",
+    "@types/react": "18.2.73",
     "@types/react-dom": "^18",
     "autoprefixer": "^10.0.1",
     "eslint": "^8",
     "eslint-config-next": "14.1.4",
     "postcss": "^8",
     "tailwindcss": "^3.3.0",
-    "typescript": "^5"
+    "typescript": "5.4.3"
   }
 }
-- 
GitLab