@vue-skuilder/express 0.1.24 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"app-factory.d.ts","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAK9B,OAAO,OAAO,MAAM,SAAS,CAAC;AAqB9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzE,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,OAAO;IACvD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAwBhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAgMvE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DzE"}
1
+ {"version":3,"file":"app-factory.d.ts","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAK9B,OAAO,OAAO,MAAM,SAAS,CAAC;AA8B9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzE,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,OAAO;IACvD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AA0BhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CA4MvE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEzE"}
@@ -6,11 +6,12 @@ import cors from 'cors';
6
6
  import express from 'express';
7
7
  import morgan from 'morgan';
8
8
  import PostProcess from './attachment-preprocessing/index.js';
9
+ import { startPerUserProvisioning } from './peruser.js';
9
10
  import { ClassroomCreationQueue, ClassroomJoinQueue, ClassroomLeaveQueue, } from './client-requests/classroom-requests.js';
10
11
  import { CourseCreationQueue, initCourseDBDesignDocInsert, } from './client-requests/course-requests.js';
11
12
  import { packCourse } from './client-requests/pack-requests.js';
12
- import { requestIsAuthenticated } from './couchdb/authentication.js';
13
- import { getCouchDB, initializeCouchDB, useOrCreateCourseDB, useOrCreateDB } from './couchdb/index.js';
13
+ import { getAuthenticatedUser, requestIsAuthenticated, } from './couchdb/authentication.js';
14
+ import { getCouchDB, initializeCouchDB, useOrCreateCourseDB, useOrCreateDB, } from './couchdb/index.js';
14
15
  import { classroomDbDesignDoc } from './design-docs.js';
15
16
  import logger from './logger.js';
16
17
  import logsRouter from './routes/logs.js';
@@ -115,15 +116,19 @@ export function createExpressApp(config) {
115
116
  }
116
117
  catch (error) {
117
118
  logger.error('Error deleting course:', error);
118
- res.status(500).json({ success: false, error: 'Failed to delete course' });
119
+ res
120
+ .status(500)
121
+ .json({ success: false, error: 'Failed to delete course' });
119
122
  }
120
123
  })();
121
124
  });
