diff --git a/api/package-lock.json b/api/package-lock.json index 142006d..36aedd2 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -15,12 +15,14 @@ "express": "^5.1.0", "express-session": "^1.18.2", "mariadb": "^3.4.5", + "morgan": "^1.10.1", "mysql2": "^3.14.3", "passport": "^0.7.0", "passport-openidconnect": "^0.1.2" }, "devDependencies": { "@types/express": "^5.0.3", + "@types/morgan": "^1.9.10", "@types/node": "^24.8.1", "typescript": "^5.9.3" } @@ -134,6 +136,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/morgan": { + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.10.tgz", + "integrity": "sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "24.8.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.8.1.tgz", @@ -318,6 +330,24 @@ ], "license": "MIT" }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -1596,6 +1626,49 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "license": "MIT" }, + "node_modules/morgan": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", + "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", diff --git a/api/package.json b/api/package.json index 9d8ba4e..19d5e14 100644 --- a/api/package.json +++ b/api/package.json @@ -8,7 +8,7 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "tsc && node ./built/index.js" + "dev": "tsc && node ./built/api/src/index.js" }, "dependencies": { "connect-sqlite3": "^0.9.16", @@ -17,12 +17,14 @@ "express": "^5.1.0", "express-session": "^1.18.2", "mariadb": "^3.4.5", + "morgan": "^1.10.1", "mysql2": "^3.14.3", "passport": "^0.7.0", "passport-openidconnect": "^0.1.2" }, "devDependencies": { "@types/express": "^5.0.3", + "@types/morgan": "^1.9.10", "@types/node": "^24.8.1", "typescript": "^5.9.3" } diff --git a/api/src/index.js b/api/src/index.js index 7382c34..cb7629c 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -3,8 +3,9 @@ dotenv.config(); const express = require('express') const cors = require('cors') - +const morgan = require('morgan') const app = express() +app.use(morgan('dev')) app.use(cors({ origin: ['https://aj17thdev.nexuszone.net', 'http://localhost:5173'], // your SPA origins @@ -43,7 +44,8 @@ const members = require('./routes/members'); const loaHandler = require('./routes/loa') const { status, memberStatus } = require('./routes/statuses') const authRouter = require('./routes/auth') -const { roles, memberRoles } = require('./routes/roles') +const { roles, memberRoles } = require('./routes/roles'); +const morgan = require('morgan'); app.use('/application', applicationsRouter); app.use('/ranks', ranks);