From 143089d880090ff2832f379098a75317585c736b Mon Sep 17 00:00:00 2001 From: Devoploy Bot Date: Fri, 6 Mar 2026 02:23:19 +0530 Subject: [PATCH] chore: automated deployment fixes --- .devoploy/rollback.patch.json | 17 ++++++++++++++ index.js | 43 ++++++++++++++++------------------- package-lock.json | 2 ++ package.json | 3 ++- vercel.json | 15 ++++++++++++ 5 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 .devoploy/rollback.patch.json create mode 100644 vercel.json diff --git a/.devoploy/rollback.patch.json b/.devoploy/rollback.patch.json new file mode 100644 index 0000000000..46d2c9c9a2 --- /dev/null +++ b/.devoploy/rollback.patch.json @@ -0,0 +1,17 @@ +{ + "createdAt": "2026-03-05T20:53:06.124Z", + "entries": [ + { + "filePath": "package.json", + "originalContent": "{\r\n \"name\": \"nodejs-getting-started\",\r\n \"private\": true,\r\n \"description\": \"A sample Node.js app using Express\",\r\n \"engines\": {\r\n \"node\": \"20.x || 22.x || 24.x\"\r\n },\r\n \"main\": \"index.js\",\r\n \"scripts\": {\r\n \"start\": \"node index.js\",\r\n \"test\": \"jest\"\r\n },\r\n \"dependencies\": {\r\n \"ejs\": \"^4.0.1\",\r\n \"express\": \"^5.2.1\"\r\n },\r\n \"devDependencies\": {\r\n \"jest\": \"^30.2.0\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/heroku/nodejs-getting-started\"\r\n },\r\n \"keywords\": [\r\n \"node\",\r\n \"heroku\",\r\n \"express\"\r\n ],\r\n \"license\": \"MIT\"\r\n}\r\n" + }, + { + "filePath": "index.js", + "originalContent": "const express = require('express')\r\nconst path = require('path')\r\n\r\nconst port = process.env.PORT || 5006\r\n\r\nconst app = express()\r\n\r\napp.use(express.static(path.join(__dirname, 'public')))\r\napp.set('views', path.join(__dirname, 'views'))\r\napp.set('view engine', 'ejs')\r\n\r\napp.get('/', (req, res) => {\r\n console.log(`Rendering 'pages/index' for route '/'`)\r\n res.render('pages/index')\r\n})\r\n\r\nconst server = app.listen(port, () => {\r\n console.log(`Listening on ${port}`)\r\n})\r\n\r\n// The number of seconds an idle Keep-Alive connection is kept open. This should be greater than the Heroku Router's\r\n// Keep-Alive idle timeout of 90 seconds:\r\n// - to ensure that the closing of idle connections is always initiated by the router and not the Node.js server\r\n// - to prevent a race condition if the router sends a request to the app just as Node.js is closing the connection\r\n// https://devcenter.heroku.com/articles/http-routing#keepalives\r\n// https://nodejs.org/api/http.html#serverkeepalivetimeout\r\nserver.keepAliveTimeout = 95 * 1000\r\n\r\nprocess.on('SIGTERM', async () => {\r\n console.log('SIGTERM signal received: gracefully shutting down')\r\n if (server) {\r\n server.close(() => {\r\n console.log('HTTP server closed')\r\n })\r\n }\r\n})\r\n" + }, + { + "filePath": "vercel.json", + "originalContent": "" + } + ] +} \ No newline at end of file diff --git a/index.js b/index.js index 19d020f11f..fe084c5bf7 100644 --- a/index.js +++ b/index.js @@ -1,22 +1,18 @@ -const express = require('express') -const path = require('path') - -const port = process.env.PORT || 5006 - -const app = express() - -app.use(express.static(path.join(__dirname, 'public'))) -app.set('views', path.join(__dirname, 'views')) -app.set('view engine', 'ejs') - +const PORT = Number(process.env.PORT ?? 3000); +const express = require('express'); +const path = require('path'); +const port = process.env.PORT || 5006; +const app = express(); +app.use(express.static(path.join(__dirname, 'public'))); +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'ejs'); app.get('/', (req, res) => { - console.log(`Rendering 'pages/index' for route '/'`) - res.render('pages/index') -}) - -const server = app.listen(port, () => { - console.log(`Listening on ${port}`) -}) + console.log(`Rendering 'pages/index' for route '/'`); + res.render('pages/index'); +}); +const server = app.listen(PORT, () => { + console.log(`Listening on ${port}`); +}); // The number of seconds an idle Keep-Alive connection is kept open. This should be greater than the Heroku Router's // Keep-Alive idle timeout of 90 seconds: @@ -24,13 +20,12 @@ const server = app.listen(port, () => { // - to prevent a race condition if the router sends a request to the app just as Node.js is closing the connection // https://devcenter.heroku.com/articles/http-routing#keepalives // https://nodejs.org/api/http.html#serverkeepalivetimeout -server.keepAliveTimeout = 95 * 1000 - +server.keepAliveTimeout = 95 * 1000; process.on('SIGTERM', async () => { - console.log('SIGTERM signal received: gracefully shutting down') + console.log('SIGTERM signal received: gracefully shutting down'); if (server) { server.close(() => { - console.log('HTTP server closed') - }) + console.log('HTTP server closed'); + }); } -}) +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e099047cfd..8935689524 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,6 +49,7 @@ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -1711,6 +1712,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", diff --git a/package.json b/package.json index 55ba5ccb77..b4a8179aeb 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "main": "index.js", "scripts": { "start": "node index.js", - "test": "jest" + "test": "jest", + "build": "npm run start" }, "dependencies": { "ejs": "^4.0.1", diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000000..964973f6f8 --- /dev/null +++ b/vercel.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "builds": [ + { + "src": "index.js", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "/index.js" + } + ] +}