From c39e98bab696b3316454c2424da05d8d887d7d75 Mon Sep 17 00:00:00 2001 From: mvidoc Date: Fri, 12 Dec 2025 14:42:40 +0100 Subject: [PATCH 1/5] xd --- cookie-sessions/index.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cookie-sessions/index.js diff --git a/cookie-sessions/index.js b/cookie-sessions/index.js new file mode 100644 index 0000000..83b6fae --- /dev/null +++ b/cookie-sessions/index.js @@ -0,0 +1,25 @@ +'use strict' + +/** + * Module dependencies. + */ + +var cookieSession = require('cookie-session'); +var express = require('../../'); + +var app = module.exports = express(); + +// add req.session cookie support +app.use(cookieSession({ secret: 'manny is cool' })); + +// do something with the session +app.get('/', function (req, res) { + req.session.count = (req.session.count || 0) + 1 + res.send('viewed ' + req.session.count + ' times\n') +}) + +/* istanbul ignore next */ +if (!module.parent) { + app.listen(3000); + console.log('Express started on port 3000'); +} From 809072f5409fcbb5f4cecf8182552a818169e2ec Mon Sep 17 00:00:00 2001 From: mvidoc Date: Fri, 12 Dec 2025 14:44:41 +0100 Subject: [PATCH 2/5] xd --- cookie-sessions/index.js | 25 --------- markdown/index.js | 44 ++++++++++++++++ markdown/vidoc.log | 109 +++++++++++++++++++++++++++++++++++++++ markdown/views/index.md | 4 ++ 4 files changed, 157 insertions(+), 25 deletions(-) delete mode 100644 cookie-sessions/index.js create mode 100644 markdown/index.js create mode 100644 markdown/vidoc.log create mode 100644 markdown/views/index.md diff --git a/cookie-sessions/index.js b/cookie-sessions/index.js deleted file mode 100644 index 83b6fae..0000000 --- a/cookie-sessions/index.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict' - -/** - * Module dependencies. - */ - -var cookieSession = require('cookie-session'); -var express = require('../../'); - -var app = module.exports = express(); - -// add req.session cookie support -app.use(cookieSession({ secret: 'manny is cool' })); - -// do something with the session -app.get('/', function (req, res) { - req.session.count = (req.session.count || 0) + 1 - res.send('viewed ' + req.session.count + ' times\n') -}) - -/* istanbul ignore next */ -if (!module.parent) { - app.listen(3000); - console.log('Express started on port 3000'); -} diff --git a/markdown/index.js b/markdown/index.js new file mode 100644 index 0000000..53e40ac --- /dev/null +++ b/markdown/index.js @@ -0,0 +1,44 @@ +'use strict' + +/** + * Module dependencies. + */ + +var escapeHtml = require('escape-html'); +var express = require('../..'); +var fs = require('node:fs'); +var marked = require('marked'); +var path = require('node:path'); + +var app = module.exports = express(); + +// register .md as an engine in express view system + +app.engine('md', function(path, options, fn){ + fs.readFile(path, 'utf8', function(err, str){ + if (err) return fn(err); + var html = marked.parse(str).replace(/\{([^}]+)\}/g, function(_, name){ + return escapeHtml(options[name] || ''); + }); + fn(null, html); + }); +}); + +app.set('views', path.join(__dirname, 'views')); + +// make it the default, so we don't need .md +app.set('view engine', 'md'); + +app.get('/', function(req, res){ + res.render('index', { title: 'Markdown Example' }); +}); + +app.get('/fail', function(req, res){ + res.render('missing', { title: 'Markdown Example' }); +}); + +/* istanbul ignore next */ +if (!module.parent) { + app.listen(3000); + console.log('Express started on port 3000'); +} diff --git a/markdown/vidoc.log b/markdown/vidoc.log new file mode 100644 index 0000000..8985dc7 --- /dev/null +++ b/markdown/vidoc.log @@ -0,0 +1,109 @@ +{"error":{"cmd":"cd /Users/xnerhu/projects/vidoc/express-master/examples/markdown && git config --get remote.origin.url","code":1,"killed":false,"signal":null,"stderr":"","stdout":""},"level":"error","message":"Error getting repository info:","timestamp":"2025-12-04T11:06:47.794Z"} +{"level":"debug","message":"Scanning directory /Users/xnerhu/projects/vidoc/express-master/examples/markdown, rootDir: /Users/xnerhu/projects/vidoc/express-master/examples/markdown","timestamp":"2025-12-04T11:06:47.797Z"} +{"level":"debug","message":"Making POST request to /v1/codebase","timestamp":"2025-12-04T11:06:47.798Z"} +{"level":"debug","message":"Codebase created: 019ae90b-1117-715a-b7f1-765ae50dad65, branch: main, name: markdown","timestamp":"2025-12-04T11:06:48.086Z"} +{"error":"Command failed: cd /Users/xnerhu/projects/vidoc/express-master/examples/markdown && git ls-tree -r HEAD --full-tree\nfatal: not a git repository (or any of the parent directories): .git","level":"debug","message":"Error getting repository files:","timestamp":"2025-12-04T11:06:48.138Z"} +{"level":"debug","message":"No language found for file: views/index.md","timestamp":"2025-12-04T11:06:48.196Z"} +{"level":"debug","message":"Making POST request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/sync","timestamp":"2025-12-04T11:06:48.196Z"} +{"level":"debug","message":"syncCodebaseResponse: [\n \"index.js\"\n]","timestamp":"2025-12-04T11:06:48.630Z"} +{"level":"debug","message":"filesToPreprocess: {\n \"forceReindex\": false,\n \"filesToPreprocess\": [\n {\n \"path\": \"index.js\",\n \"version\": \"71e00661f10b5a60a7b6e80a431d2e6a8715b7945061e6637d81400fbd410163\",\n \"language\": \"javascript\"\n }\n ]\n}","timestamp":"2025-12-04T11:06:48.630Z"} +{"level":"debug","message":"Making GET request to /indexing-config","timestamp":"2025-12-04T11:06:48.648Z"} +{"followRedirects":true,"level":"debug","message":"Making POST request to /index-file","timestamp":"2025-12-04T11:06:48.653Z"} +{"level":"debug","message":"Preprocessing took 4.40s","timestamp":"2025-12-04T11:06:53.030Z"} +{"level":"debug","message":"Making POST request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/sync","timestamp":"2025-12-04T11:06:53.031Z"} +{"level":"debug","message":"filesToReindex2: 0, files: 1","timestamp":"2025-12-04T11:06:53.426Z"} +{"level":"debug","message":"syncCodebaseResponse2: []","timestamp":"2025-12-04T11:06:53.426Z"} +{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:53.426Z"} +{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:53.543Z"} +{"level":"debug","message":"Making POST request to /v1/scan-workflows/start","timestamp":"2025-12-04T11:06:53.652Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:06:54.269Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:54.349Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:06:54.349Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:06:57.755Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:57.855Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:06:57.855Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:01.287Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:01.382Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:01.383Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:04.777Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:04.874Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:04.874Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:08.275Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:08.370Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:08.371Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:11.761Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:11.854Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:11.855Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:15.262Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:15.365Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:15.366Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:18.785Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:18.866Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:18.867Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:22.269Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:22.366Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:22.366Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:25.753Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:25.849Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:25.850Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:29.232Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:29.320Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:29.321Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:32.715Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:32.820Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:32.821Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:36.220Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:36.316Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:36.317Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:39.728Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:39.831Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:39.832Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:43.224Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:43.318Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:43.319Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:46.714Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:46.800Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:46.801Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:50.202Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:50.298Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:50.299Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:53.687Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:53.781Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:53.782Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:57.189Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:57.307Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:57.307Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:00.700Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:00.799Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:00.800Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:04.198Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:04.303Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:04.303Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:07.716Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:07.812Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:07.814Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:11.231Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:11.325Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:11.325Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:14.723Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:14.829Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:14.831Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:18.231Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:18.328Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:18.329Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:21.737Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:21.840Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:21.841Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:25.240Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:25.332Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:25.333Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:28.736Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:28.828Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:28.829Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:32.228Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:32.314Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:32.314Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:35.708Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:35.826Z"} +{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:35.828Z"} +{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:36.221Z"} diff --git a/markdown/views/index.md b/markdown/views/index.md new file mode 100644 index 0000000..b0b2e71 --- /dev/null +++ b/markdown/views/index.md @@ -0,0 +1,4 @@ + +# {title} + +Just an example view rendered with _markdown_. \ No newline at end of file From 68410ff4cf511bc976cd7d10961338edbda10216 Mon Sep 17 00:00:00 2001 From: mvidoc Date: Fri, 12 Dec 2025 14:48:00 +0100 Subject: [PATCH 3/5] xd --- markdown/index.js | 44 ----------- markdown/vidoc.log | 109 ---------------------------- markdown/views/index.md | 4 - mvc/controllers/main/index.js | 5 ++ mvc/controllers/pet/index.js | 31 ++++++++ mvc/controllers/pet/views/edit.ejs | 17 +++++ mvc/controllers/pet/views/show.ejs | 15 ++++ mvc/controllers/user-pet/index.js | 22 ++++++ mvc/controllers/user/index.js | 41 +++++++++++ mvc/controllers/user/views/edit.hbs | 27 +++++++ mvc/controllers/user/views/list.hbs | 18 +++++ mvc/controllers/user/views/show.hbs | 31 ++++++++ mvc/db.js | 16 ++++ mvc/index.js | 95 ++++++++++++++++++++++++ mvc/lib/boot.js | 83 +++++++++++++++++++++ mvc/public/style.css | 14 ++++ mvc/views/404.ejs | 13 ++++ mvc/views/5xx.ejs | 13 ++++ 18 files changed, 441 insertions(+), 157 deletions(-) delete mode 100644 markdown/index.js delete mode 100644 markdown/vidoc.log delete mode 100644 markdown/views/index.md create mode 100644 mvc/controllers/main/index.js create mode 100644 mvc/controllers/pet/index.js create mode 100644 mvc/controllers/pet/views/edit.ejs create mode 100644 mvc/controllers/pet/views/show.ejs create mode 100644 mvc/controllers/user-pet/index.js create mode 100644 mvc/controllers/user/index.js create mode 100644 mvc/controllers/user/views/edit.hbs create mode 100644 mvc/controllers/user/views/list.hbs create mode 100644 mvc/controllers/user/views/show.hbs create mode 100644 mvc/db.js create mode 100644 mvc/index.js create mode 100644 mvc/lib/boot.js create mode 100644 mvc/public/style.css create mode 100644 mvc/views/404.ejs create mode 100644 mvc/views/5xx.ejs diff --git a/markdown/index.js b/markdown/index.js deleted file mode 100644 index 53e40ac..0000000 --- a/markdown/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' - -/** - * Module dependencies. - */ - -var escapeHtml = require('escape-html'); -var express = require('../..'); -var fs = require('node:fs'); -var marked = require('marked'); -var path = require('node:path'); - -var app = module.exports = express(); - -// register .md as an engine in express view system - -app.engine('md', function(path, options, fn){ - fs.readFile(path, 'utf8', function(err, str){ - if (err) return fn(err); - var html = marked.parse(str).replace(/\{([^}]+)\}/g, function(_, name){ - return escapeHtml(options[name] || ''); - }); - fn(null, html); - }); -}); - -app.set('views', path.join(__dirname, 'views')); - -// make it the default, so we don't need .md -app.set('view engine', 'md'); - -app.get('/', function(req, res){ - res.render('index', { title: 'Markdown Example' }); -}); - -app.get('/fail', function(req, res){ - res.render('missing', { title: 'Markdown Example' }); -}); - -/* istanbul ignore next */ -if (!module.parent) { - app.listen(3000); - console.log('Express started on port 3000'); -} diff --git a/markdown/vidoc.log b/markdown/vidoc.log deleted file mode 100644 index 8985dc7..0000000 --- a/markdown/vidoc.log +++ /dev/null @@ -1,109 +0,0 @@ -{"error":{"cmd":"cd /Users/xnerhu/projects/vidoc/express-master/examples/markdown && git config --get remote.origin.url","code":1,"killed":false,"signal":null,"stderr":"","stdout":""},"level":"error","message":"Error getting repository info:","timestamp":"2025-12-04T11:06:47.794Z"} -{"level":"debug","message":"Scanning directory /Users/xnerhu/projects/vidoc/express-master/examples/markdown, rootDir: /Users/xnerhu/projects/vidoc/express-master/examples/markdown","timestamp":"2025-12-04T11:06:47.797Z"} -{"level":"debug","message":"Making POST request to /v1/codebase","timestamp":"2025-12-04T11:06:47.798Z"} -{"level":"debug","message":"Codebase created: 019ae90b-1117-715a-b7f1-765ae50dad65, branch: main, name: markdown","timestamp":"2025-12-04T11:06:48.086Z"} -{"error":"Command failed: cd /Users/xnerhu/projects/vidoc/express-master/examples/markdown && git ls-tree -r HEAD --full-tree\nfatal: not a git repository (or any of the parent directories): .git","level":"debug","message":"Error getting repository files:","timestamp":"2025-12-04T11:06:48.138Z"} -{"level":"debug","message":"No language found for file: views/index.md","timestamp":"2025-12-04T11:06:48.196Z"} -{"level":"debug","message":"Making POST request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/sync","timestamp":"2025-12-04T11:06:48.196Z"} -{"level":"debug","message":"syncCodebaseResponse: [\n \"index.js\"\n]","timestamp":"2025-12-04T11:06:48.630Z"} -{"level":"debug","message":"filesToPreprocess: {\n \"forceReindex\": false,\n \"filesToPreprocess\": [\n {\n \"path\": \"index.js\",\n \"version\": \"71e00661f10b5a60a7b6e80a431d2e6a8715b7945061e6637d81400fbd410163\",\n \"language\": \"javascript\"\n }\n ]\n}","timestamp":"2025-12-04T11:06:48.630Z"} -{"level":"debug","message":"Making GET request to /indexing-config","timestamp":"2025-12-04T11:06:48.648Z"} -{"followRedirects":true,"level":"debug","message":"Making POST request to /index-file","timestamp":"2025-12-04T11:06:48.653Z"} -{"level":"debug","message":"Preprocessing took 4.40s","timestamp":"2025-12-04T11:06:53.030Z"} -{"level":"debug","message":"Making POST request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/sync","timestamp":"2025-12-04T11:06:53.031Z"} -{"level":"debug","message":"filesToReindex2: 0, files: 1","timestamp":"2025-12-04T11:06:53.426Z"} -{"level":"debug","message":"syncCodebaseResponse2: []","timestamp":"2025-12-04T11:06:53.426Z"} -{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:53.426Z"} -{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:53.543Z"} -{"level":"debug","message":"Making POST request to /v1/scan-workflows/start","timestamp":"2025-12-04T11:06:53.652Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:06:54.269Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:54.349Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:06:54.349Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:06:57.755Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:06:57.855Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:06:57.855Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:01.287Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:01.382Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:01.383Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:04.777Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:04.874Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:04.874Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:08.275Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:08.370Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:08.371Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:11.761Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:11.854Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:11.855Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:15.262Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:15.365Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:15.366Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:18.785Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:18.866Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:18.867Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:22.269Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:22.366Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:22.366Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:25.753Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:25.849Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:25.850Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:29.232Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:29.320Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:29.321Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:32.715Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:32.820Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:32.821Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:36.220Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:36.316Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:36.317Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:39.728Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:39.831Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:39.832Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:43.224Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:43.318Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:43.319Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:46.714Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:46.800Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:46.801Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:50.202Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:50.298Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:50.299Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:53.687Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:53.781Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:53.782Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:07:57.189Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:07:57.307Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:07:57.307Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:00.700Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:00.799Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:00.800Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:04.198Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:04.303Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:04.303Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:07.716Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:07.812Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:07.814Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:11.231Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:11.325Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:11.325Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:14.723Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:14.829Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:14.831Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:18.231Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:18.328Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:18.329Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:21.737Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:21.840Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:21.841Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:25.240Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:25.332Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:25.333Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:28.736Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:28.828Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:28.829Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:32.228Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:32.314Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:32.314Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/scan-workflows/019ae90b-291e-73ba-8d7e-674d2fb4f094/status","timestamp":"2025-12-04T11:08:35.708Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/files?branchName=main","timestamp":"2025-12-04T11:08:35.826Z"} -{"abortSignal":{},"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:35.828Z"} -{"level":"debug","message":"Making GET request to /v1/codebase/019ae90b-1117-715a-b7f1-765ae50dad65/issues?branchName=main","timestamp":"2025-12-04T11:08:36.221Z"} diff --git a/markdown/views/index.md b/markdown/views/index.md deleted file mode 100644 index b0b2e71..0000000 --- a/markdown/views/index.md +++ /dev/null @@ -1,4 +0,0 @@ - -# {title} - -Just an example view rendered with _markdown_. \ No newline at end of file diff --git a/mvc/controllers/main/index.js b/mvc/controllers/main/index.js new file mode 100644 index 0000000..74cde19 --- /dev/null +++ b/mvc/controllers/main/index.js @@ -0,0 +1,5 @@ +'use strict' + +exports.index = function(req, res){ + res.redirect('/users'); +}; diff --git a/mvc/controllers/pet/index.js b/mvc/controllers/pet/index.js new file mode 100644 index 0000000..214160f --- /dev/null +++ b/mvc/controllers/pet/index.js @@ -0,0 +1,31 @@ +'use strict' + +/** + * Module dependencies. + */ + +var db = require('../../db'); + +exports.engine = 'ejs'; + +exports.before = function(req, res, next){ + var pet = db.pets[req.params.pet_id]; + if (!pet) return next('route'); + req.pet = pet; + next(); +}; + +exports.show = function(req, res, next){ + res.render('show', { pet: req.pet }); +}; + +exports.edit = function(req, res, next){ + res.render('edit', { pet: req.pet }); +}; + +exports.update = function(req, res, next){ + var body = req.body; + req.pet.name = body.pet.name; + res.message('Information updated!'); + res.redirect('/pet/' + req.pet.id); +}; diff --git a/mvc/controllers/pet/views/edit.ejs b/mvc/controllers/pet/views/edit.ejs new file mode 100644 index 0000000..655666e --- /dev/null +++ b/mvc/controllers/pet/views/edit.ejs @@ -0,0 +1,17 @@ + + + + + + +Edit <%= pet.name %> + + + +

