From 0a21788a12664bfe51a188f9a3aa04163c54b473 Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Fri, 24 Jul 2026 19:17:05 +0300 Subject: [PATCH] Run server with tsx; stop tracking dist - Replace ts-node with tsx for the start and seed scripts so the server runs without a separate compile step. - Stop tracking server/dist (tsc build output committed by mistake) and add server/.gitignore to exclude it, matching the client. Note: the server stays on TypeScript 5.x because the ESLint tooling (@typescript-eslint) does not yet support TypeScript 7; this is independent of the Angular 22 client, which uses TypeScript 7. --- server/.gitignore | 1 + server/dist/database.js | 89 ------------------ server/dist/employee.js | 2 - server/dist/employee.routes.js | 129 -------------------------- server/dist/server.js | 56 ----------- server/package-lock.json | 164 +-------------------------------- server/package.json | 5 +- 7 files changed, 7 insertions(+), 439 deletions(-) create mode 100644 server/.gitignore delete mode 100644 server/dist/database.js delete mode 100644 server/dist/employee.js delete mode 100644 server/dist/employee.routes.js delete mode 100644 server/dist/server.js diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..9b1c8b1 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1 @@ +/dist diff --git a/server/dist/database.js b/server/dist/database.js deleted file mode 100644 index 57958b5..0000000 --- a/server/dist/database.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.connectToDatabase = exports.collections = void 0; -const mongodb = __importStar(require("mongodb")); -exports.collections = {}; -function connectToDatabase(uri) { - return __awaiter(this, void 0, void 0, function* () { - const client = new mongodb.MongoClient(uri, { - appName: "devrel-github-javascript-mean", - }); - yield client.connect(); - const db = client.db("meanStackExample"); - yield applySchemaValidation(db); - const employeesCollection = db.collection("employees"); - exports.collections.employees = employeesCollection; - }); -} -exports.connectToDatabase = connectToDatabase; -// Update our existing collection with JSON schema validation so we know our documents will always match the shape of our Employee model, even if added elsewhere. -// For more information about schema validation, see this blog series: https://www.mongodb.com/blog/post/json-schema-validation--locking-down-your-model-the-smart-way -function applySchemaValidation(db) { - return __awaiter(this, void 0, void 0, function* () { - const jsonSchema = { - $jsonSchema: { - bsonType: "object", - required: ["name", "position", "level"], - additionalProperties: false, - properties: { - _id: {}, - name: { - bsonType: "string", - description: "'name' is required and is a string", - }, - position: { - bsonType: "string", - description: "'position' is required and is a string", - minLength: 5 - }, - level: { - bsonType: "string", - description: "'level' is required and is one of 'junior', 'mid', or 'senior'", - enum: ["junior", "mid", "senior"], - }, - }, - }, - }; - // Try applying the modification to the collection, if the collection doesn't exist, create it - yield db.command({ - collMod: "employees", - validator: jsonSchema - }).catch((error) => __awaiter(this, void 0, void 0, function* () { - if (error.codeName === "NamespaceNotFound") { - yield db.createCollection("employees", { validator: jsonSchema }); - } - })); - }); -} diff --git a/server/dist/employee.js b/server/dist/employee.js deleted file mode 100644 index c8ad2e5..0000000 --- a/server/dist/employee.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/server/dist/employee.routes.js b/server/dist/employee.routes.js deleted file mode 100644 index 110aa99..0000000 --- a/server/dist/employee.routes.js +++ /dev/null @@ -1,129 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.employeeRouter = void 0; -const express = __importStar(require("express")); -const mongodb_1 = require("mongodb"); -const database_1 = require("./database"); -exports.employeeRouter = express.Router(); -exports.employeeRouter.use(express.json()); -exports.employeeRouter.get("/", (_req, res) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - try { - const employees = yield ((_a = database_1.collections === null || database_1.collections === void 0 ? void 0 : database_1.collections.employees) === null || _a === void 0 ? void 0 : _a.find({}).toArray()); - res.status(200).send(employees); - } - catch (error) { - res.status(500).send(error instanceof Error ? error.message : "Unknown error"); - } -})); -exports.employeeRouter.get("/:id", (req, res) => __awaiter(void 0, void 0, void 0, function* () { - var _b, _c, _d; - try { - const id = (_b = req === null || req === void 0 ? void 0 : req.params) === null || _b === void 0 ? void 0 : _b.id; - const query = { _id: new mongodb_1.ObjectId(id) }; - const employee = yield ((_c = database_1.collections === null || database_1.collections === void 0 ? void 0 : database_1.collections.employees) === null || _c === void 0 ? void 0 : _c.findOne(query)); - if (employee) { - res.status(200).send(employee); - } - else { - res.status(404).send(`Failed to find an employee: ID ${id}`); - } - } - catch (error) { - res.status(404).send(`Failed to find an employee: ID ${(_d = req === null || req === void 0 ? void 0 : req.params) === null || _d === void 0 ? void 0 : _d.id}`); - } -})); -exports.employeeRouter.post("/", (req, res) => __awaiter(void 0, void 0, void 0, function* () { - var _e; - try { - const employee = req.body; - const result = yield ((_e = database_1.collections === null || database_1.collections === void 0 ? void 0 : database_1.collections.employees) === null || _e === void 0 ? void 0 : _e.insertOne(employee)); - if (result === null || result === void 0 ? void 0 : result.acknowledged) { - res.status(201).send(`Created a new employee: ID ${result.insertedId}.`); - } - else { - res.status(500).send("Failed to create a new employee."); - } - } - catch (error) { - console.error(error); - res.status(400).send(error instanceof Error ? error.message : "Unknown error"); - } -})); -exports.employeeRouter.put("/:id", (req, res) => __awaiter(void 0, void 0, void 0, function* () { - var _f, _g; - try { - const id = (_f = req === null || req === void 0 ? void 0 : req.params) === null || _f === void 0 ? void 0 : _f.id; - const employee = req.body; - const query = { _id: new mongodb_1.ObjectId(id) }; - const result = yield ((_g = database_1.collections === null || database_1.collections === void 0 ? void 0 : database_1.collections.employees) === null || _g === void 0 ? void 0 : _g.updateOne(query, { $set: employee })); - if (result && result.matchedCount) { - res.status(200).send(`Updated an employee: ID ${id}.`); - } - else if (!(result === null || result === void 0 ? void 0 : result.matchedCount)) { - res.status(404).send(`Failed to find an employee: ID ${id}`); - } - else { - res.status(304).send(`Failed to update an employee: ID ${id}`); - } - } - catch (error) { - const message = error instanceof Error ? error.message : "Unknown error"; - console.error(message); - res.status(400).send(message); - } -})); -exports.employeeRouter.delete("/:id", (req, res) => __awaiter(void 0, void 0, void 0, function* () { - var _h, _j; - try { - const id = (_h = req === null || req === void 0 ? void 0 : req.params) === null || _h === void 0 ? void 0 : _h.id; - const query = { _id: new mongodb_1.ObjectId(id) }; - const result = yield ((_j = database_1.collections === null || database_1.collections === void 0 ? void 0 : database_1.collections.employees) === null || _j === void 0 ? void 0 : _j.deleteOne(query)); - if (result && result.deletedCount) { - res.status(202).send(`Removed an employee: ID ${id}`); - } - else if (!result) { - res.status(400).send(`Failed to remove an employee: ID ${id}`); - } - else if (!result.deletedCount) { - res.status(404).send(`Failed to find an employee: ID ${id}`); - } - } - catch (error) { - const message = error instanceof Error ? error.message : "Unknown error"; - console.error(message); - res.status(400).send(message); - } -})); diff --git a/server/dist/server.js b/server/dist/server.js deleted file mode 100644 index c9400d6..0000000 --- a/server/dist/server.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var _a; -Object.defineProperty(exports, "__esModule", { value: true }); -const dotenv = __importStar(require("dotenv")); -const express_1 = __importDefault(require("express")); -const cors_1 = __importDefault(require("cors")); -const database_1 = require("./database"); -const employee_routes_1 = require("./employee.routes"); -// Load environment variables from the .env file, where the DATABASE_URI is configured -dotenv.config(); -const { DATABASE_URI } = process.env; -const PORT = Number.parseInt((_a = process.env.PORT) !== null && _a !== void 0 ? _a : "5300", 10); -if (!DATABASE_URI) { - console.error("No DATABASE_URI environment variable has been defined in config.env"); - process.exit(1); -} -(0, database_1.connectToDatabase)(DATABASE_URI) - .then(() => { - const app = (0, express_1.default)(); - app.use((0, cors_1.default)()); - app.get("/healthcheck", (_req, res) => { - res.status(200).json({ status: "ok" }); - }); - app.use("/employees", employee_routes_1.employeeRouter); - // start the Express server - app.listen(PORT, () => { - console.log(`Server running at http://localhost:${PORT}...`); - }); -}) - .catch((error) => console.error(error)); diff --git a/server/package-lock.json b/server/package-lock.json index ff0f293..4e68314 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -24,7 +24,6 @@ "eslint": "^8.56.0", "mongodb-memory-server": "^10.1.4", "supertest": "^7.1.1", - "ts-node": "^10.9.2", "tsx": "^4.20.3", "typescript": "^5.3.3" } @@ -38,18 +37,6 @@ "node": ">=0.10.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.28.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", @@ -581,31 +568,6 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@mongodb-js/saslprep": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.11.tgz", @@ -673,30 +635,6 @@ "@noble/hashes": "^1.1.5" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -1114,15 +1052,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -1174,12 +1103,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1610,12 +1533,6 @@ "node": ">= 0.10" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1695,16 +1612,6 @@ "wrappy": "1" } }, - "node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2804,12 +2711,6 @@ "semver": "bin/semver.js" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3855,49 +3756,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -3962,10 +3820,11 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4006,12 +3865,6 @@ "node": ">= 0.4.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -4077,15 +3930,6 @@ "node": ">=12" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/server/package.json b/server/package.json index 4dc6559..705c3fb 100644 --- a/server/package.json +++ b/server/package.json @@ -3,11 +3,11 @@ "version": "1.0.0", "main": "src/server.ts", "scripts": { - "start": "ts-node src/server.ts", + "start": "tsx src/server.ts", "build": "tsc", "test": "eslint src scripts", "test:integration": "tsx --test tests/api.integration.test.ts", - "seed": "ts-node scripts/seed.ts" + "seed": "tsx scripts/seed.ts" }, "author": "Stanimira Vlaeva", "license": "Apache 2.0", @@ -27,7 +27,6 @@ "eslint": "^8.56.0", "mongodb-memory-server": "^10.1.4", "supertest": "^7.1.1", - "ts-node": "^10.9.2", "tsx": "^4.20.3", "typescript": "^5.3.3" }