122
125
  async function postHandler(req, res) {
123
- const auth = await requestIsAuthenticated(req);
124
- if (auth) {
126
+ // Use secure authentication that returns the actual session username
127
+ const authResult = await getAuthenticatedUser(req);
128
+ if (authResult.authenticated) {
129
+ const authenticatedUsername = authResult.username;
125
130
  const body = req.body;
126
- logger.info(`Authorized ${body.type ? body.type : '[unspecified request type]'} request made...`);
131
+ logger.info(`Authorized ${body.type ? body.type : '[unspecified request type]'} request from ${authenticatedUsername}...`);
127
132
  if (body.type === RequestEnum.CREATE_CLASSROOM) {
128
133
  const id = ClassroomCreationQueue.addRequest(body.data);
129
134
  body.response = await ClassroomCreationQueue.getResult(id);
@@ -138,8 +143,9 @@ export function createExpressApp(config) {
138
143
  res.json(body.response);
139
144
  }
140
145
  else if (body.type === RequestEnum.LEAVE_CLASSROOM) {
146
+ // SECURITY FIX: Use authenticated username from session, not user-supplied req.body.user
141
147
  const id = ClassroomLeaveQueue.addRequest({
142
- username: req.body.user,
148
+ username: authenticatedUsername,
143
149
  ...body.data,
144
150
  });
145
151
  body.response = await ClassroomLeaveQueue.getResult(id);
@@ -152,7 +158,8 @@ export function createExpressApp(config) {
152
158
  }
153
159
  else if (body.type === RequestEnum.ADD_COURSE_DATA) {
154
160
  const payload = prepareNote55(body.data.courseID, body.data.codeCourse, body.data.shape, body.data.data, body.data.author, body.data.tags, body.data.uploads);
155
- getCouchDB().use(`coursedb-${body.data.courseID}`)
161
+ getCouchDB()
162
+ .use(`coursedb-${body.data.courseID}`)
156
163
  .insert(payload)
157
164
  .then((r) => {
158
165
  logger.info(`\t\t\tCouchDB insert result: ${JSON.stringify(r)}`);
@@ -167,14 +174,15 @@ export function createExpressApp(config) {
167
174
  if (envConfig.NODE_ENV !== 'studio') {
168
175
  logger.info(`\tPACK_COURSE request received in production mode, but this is not supported!`);
169
176
  res.status(400);
170
- res.statusMessage = 'Packing courses is not supported in production mode.';
177
+ res.statusMessage =
178
+ 'Packing courses is not supported in production mode.';
171
179
  res.send();
172
180
  return;
173
181
  }
174
182
  body.response = await packCourse({
175
183
  courseId: body.courseId,
176
184
  outputPath: body.outputPath,
177
- couchdbUrl: body.couchdbUrl
185
+ couchdbUrl: body.couchdbUrl,
178
186
  });
179
187
  res.json(body.response);
180
188
  }
@@ -194,7 +202,8 @@ export function createExpressApp(config) {
194
202
  });
195
203
  app.get('/', (_req, res) => {
196
204
  let status = `Express service is running.\nVersion: ${envConfig.VERSION}\n`;
197
- getCouchDB().session()
205
+ getCouchDB()
206
+ .session()
198
207
  .then((s) => {
199
208
  if (s.ok) {
200
209
  status += 'Couchdb is running.\n';
@@ -247,6 +256,12 @@ export async function initializeServices(config) {
247
256
  // start the change-listener that does post-processing on user
248
257
  // media uploads
249
258
  void PostProcess();
259
+ // start the per-user database provisioning listener
260
+ // (replaces CouchDB's couch_peruser, which has a process leak)
261
+ // skip in studio mode — studio is a local single-user environment
262
+ if (envConfig.NODE_ENV !== 'studio') {
263
+ startPerUserProvisioning();
264
+ }
250
265
  initCourseDBDesignDocInsert().catch((error) => {
251
266
  logger.error(`Error in initCourseDBDesignDocInsert background task: ${error}`);
252
267
  if (error && typeof error === 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"app-factory.js","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-factory.js","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,26 @@ Examples:
34
34
  `);
35
35
  }
36
36
  log(`FFMPEG path: ${FFMPEG}`);
37
+ // Fade durations in seconds — short enough to preserve consonant onsets,
38
+ // long enough to smooth out the noise-floor cut-in/cut-out
39
+ const FADE_IN_DURATION = 0.05; // 50ms
40
+ const FADE_OUT_DURATION = 0.1; // 100ms
41
+ function parseDuration(output) {
42
+ const match = output.match(/Duration:\s*(\d+):(\d+):(\d+)\.(\d+)/);
43
+ if (!match)
44
+ throw new Error('Could not parse duration from ffmpeg output');
45
+ const hours = parseInt(match[1]);
46
+ const minutes = parseInt(match[2]);
47
+ const seconds = parseInt(match[3]);
48
+ const frac = parseInt(match[4]) / Math.pow(10, match[4].length);
49
+ return hours * 3600 + minutes * 60 + seconds + frac;
50
+ }
51
+ async function getAudioDuration(filePath) {
52
+ const result = await exec(`"${FFMPEG}" -i "${filePath}" -f null -`);
53
+ return parseDuration(result.stderr);
54
+ }
37
55
  /**
38
- * Normalizes a single wav file to mp3 with loudnorm
56
+ * Normalizes a single wav file to mp3 with loudnorm and fade in/out
39
57
  * Same spec as the attachment preprocessing: I=-16:TP=-1.5:LRA=11
40
58
  */
41
59
  async function normalizeFile(inputPath, outputDir) {
@@ -45,6 +63,7 @@ async function normalizeFile(inputPath, outputDir) {
45
63
  const outputPath = path.join(targetDir, `${baseName}.normalized.mp3`);
46
64
  const PADDED = path.join(tmpDir, 'padded.wav');
47
65
  const PADDED_NORMALIZED = path.join(tmpDir, 'paddedNormalized.wav');
66
+ const TRIMMED = path.join(tmpDir, 'trimmed.wav');
48
67
  const NORMALIZED = path.join(tmpDir, 'normalized.mp3');
49
68
  try {
50
69
  log(`[${baseName}] Processing...`);
@@ -63,9 +82,17 @@ async function normalizeFile(inputPath, outputDir) {
63
82
  `measured_LRA=${data.input_lra}:measured_TP=${data.input_tp}:` +
64
83
  `measured_thresh=${data.input_thresh}:offset=${data.target_offset}:linear=true:` +
65
84
  `print_format=summary -ar 48k "${PADDED_NORMALIZED}"`);
66
- // Cut off the padded part and convert to mp3
67
- log(`[${baseName}] Cutting padding and encoding to mp3...`);
68
- await exec(`"${FFMPEG}" -i "${PADDED_NORMALIZED}" -ss 00:00:10.000 -acodec libmp3lame -b:a 192k "${NORMALIZED}"`);
85
+ // Cut off the padded silence (keep as wav to avoid double lossy encoding)
86
+ log(`[${baseName}] Cutting padding...`);
87
+ await exec(`"${FFMPEG}" -i "${PADDED_NORMALIZED}" -ss 00:00:10.000 "${TRIMMED}"`);
88
+ // Apply fade in/out and encode to mp3
89
+ const duration = await getAudioDuration(TRIMMED);
90
+ const fadeOutStart = Math.max(0, duration - FADE_OUT_DURATION);
91
+ log(`[${baseName}] Applying fades (in=${FADE_IN_DURATION}s, out=${FADE_OUT_DURATION}s @ ${fadeOutStart.toFixed(3)}s) and encoding to mp3...`);
92
+ await exec(`"${FFMPEG}" -i "${TRIMMED}" -af ` +
93
+ `"afade=t=in:st=0:d=${FADE_IN_DURATION}:curve=qsin,` +
94
+ `afade=t=out:st=${fadeOutStart}:d=${FADE_OUT_DURATION}:curve=qsin" ` +
95
+ `-acodec libmp3lame -b:a 192k "${NORMALIZED}"`);
69
96
  // Copy to output location
70
97
  fs.copyFileSync(NORMALIZED, outputPath);
71
98
  log(`[${baseName}] ✓ Saved to: ${outputPath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-local.js","sourceRoot":"","sources":["../../src/attachment-preprocessing/normalize-local.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACrD,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAErC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,IAAI,CAAC,YAAY,EAAE,CAAC;IAClB,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,sEAAsE;AACtE,MAAM,MAAM,GAAG,YAAiC,CAAC;AAEjD,SAAS,GAAG,CAAC,CAAS;IACpB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AACD,SAAS,KAAK,CAAC,CAAS;IACtB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,SAAS;IAChB,GAAG,CAAC;;;;;;;;;;;CAWL,CAAC,CAAC;AACH,CAAC;AAED,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;AAkB9B;;;GAGG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,SAAkB;IAElB,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,iBAAiB,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,GAAG,CAAC,IAAI,QAAQ,iBAAiB,CAAC,CAAC;QAEnC,0BAA0B;QAC1B,GAAG,CAAC,IAAI,QAAQ,2BAA2B,CAAC,CAAC;QAC7C,MAAM,IAAI,CACR,IAAI,MAAM,SAAS,SAAS,+BAA+B,MAAM,GAAG,CACrE,CAAC;QAEF,mBAAmB;QACnB,GAAG,CAAC,IAAI,QAAQ,yBAAyB,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,IAAI,MAAM,SAAS,MAAM,iEAAiE,CAC3F,CAAC;QAEF,MAAM,IAAI,GAAiB,IAAI,CAAC,KAAK,CACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAChD,CAAC;QAEF,GAAG,CACD,IAAI,QAAQ,uBAAuB,IAAI,CAAC,OAAO,aAAa,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,SAAS,KAAK,CAC3G,CAAC;QAEF,4BAA4B;QAC5B,GAAG,CAAC,IAAI,QAAQ,kBAAkB,CAAC,CAAC;QACpC,MAAM,IAAI,CACR,IAAI,MAAM,SAAS,MAAM,QAAQ;YAC/B,4CAA4C,IAAI,CAAC,OAAO,GAAG;YAC3D,gBAAgB,IAAI,CAAC,SAAS,gBAAgB,IAAI,CAAC,QAAQ,GAAG;YAC9D,mBAAmB,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,aAAa,eAAe;YAChF,iCAAiC,iBAAiB,GAAG,CACxD,CAAC;QAEF,6CAA6C;QAC7C,GAAG,CAAC,IAAI,QAAQ,0CAA0C,CAAC,CAAC;QAC5D,MAAM,IAAI,CACR,IAAI,MAAM,SAAS,iBAAiB,oDAAoD,UAAU,GAAG,CACtG,CAAC;QAEF,0BAA0B;QAC1B,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,QAAQ,iBAAiB,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,QAAQ,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,yBAAyB;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,4BAA4B;IAC5B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAElC,sCAAsC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,4BAA4B,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,GAAG,CAAC;IACpB,IAAI,SAA6B,CAAC;IAElC,sBAAsB;IACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC,CAAC,gBAAgB;QACvB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,IAAI,iBAAqC,CAAC;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,6BAA6B,iBAAiB,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,8CAA8C,iBAAiB,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,qBAAqB,iBAAiB,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,uBAAuB,WAAW,IAAI,CAAC,CAAC;IAE5C,sBAAsB;IACtB,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAE/C,oBAAoB;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACjD,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B;IACtC,CAAC;IAED,GAAG,CAAC,yBAAyB,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"normalize-local.js","sourceRoot":"","sources":["../../src/attachment-preprocessing/normalize-local.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pack-requests.d.ts","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+LlF;AAGD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"pack-requests.d.ts","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA6N7B;AAGD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
@@ -29,7 +29,7 @@ export async function packCourse(data) {
29
29
  }
30
30
  else {
31
31
  // Fallback to ENV configuration for production mode
32
- logger.info(`ENV values - Protocol: "${ENV.COUCHDB_PROTOCOL}", Admin: "${ENV.COUCHDB_ADMIN}", Password: "${ENV.COUCHDB_PASSWORD}", Server: "${ENV.COUCHDB_SERVER}"`);
32
+ logger.info(`ENV values - Protocol: "${ENV.COUCHDB_PROTOCOL}", Admin: "${ENV.COUCHDB_ADMIN}", Password: PROBABLY_NOT_THE_PASSORD, Server: "${ENV.COUCHDB_SERVER}"`);
33
33
  const dbUrl = `${ENV.COUCHDB_PROTOCOL}://${ENV.COUCHDB_ADMIN}:${ENV.COUCHDB_PASSWORD}@${ENV.COUCHDB_SERVER}`;
34
34
  const dbName = `coursedb-${data.courseId}`;
35
35
  courseDbUrl = `${dbUrl}/${dbName}`;
@@ -53,9 +53,10 @@ export async function packCourse(data) {
53
53
  }
54
54
  else {
55
55
  // No output path provided - use default
56
- outputPath = ENV.NODE_ENV === 'studio' ?
57
- '/tmp/skuilder-studio-output' :
58
- process.cwd();
56
+ outputPath =
57
+ ENV.NODE_ENV === 'studio'
58
+ ? '/tmp/skuilder-studio-output'
59
+ : process.cwd();
59
60
  }
60
61
  logger.info(`Packing course ${data.courseId} from ${courseDbUrl} to ${outputPath}`);
61
62
  // Clean up existing output directory for replace-in-place functionality
@@ -101,7 +102,7 @@ export async function packCourse(data) {
101
102
  return {
102
103
  isDirectory: () => stats.isDirectory(),
103
104
  isFile: () => stats.isFile(),
104
- size: stats.size
105
+ size: stats.size,
105
106
  };
106
107
  },
107
108
  async writeFile(filePath, data) {
@@ -121,7 +122,7 @@ export async function packCourse(data) {
121
122
  },
122
123
  isAbsolute(filePath) {
123
124
  return path.isAbsolute(filePath);
124
- }
125
+ },
125
126
  };
126
127
  };
127
128
  const fsAdapter = await createFsAdapter();
@@ -144,7 +145,8 @@ export async function packCourse(data) {
144
145
  try {
145
146
  const manifestContent = await fsAdapter.readFile(manifestPath);
146
147
  const manifest = JSON.parse(manifestContent);
147
- courseTitle = manifest.courseName || manifest.courseConfig?.name || originalCourseId;
148
+ courseTitle =
149
+ manifest.courseName || manifest.courseConfig?.name || originalCourseId;
148
150
  }
149
151
  catch (error) {
150
152
  logger.warn(`Could not read manifest for course title, using courseId: ${error}`);
@@ -160,7 +162,9 @@ export async function packCourse(data) {
160
162
  },
161
163
  };
162
164
  const skuilderJsonPath = path.join(outputPath, 'skuilder.json');
163
- await fsAdapter.writeJson(skuilderJsonPath, courseSkuilderJson, { spaces: 2 });
165
+ await fsAdapter.writeJson(skuilderJsonPath, courseSkuilderJson, {
166
+ spaces: 2,
167
+ });
164
168
  logger.info(`Created skuilder.json for course: ${originalCourseId}`);
165
169
  const duration = Date.now() - startTime;
166
170
  const response = {
@@ -170,7 +174,7 @@ export async function packCourse(data) {
170
174
  attachmentsFound: packResult.attachmentsFound,
171
175
  filesWritten: packResult.filesWritten + 1, // +1 for skuilder.json
172
176
  totalFiles: packResult.filesWritten + 1, // Updated to reflect actual files written including skuilder.json
173
- duration: duration
177
+ duration: duration,
174
178
  };
175
179
  logger.info(`Pack completed in ${duration}ms. Attachments: ${response.attachmentsFound}, Files written: ${response.filesWritten}`);
176
180
  return response;
@@ -180,7 +184,7 @@ export async function packCourse(data) {
180
184
  const response = {
181
185
  status: Status.error,
182
186
  ok: false,
183
- errorText: error instanceof Error ? error.message : 'Pack operation failed'
187
+ errorText: error instanceof Error ? error.message : 'Pack operation failed',
184
188
  };
185
189
  return response;
186
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack-requests.js","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAoB9B;;;GAGG;AACH,SAAS,uBAAuB,CAAC,WAAmB;IAClD,qCAAqC;IACrC,IAAI,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAErD,2DAA2D;IAC3D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAEvD,uEAAuE;IACvE,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,qDAAqD;QACrD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEnE,sFAAsF;QACtF,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,gCAAgC,WAAW,GAAG,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,gBAAgB,cAAc,GAAG,CAAC,aAAa,iBAAiB,GAAG,CAAC,gBAAgB,eAAe,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;YACrK,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,gBAAgB,MAAM,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YAC7G,MAAM,MAAM,GAAG,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3C,WAAW,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,gCAAgC,WAAW,GAAG,CAAC,CAAC;QAC9D,CAAC;QAED,+DAA+D;QAC/D,IAAI,UAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,iEAAiE;YACjE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC;YAE9C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,0BAA0B;gBAC1B,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC9D,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,UAAU,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACtC,6BAA6B,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ,SAAS,WAAW,OAAO,UAAU,EAAE,CAAC,CAAC;QAEpF,wEAAwE;QACxE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAEtC,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;gBAC1D,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,kDAAkD,UAAU,GAAG,EAAE,YAAY,CAAC,CAAC;YAC3F,4DAA4D;QAC9D,CAAC;QAED,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAE3C,0EAA0E;QAC1E,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAExC,yCAAyC;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC;YAE9C,OAAO;gBACL,KAAK,CAAC,QAAQ,CAAC,QAAgB;oBAC7B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC,QAAgB;oBAC/B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,QAAgB;oBAC3B,IAAI,CAAC;wBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC1B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,QAAgB;oBACzB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,OAAO;wBACL,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;wBACtC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;wBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAqB;oBACrD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAA2B,CAAC,CAAC;gBAC5D,CAAC;gBACD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAa,EAAE,OAA6B;oBAC5E,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBACD,KAAK,CAAC,SAAS,CAAC,OAAe;oBAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;gBACD,QAAQ,CAAC,GAAG,QAAkB;oBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,CAAC,QAAgB;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBACD,UAAU,CAAC,QAAgB;oBACzB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;QAE1C,8CAA8C;QAC9C,MAAM,CAAC,IAAI,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;QAClE,mEAAmE;QACnE,oGAAoG;QAEpG,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,kFAAkF;QAElF,iFAAiF;QACjF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,2BAA2B,gBAAgB,mCAAmC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QAE7G,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAErG,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAE5D,wCAAwC;QACxC,IAAI,WAAW,GAAG,gBAAgB,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC7C,WAAW,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,IAAI,gBAAgB,CAAC;QACvF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,6DAA6D,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,oCAAoC;QACpC,MAAM,kBAAkB,GAAG;YACzB,IAAI,EAAE,oBAAoB,gBAAgB,EAAE;YAC5C,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;SACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,qCAAqC,gBAAgB,EAAE,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,UAAU;YACtB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,YAAY,EAAE,UAAU,CAAC,YAAY,GAAG,CAAC,EAAE,uBAAuB;YAClE,UAAU,EAAE,UAAU,CAAC,YAAY,GAAG,CAAC,EAAE,kEAAkE;YAC3G,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,qBAAqB,QAAQ,oBAAoB,QAAQ,CAAC,gBAAgB,oBAAoB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QAEnI,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;SAC5E,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pack-requests.js","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,38 @@
1
1
  import { VueClientRequest } from '../app-factory.js';
2
- export declare function requestIsAdminAuthenticated(req: VueClientRequest): Promise<boolean>;
2
+ /**
3
+ * Result of authentication check.
4
+ * - If authenticated: { authenticated: true, username: string, isAdmin: boolean }
5
+ * - If not authenticated: { authenticated: false }
6
+ */
7
+ export type AuthResult = {
8
+ authenticated: true;
9
+ username: string;
10
+ isAdmin: boolean;
11
+ } | {
12
+ authenticated: false;
13
+ };
14
+ /**
15
+ * Get the authenticated user from the request's session cookie or authorization header.
16
+ * Returns the username from the session - does NOT trust req.body.user.
17
+ *
18
+ * This is the secure way to get the authenticated username - callers should use
19
+ * the returned username rather than trusting user-supplied data.
20
+ */
21
+ export declare function getAuthenticatedUser(req: VueClientRequest): Promise<AuthResult>;
22
+ /**
23
+ * Check if the request is authenticated (any valid user).
24
+ * Returns true if authenticated, false otherwise.
25
+ *
26
+ * @deprecated Use getAuthenticatedUser() instead to get the actual username
27
+ */
3
28
  export declare function requestIsAuthenticated(req: VueClientRequest): Promise<boolean>;
29
+ /**
30
+ * Check if the request is authenticated as an admin user.
31
+ * Returns true only if the session has _admin role.
32
+ *
33
+ * SECURITY FIX: No longer trusts req.body.user - only checks session role.
34
+ *
35
+ * @deprecated Use getAuthenticatedUser() and check isAdmin instead
36
+ */
37
+ export declare function requestIsAdminAuthenticated(req: VueClientRequest): Promise<boolean>;
4
38
  //# sourceMappingURL=authentication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,oBAwBtE;AAMD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,oBA0CjE"}
1
+ {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,aAAa,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC;AAE7B;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,UAAU,CAAC,CA0ErB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,OAAO,CAAC,CAGlB"}
@@ -1,69 +1,104 @@
1
1
  import Nano from 'nano';
2
2
  import { getCouchURLWithProtocol } from './index.js';
3
3
  import logger from '../logger.js';
4
- export async function requestIsAdminAuthenticated(req) {
5
- logRequest(req);
6
- const username = req.body.user;
7
- const authCookie = req.cookies.AuthSession ? req.cookies.AuthSession : 'null';
8
- if (authCookie === 'null') {
9
- return false;
10
- }
11
- else {
12
- return await Nano({
13
- cookie: 'AuthSession=' + authCookie,
14
- url: getCouchURLWithProtocol(),
15
- })
16
- .session()
17
- .then((s) => {
18
- logger.info(`AuthUser: ${JSON.stringify(s)}`);
19
- const isAdmin = s.userCtx.roles.indexOf('_admin') !== -1;
20
- const isLoggedInUser = s.userCtx.name === username;
21
- return isAdmin && isLoggedInUser;
22
- })
23
- .catch((_err) => {
24
- return false;
25
- });
26
- }
27
- }
28
- function logRequest(req) {
29
- logger.info(`${req.body.type} request from ${req.body.user}...`);
30
- }
31
- export async function requestIsAuthenticated(req) {
4
+ /**
5
+ * Get the authenticated user from the request's session cookie or authorization header.
6
+ * Returns the username from the session - does NOT trust req.body.user.
7
+ *
8
+ * This is the secure way to get the authenticated username - callers should use
9
+ * the returned username rather than trusting user-supplied data.
10
+ */
11
+ export async function getAuthenticatedUser(req) {
32
12
  logRequest(req);
33
13
  // Studio mode bypass: skip authentication for local development
34
14
  if (process.env.NODE_ENV === 'studio') {
35
15
  logger.info('Studio mode: bypassing authentication for local development');
36
- return true;
16
+ // In studio mode, trust the body.user since this is local development only
17
+ const studioUser = req.body.user || 'studio-user';
18
+ return { authenticated: true, username: studioUser, isAdmin: true };
37
19
  }
20
+ // Check for Basic auth header first
38
21
  if (req.headers.authorization) {
39
- const auth = Buffer.from(req.headers.authorization.split(' ')[1], 'base64')
40
- .toString('ascii')
41
- .split(':');
42
- const username = auth[0];
43
- const password = auth[1];
44
- const authResult = await Nano({
45
- url: getCouchURLWithProtocol(),
46
- }).auth(username, password);
47
- return authResult.ok;
22
+ const authHeader = req.headers.authorization;
23
+ if (authHeader.startsWith('Basic ')) {
24
+ const auth = Buffer.from(authHeader.split(' ')[1], 'base64')
25
+ .toString('ascii')
26
+ .split(':');
27
+ const username = auth[0];
28
+ const password = auth[1];
29
+ try {
30
+ const authResult = await Nano({
31
+ url: getCouchURLWithProtocol(),
32
+ }).auth(username, password);
33
+ if (authResult.ok) {
34
+ // Check if user has admin role by getting session
35
+ const nano = Nano({
36
+ url: getCouchURLWithProtocol(),
37
+ });
38
+ await nano.auth(username, password);
39
+ const session = (await nano.session());
40
+ const isAdmin = session.userCtx.roles.includes('_admin');
41
+ return { authenticated: true, username, isAdmin };
42
+ }
43
+ }
44
+ catch (err) {
45
+ logger.warn('Basic auth failed:', err);
46
+ }
47
+ }
48
+ return { authenticated: false };
48
49
  }
49
- const username = req.body.user;
50
- const authCookie = req.cookies.AuthSession ? req.cookies.AuthSession : 'null';
50
+ // Check for session cookie
51
+ const authCookie = req.cookies.AuthSession
52
+ ? req.cookies.AuthSession
53
+ : 'null';
51
54
  if (authCookie === 'null') {
52
- return false;
55
+ return { authenticated: false };
53
56
  }
54
- else {
55
- return await Nano({
57
+ try {
58
+ const session = (await Nano({
56
59
  cookie: 'AuthSession=' + authCookie,
57
60
  url: getCouchURLWithProtocol(),
58
- })
59
- .session()
60
- .then((s) => {
61
- logger.info(`AuthUser: ${JSON.stringify(s)}`);
62
- return s.userCtx.name === username;
63
- })
64
- .catch((_err) => {
65
- return false;
66
- });
61
+ }).session());
62
+ logger.info(`AuthUser: ${JSON.stringify(session)}`);
63
+ if (session.ok && session.userCtx.name) {
64
+ const isAdmin = session.userCtx.roles.includes('_admin');
65
+ return {
66
+ authenticated: true,
67
+ username: session.userCtx.name,
68
+ isAdmin,
69
+ };
70
+ }
71
+ return { authenticated: false };
72
+ }
73
+ catch (err) {
74
+ logger.warn('Session validation failed:', err);
75
+ return { authenticated: false };
67
76
  }
68
77
  }
78
+ /**
79
+ * Check if the request is authenticated (any valid user).
80
+ * Returns true if authenticated, false otherwise.
81
+ *
82
+ * @deprecated Use getAuthenticatedUser() instead to get the actual username
83
+ */
84
+ export async function requestIsAuthenticated(req) {
85
+ const result = await getAuthenticatedUser(req);
86
+ return result.authenticated;
87
+ }
88
+ /**
89
+ * Check if the request is authenticated as an admin user.
90
+ * Returns true only if the session has _admin role.
91
+ *
92
+ * SECURITY FIX: No longer trusts req.body.user - only checks session role.
93
+ *
94
+ * @deprecated Use getAuthenticatedUser() and check isAdmin instead
95
+ */
96
+ export async function requestIsAdminAuthenticated(req) {
97
+ const result = await getAuthenticatedUser(req);
98
+ return result.authenticated && result.isAdmin;
99
+ }
100
+ function logRequest(req) {
101
+ // Log the claimed user for debugging, but note this is NOT trusted
102
+ logger.info(`${req.body.type} request (claimed user: ${req.body.user})...`);
103
+ }
69
104
  //# sourceMappingURL=authentication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,MAAM,MAAM,cAAc,CAAC;AAwBlC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAqB;IAErB,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhB,gEAAgE;IAChE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC3E,2EAA2E;QAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;QAClD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IAED,oCAAoC;IACpC,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;iBACzD,QAAQ,CAAC,OAAO,CAAC;iBACjB,KAAK,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC;oBAC5B,GAAG,EAAE,uBAAuB,EAAE;iBAC/B,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAE5B,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;oBAClB,kDAAkD;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC;wBAChB,GAAG,EAAE,uBAAuB,EAAE;qBAC/B,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACpC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAiB,CAAC;oBACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACzD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAW,GAAG,CAAC,OAAO,CAAC,WAAW;QAChD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW;QACzB,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC;YAC1B,MAAM,EAAE,cAAc,GAAG,UAAU;YACnC,GAAG,EAAE,uBAAuB,EAAE;SAC/B,CAAC,CAAC,OAAO,EAAE,CAAiB,CAAC;QAE9B,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzD,OAAO;gBACL,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC9B,OAAO;aACR,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,GAAqB;IACvC,mEAAmE;IACnE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,2BAA2B,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Per-user database provisioning daemon.
3
+ *
4
+ * Replaces CouchDB's built-in couch_peruser Erlang module, which has a
5
+ * process leak bug that causes unbounded memory growth:
6
+ * https://github.com/apache/couchdb/issues/5871
7
+ *
8
+ * Watches the _users database changes feed and ensures that every user
9
+ * has a corresponding userdb-{hex(username)} database with appropriate
10
+ * security settings. Replays from since=0 on every startup — this is
11
+ * cheap and removes the need to persist checkpoint state.
12
+ */
13
+ export declare function startPerUserProvisioning(): void;
14
+ //# sourceMappingURL=peruser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peruser.d.ts","sourceRoot":"","sources":["../src/peruser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8CH,wBAAgB,wBAAwB,IAAI,IAAI,CAsB/C"}