<%= pet.name %>

+
+ + +
+ + diff --git a/mvc/controllers/pet/views/show.ejs b/mvc/controllers/pet/views/show.ejs new file mode 100644 index 0000000..7e1e338 --- /dev/null +++ b/mvc/controllers/pet/views/show.ejs @@ -0,0 +1,15 @@ + + + + + + +<%= pet.name %> + + + +

<%= pet.name %> edit

+ +

You are viewing <%= pet.name %>

+ + diff --git a/mvc/controllers/user-pet/index.js b/mvc/controllers/user-pet/index.js new file mode 100644 index 0000000..42a29ad --- /dev/null +++ b/mvc/controllers/user-pet/index.js @@ -0,0 +1,22 @@ +'use strict' + +/** + * Module dependencies. + */ + +var db = require('../../db'); + +exports.name = 'pet'; +exports.prefix = '/user/:user_id'; + +exports.create = function(req, res, next){ + var id = req.params.user_id; + var user = db.users[id]; + var body = req.body; + if (!user) return next('route'); + var pet = { name: body.pet.name }; + pet.id = db.pets.push(pet) - 1; + user.pets.push(pet); + res.message('Added pet ' + body.pet.name); + res.redirect('/user/' + id); +}; diff --git a/mvc/controllers/user/index.js b/mvc/controllers/user/index.js new file mode 100644 index 0000000..ec3ae4c --- /dev/null +++ b/mvc/controllers/user/index.js @@ -0,0 +1,41 @@ +'use strict' + +/** + * Module dependencies. + */ + +var db = require('../../db'); + +exports.engine = 'hbs'; + +exports.before = function(req, res, next){ + var id = req.params.user_id; + if (!id) return next(); + // pretend to query a database... + process.nextTick(function(){ + req.user = db.users[id]; + // cant find that user + if (!req.user) return next('route'); + // found it, move on to the routes + next(); + }); +}; + +exports.list = function(req, res, next){ + res.render('list', { users: db.users }); +}; + +exports.edit = function(req, res, next){ + res.render('edit', { user: req.user }); +}; + +exports.show = function(req, res, next){ + res.render('show', { user: req.user }); +}; + +exports.update = function(req, res, next){ + var body = req.body; + req.user.name = body.user.name; + res.message('Information updated!'); + res.redirect('/user/' + req.user.id); +}; diff --git a/mvc/controllers/user/views/edit.hbs b/mvc/controllers/user/views/edit.hbs new file mode 100644 index 0000000..2be7ddc --- /dev/null +++ b/mvc/controllers/user/views/edit.hbs @@ -0,0 +1,27 @@ + + + + + + + Edit {{user.name}} + + +

{{user.name}}

+
+ + + +
+ +
+ + + +
+ + diff --git a/mvc/controllers/user/views/list.hbs b/mvc/controllers/user/views/list.hbs new file mode 100644 index 0000000..448c66f --- /dev/null +++ b/mvc/controllers/user/views/list.hbs @@ -0,0 +1,18 @@ + + + + + + + Users + + +

Users

+

Click a user below to view their pets.

+
    + {{#each users}} +
  • {{name}}
  • + {{/each}} +
+ + diff --git a/mvc/controllers/user/views/show.hbs b/mvc/controllers/user/views/show.hbs new file mode 100644 index 0000000..f3fccfe --- /dev/null +++ b/mvc/controllers/user/views/show.hbs @@ -0,0 +1,31 @@ + + + + + + + {{user.name}} + + +

{{user.name}} edit

+ +{{#if hasMessages}} +
    + {{#each messages}} +
  • {{this}}
  • + {{/each}} +
+{{/if}} + +{{#if user.pets.length}} +

View {{user.name}}'s pets:

+
    + {{#each user.pets}} +
  • {{name}}
  • + {{/each}} +
+{{else}} +

No pets!

+{{/if}} + + diff --git a/mvc/db.js b/mvc/db.js new file mode 100644 index 0000000..94d1480 --- /dev/null +++ b/mvc/db.js @@ -0,0 +1,16 @@ +'use strict' + +// faux database + +var pets = exports.pets = []; + +pets.push({ name: 'Tobi', id: 0 }); +pets.push({ name: 'Loki', id: 1 }); +pets.push({ name: 'Jane', id: 2 }); +pets.push({ name: 'Raul', id: 3 }); + +var users = exports.users = []; + +users.push({ name: 'TJ', pets: [pets[0], pets[1], pets[2]], id: 0 }); +users.push({ name: 'Guillermo', pets: [pets[3]], id: 1 }); +users.push({ name: 'Nathan', pets: [], id: 2 }); diff --git a/mvc/index.js b/mvc/index.js new file mode 100644 index 0000000..1d8aa0e --- /dev/null +++ b/mvc/index.js @@ -0,0 +1,95 @@ +'use strict' + +/** + * Module dependencies. + */ + +var express = require('../..'); +var logger = require('morgan'); +var path = require('node:path'); +var session = require('express-session'); +var methodOverride = require('method-override'); + +var app = module.exports = express(); + +// set our default template engine to "ejs" +// which prevents the need for using file extensions +app.set('view engine', 'ejs'); + +// set views for error and 404 pages +app.set('views', path.join(__dirname, 'views')); + +// define a custom res.message() method +// which stores messages in the session +app.response.message = function(msg){ + // reference `req.session` via the `this.req` reference + var sess = this.req.session; + // simply add the msg to an array for later + sess.messages = sess.messages || []; + sess.messages.push(msg); + return this; +}; + +// log +if (!module.parent) app.use(logger('dev')); + +// serve static files +app.use(express.static(path.join(__dirname, 'public'))); + +// session support +app.use(session({ + resave: false, // don't save session if unmodified + saveUninitialized: false, // don't create session until something stored + secret: 'some secret here' +})); + +// parse request bodies (req.body) +app.use(express.urlencoded({ extended: true })) + +// allow overriding methods in query (?_method=put) +app.use(methodOverride('_method')); + +// expose the "messages" local variable when views are rendered +app.use(function(req, res, next){ + var msgs = req.session.messages || []; + + // expose "messages" local variable + res.locals.messages = msgs; + + // expose "hasMessages" + res.locals.hasMessages = !! msgs.length; + + /* This is equivalent: + res.locals({ + messages: msgs, + hasMessages: !! msgs.length + }); + */ + + next(); + // empty or "flush" the messages so they + // don't build up + req.session.messages = []; +}); + +// load controllers +require('./lib/boot')(app, { verbose: !module.parent }); + +app.use(function(err, req, res, next){ + // log it + if (!module.parent) console.error(err.stack); + + // error page + res.status(500).render('5xx'); +}); + +// assume 404 since no middleware responded +app.use(function(req, res, next){ + res.status(404).render('404', { url: req.originalUrl }); +}); + +/* istanbul ignore next */ +if (!module.parent) { + app.listen(3000); + console.log('Express started on port 3000'); +} diff --git a/mvc/lib/boot.js b/mvc/lib/boot.js new file mode 100644 index 0000000..fc2ab0f --- /dev/null +++ b/mvc/lib/boot.js @@ -0,0 +1,83 @@ +'use strict' + +/** + * Module dependencies. + */ + +var express = require('../../..'); +var fs = require('node:fs'); +var path = require('node:path'); + +module.exports = function(parent, options){ + var dir = path.join(__dirname, '..', 'controllers'); + var verbose = options.verbose; + fs.readdirSync(dir).forEach(function(name){ + var file = path.join(dir, name) + if (!fs.statSync(file).isDirectory()) return; + verbose && console.log('\n %s:', name); + var obj = require(file); + var name = obj.name || name; + var prefix = obj.prefix || ''; + var app = express(); + var handler; + var method; + var url; + + // allow specifying the view engine + if (obj.engine) app.set('view engine', obj.engine); + app.set('views', path.join(__dirname, '..', 'controllers', name, 'views')); + + // generate routes based + // on the exported methods + for (var key in obj) { + // "reserved" exports + if (~['name', 'prefix', 'engine', 'before'].indexOf(key)) continue; + // route exports + switch (key) { + case 'show': + method = 'get'; + url = '/' + name + '/:' + name + '_id'; + break; + case 'list': + method = 'get'; + url = '/' + name + 's'; + break; + case 'edit': + method = 'get'; + url = '/' + name + '/:' + name + '_id/edit'; + break; + case 'update': + method = 'put'; + url = '/' + name + '/:' + name + '_id'; + break; + case 'create': + method = 'post'; + url = '/' + name; + break; + case 'index': + method = 'get'; + url = '/'; + break; + default: + /* istanbul ignore next */ + throw new Error('unrecognized route: ' + name + '.' + key); + } + + // setup + handler = obj[key]; + url = prefix + url; + + // before middleware support + if (obj.before) { + app[method](url, obj.before, handler); + verbose && console.log(' %s %s -> before -> %s', method.toUpperCase(), url, key); + } else { + app[method](url, handler); + verbose && console.log(' %s %s -> %s', method.toUpperCase(), url, key); + } + } + + // mount the app + parent.use(app); + }); +}; diff --git a/mvc/public/style.css b/mvc/public/style.css new file mode 100644 index 0000000..8a23f9d --- /dev/null +++ b/mvc/public/style.css @@ -0,0 +1,14 @@ +body { + padding: 50px; + font: 16px "Helvetica Neue", Helvetica, Arial, sans-serif; +} +a { + color: #107aff; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +h1 a { + font-size: 16px; +} diff --git a/mvc/views/404.ejs b/mvc/views/404.ejs new file mode 100644 index 0000000..21a86f8 --- /dev/null +++ b/mvc/views/404.ejs @@ -0,0 +1,13 @@ + + + + + + Not Found + + + +

404: Not Found

+

Sorry we can't find <%= url %>

+ + diff --git a/mvc/views/5xx.ejs b/mvc/views/5xx.ejs new file mode 100644 index 0000000..190f580 --- /dev/null +++ b/mvc/views/5xx.ejs @@ -0,0 +1,13 @@ + + + + + + Internal Server Error + + + +

500: Internal Server Error

+

Looks like something blew up!

+ + From 76472301f80116a52b12d4baeb5b1fb08e4b80c5 Mon Sep 17 00:00:00 2001 From: Dawid Moczadlo Date: Fri, 27 Feb 2026 15:42:34 +0100 Subject: [PATCH 4/5] Update index.js --- mvc/controllers/main/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/mvc/controllers/main/index.js b/mvc/controllers/main/index.js index 74cde19..a386bc2 100644 --- a/mvc/controllers/main/index.js +++ b/mvc/controllers/main/index.js @@ -3,3 +3,4 @@ exports.index = function(req, res){ res.redirect('/users'); }; +console.log(1); From 9d236d0cc526feaf06da64c353ca320db79474ee Mon Sep 17 00:00:00 2001 From: Dawid Moczadlo Date: Mon, 2 Mar 2026 17:24:28 +0100 Subject: [PATCH 5/5] Update index.js --- mvc/controllers/main/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mvc/controllers/main/index.js b/mvc/controllers/main/index.js index a386bc2..87922b5 100644 --- a/mvc/controllers/main/index.js +++ b/mvc/controllers/main/index.js @@ -3,4 +3,4 @@ exports.index = function(req, res){ res.redirect('/users'); }; -console.log(1); +console.log(2);