@ytspar/sweetlink 1.0.0 → 1.1.0-canary.48d6f47

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.
Files changed (51) hide show
  1. package/dist/browser/screenshotUtils.d.ts +2 -4
  2. package/dist/browser/screenshotUtils.d.ts.map +1 -1
  3. package/dist/browser/screenshotUtils.js +2 -4
  4. package/dist/browser/screenshotUtils.js.map +1 -1
  5. package/dist/cli/sweetlink-dev.js +0 -0
  6. package/dist/cli/sweetlink.js +0 -0
  7. package/dist/server/handlers/consoleLogs.d.ts.map +1 -1
  8. package/dist/server/handlers/consoleLogs.js +8 -29
  9. package/dist/server/handlers/consoleLogs.js.map +1 -1
  10. package/dist/server/handlers/index.d.ts +1 -0
  11. package/dist/server/handlers/index.d.ts.map +1 -1
  12. package/dist/server/handlers/index.js +1 -0
  13. package/dist/server/handlers/index.js.map +1 -1
  14. package/dist/server/handlers/outline.d.ts.map +1 -1
  15. package/dist/server/handlers/outline.js +8 -29
  16. package/dist/server/handlers/outline.js.map +1 -1
  17. package/dist/server/handlers/saveMarkdown.d.ts +20 -0
  18. package/dist/server/handlers/saveMarkdown.d.ts.map +1 -0
  19. package/dist/server/handlers/saveMarkdown.js +52 -0
  20. package/dist/server/handlers/saveMarkdown.js.map +1 -0
  21. package/dist/server/handlers/schema.d.ts.map +1 -1
  22. package/dist/server/handlers/schema.js +12 -31
  23. package/dist/server/handlers/schema.js.map +1 -1
  24. package/dist/server/index.d.ts.map +1 -1
  25. package/dist/server/index.js +416 -337
  26. package/dist/server/index.js.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/browser/commands/commands.test.d.ts +0 -2
  29. package/dist/browser/commands/commands.test.d.ts.map +0 -1
  30. package/dist/browser/commands/commands.test.js +0 -207
  31. package/dist/browser/commands/commands.test.js.map +0 -1
  32. package/dist/browser/consoleCapture.test.d.ts +0 -2
  33. package/dist/browser/consoleCapture.test.d.ts.map +0 -1
  34. package/dist/browser/consoleCapture.test.js +0 -249
  35. package/dist/browser/consoleCapture.test.js.map +0 -1
  36. package/dist/browser/screenshotUtils.test.d.ts +0 -2
  37. package/dist/browser/screenshotUtils.test.d.ts.map +0 -1
  38. package/dist/browser/screenshotUtils.test.js +0 -198
  39. package/dist/browser/screenshotUtils.test.js.map +0 -1
  40. package/dist/server/anthropic.test.d.ts +0 -2
  41. package/dist/server/anthropic.test.d.ts.map +0 -1
  42. package/dist/server/anthropic.test.js +0 -27
  43. package/dist/server/anthropic.test.js.map +0 -1
  44. package/dist/server/constants.test.d.ts +0 -2
  45. package/dist/server/constants.test.d.ts.map +0 -1
  46. package/dist/server/constants.test.js +0 -25
  47. package/dist/server/constants.test.js.map +0 -1
  48. package/dist/server/subscriptions.test.d.ts +0 -2
  49. package/dist/server/subscriptions.test.d.ts.map +0 -1
  50. package/dist/server/subscriptions.test.js +0 -100
  51. package/dist/server/subscriptions.test.js.map +0 -1
@@ -8,10 +8,8 @@
8
8
  export declare const DEFAULT_SCREENSHOT_SCALE = 0.25;
9
9
  /** Default JPEG quality */
10
10
  export declare const DEFAULT_SCREENSHOT_QUALITY = 0.7;
11
- /** Higher quality scale for design review */
12
- export declare const DESIGN_REVIEW_SCALE = 0.75;
13
- /** Higher quality JPEG for devbar screenshots */
14
- export declare const DEVBAR_SCREENSHOT_QUALITY = 0.8;
11
+ /** JPEG quality for devbar screenshots (balances clarity vs file size ~100KB) */
12
+ export declare const DEVBAR_SCREENSHOT_QUALITY = 0.65;
15
13
  /**
16
14
  * Options for canvas scaling
17
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotUtils.d.ts","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,2BAA2B;AAC3B,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAiBnB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAEnF;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,IAAI,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAMD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpF;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAYpB"}
1
+ {"version":3,"file":"screenshotUtils.d.ts","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,2BAA2B;AAC3B,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAM9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAiBnB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAEnF;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,IAAI,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAMD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpF;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAYpB"}
@@ -11,10 +11,8 @@
11
11
  export const DEFAULT_SCREENSHOT_SCALE = 0.25;
12
12
  /** Default JPEG quality */
13
13
  export const DEFAULT_SCREENSHOT_QUALITY = 0.7;
14
- /** Higher quality scale for design review */
15
- export const DESIGN_REVIEW_SCALE = 0.75;
16
- /** Higher quality JPEG for devbar screenshots */
17
- export const DEVBAR_SCREENSHOT_QUALITY = 0.8;
14
+ /** JPEG quality for devbar screenshots (balances clarity vs file size ~100KB) */
15
+ export const DEVBAR_SCREENSHOT_QUALITY = 0.65;
18
16
  /**
19
17
  * Scale a canvas down to a smaller size
20
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotUtils.js","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshotUtils.js","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"consoleLogs.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/consoleLogs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgCjC"}
1
+ {"version":3,"file":"consoleLogs.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/consoleLogs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAUjC"}
@@ -3,39 +3,18 @@
3
3
  *
4
4
  * Handles saving console logs to the file system.
5
5
  */
6
- import { promises as fs } from 'fs';
7
- import { join } from 'path';
8
- import { generateBaseFilename, generateSlugFromUrl, SCREENSHOT_DIR } from '../../urlUtils.js';
9
- import { getProjectRoot } from '../index.js';
6
+ import { saveMarkdownArtifact } from './saveMarkdown.js';
10
7
  /**
11
8
  * Handle console logs save: saves the logs as markdown to the screenshots folder
12
9
  */
13
10
  export async function handleSaveConsoleLogs(data) {
14
- const { markdown, url, title, timestamp } = data;
15
- // Create directory if it doesn't exist (relative to project root captured at server start)
16
- const dir = join(getProjectRoot(), SCREENSHOT_DIR);
17
- await fs.mkdir(dir, { recursive: true });
18
- // Generate a slug from URL path or title and create filename with shared utility
19
- const slug = generateSlugFromUrl(url, title);
20
- const baseFilename = generateBaseFilename('console-logs', timestamp, slug);
21
- // Build the console logs markdown file with frontmatter
22
- const logsMarkdown = `---
23
- title: ${title || 'Console Logs'}
24
- url: ${url}
25
- timestamp: ${new Date(timestamp).toISOString()}
26
- ---
27
-
28
- # Console Logs
29
-
30
- > Page: ${title || url}
31
- > Generated: ${new Date(timestamp).toLocaleString()}
32
-
33
- ${markdown || '_No console logs recorded_'}
34
- `;
35
- // Save the console logs markdown
36
- const consoleLogsPath = join(dir, `${baseFilename}.md`);
37
- await fs.writeFile(consoleLogsPath, logsMarkdown, 'utf-8');
38
- console.log(`[Sweetlink] Console logs saved: ${consoleLogsPath}`);
11
+ const consoleLogsPath = await saveMarkdownArtifact({
12
+ type: 'console-logs',
13
+ markdown: data.markdown || '_No console logs recorded_',
14
+ url: data.url,
15
+ title: data.title,
16
+ timestamp: data.timestamp,
17
+ });
39
18
  return { consoleLogsPath };
40
19
  }
41
20
  //# sourceMappingURL=consoleLogs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consoleLogs.js","sourceRoot":"","sources":["../../../src/server/handlers/consoleLogs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAM3C;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEjD,2FAA2F;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,iFAAiF;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAE3E,wDAAwD;IACxD,MAAM,YAAY,GAAG;SACd,KAAK,IAAI,cAAc;OACzB,GAAG;aACG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;;;;;UAKpC,KAAK,IAAI,GAAG;eACP,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;;EAEjD,QAAQ,IAAI,4BAA4B;CACzC,CAAC;IAEA,iCAAiC;IACjC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,mCAAmC,eAAe,EAAE,CAAC,CAAC;IAElE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"consoleLogs.js","sourceRoot":"","sources":["../../../src/server/handlers/consoleLogs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAM3C;IACC,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC;QACjD,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,4BAA4B;QACvD,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC"}
@@ -7,6 +7,7 @@ export { DESIGN_REVIEW_PROMPT, type DesignReviewResult, handleDesignReviewScreen
7
7
  export { type HmrScreenshotResult, handleHmrScreenshot } from './hmr.js';
8
8
  export { handleSaveConsoleLogs, type ConsoleLogsSaveResult } from './consoleLogs.js';
9
9
  export { handleSaveOutline, type OutlineSaveResult } from './outline.js';
10
+ export { saveMarkdownArtifact } from './saveMarkdown.js';
10
11
  export { handleSaveSchema, type SchemaSaveResult } from './schema.js';
11
12
  export { handleSaveScreenshot } from './screenshot.js';
12
13
  export { type DevBarSettings, handleLoadSettings, handleSaveSettings, type SettingsSaveResult, } from './settings.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,KAAK,cAAc,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,KAAK,cAAc,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
@@ -7,6 +7,7 @@ export { DESIGN_REVIEW_PROMPT, handleDesignReviewScreenshot, } from './designRev
7
7
  export { handleHmrScreenshot } from './hmr.js';
8
8
  export { handleSaveConsoleLogs } from './consoleLogs.js';
9
9
  export { handleSaveOutline } from './outline.js';
10
+ export { saveMarkdownArtifact } from './saveMarkdown.js';
10
11
  export { handleSaveSchema } from './schema.js';
11
12
  export { handleSaveScreenshot } from './screenshot.js';
12
13
  export { handleLoadSettings, handleSaveSettings, } from './settings.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EAEpB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA4B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EAEpB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA4B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/outline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgC7B"}
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/outline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B"}
@@ -3,39 +3,18 @@
3
3
  *
4
4
  * Handles saving document outlines to the file system.
5
5
  */
6
- import { promises as fs } from 'fs';
7
- import { join } from 'path';
8
- import { generateBaseFilename, generateSlugFromUrl, SCREENSHOT_DIR } from '../../urlUtils.js';
9
- import { getProjectRoot } from '../index.js';
6
+ import { saveMarkdownArtifact } from './saveMarkdown.js';
10
7
  /**
11
8
  * Handle document outline save: saves the outline as markdown to the screenshots folder
12
9
  */
13
10
  export async function handleSaveOutline(data) {
14
- const { markdown, url, title, timestamp } = data;
15
- // Create directory if it doesn't exist (relative to project root captured at server start)
16
- const dir = join(getProjectRoot(), SCREENSHOT_DIR);
17
- await fs.mkdir(dir, { recursive: true });
18
- // Generate a slug from URL path or title and create filename with shared utility
19
- const slug = generateSlugFromUrl(url, title);
20
- const baseFilename = generateBaseFilename('outline', timestamp, slug);
21
- // Build the outline markdown file with frontmatter
22
- const outlineMarkdown = `---
23
- title: ${title || 'Document Outline'}
24
- url: ${url}
25
- timestamp: ${new Date(timestamp).toISOString()}
26
- ---
27
-
28
- # Document Outline
29
-
30
- > Page: ${title || url}
31
- > Generated: ${new Date(timestamp).toLocaleString()}
32
-
33
- ${markdown || '_No headings found in this document_'}
34
- `;
35
- // Save the outline markdown
36
- const outlinePath = join(dir, `${baseFilename}.md`);
37
- await fs.writeFile(outlinePath, outlineMarkdown, 'utf-8');
38
- console.log(`[Sweetlink] Document outline saved: ${outlinePath}`);
11
+ const outlinePath = await saveMarkdownArtifact({
12
+ type: 'outline',
13
+ markdown: data.markdown || '_No headings found in this document_',
14
+ url: data.url,
15
+ title: data.title,
16
+ timestamp: data.timestamp,
17
+ });
39
18
  return { outlinePath };
40
19
  }
41
20
  //# sourceMappingURL=outline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../../src/server/handlers/outline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAMvC;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEjD,2FAA2F;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,iFAAiF;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEtE,mDAAmD;IACnD,MAAM,eAAe,GAAG;SACjB,KAAK,IAAI,kBAAkB;OAC7B,GAAG;aACG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;;;;;UAKpC,KAAK,IAAI,GAAG;eACP,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;;EAEjD,QAAQ,IAAI,sCAAsC;CACnD,CAAC;IAEA,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;IAElE,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../../src/server/handlers/outline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAMvC;IACC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;QAC7C,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,sCAAsC;QACjE,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shared Markdown Artifact Saver
3
+ *
4
+ * Provides a common function for saving markdown artifacts (outlines, schemas,
5
+ * console logs) to the file system with consistent frontmatter and directory handling.
6
+ */
7
+ /**
8
+ * Save a markdown artifact to the screenshots directory with frontmatter.
9
+ *
10
+ * Handles: mkdir, slug generation, frontmatter construction, file write, and logging.
11
+ * Returns the absolute path of the saved file.
12
+ */
13
+ export declare function saveMarkdownArtifact(opts: {
14
+ type: string;
15
+ markdown: string;
16
+ url: string;
17
+ title: string;
18
+ timestamp: number;
19
+ }): Promise<string>;
20
+ //# sourceMappingURL=saveMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveMarkdown.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/saveMarkdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyClB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared Markdown Artifact Saver
3
+ *
4
+ * Provides a common function for saving markdown artifacts (outlines, schemas,
5
+ * console logs) to the file system with consistent frontmatter and directory handling.
6
+ */
7
+ import { promises as fs } from 'fs';
8
+ import { join } from 'path';
9
+ import { generateBaseFilename, generateSlugFromUrl, SCREENSHOT_DIR } from '../../urlUtils.js';
10
+ import { getProjectRoot } from '../index.js';
11
+ /**
12
+ * Save a markdown artifact to the screenshots directory with frontmatter.
13
+ *
14
+ * Handles: mkdir, slug generation, frontmatter construction, file write, and logging.
15
+ * Returns the absolute path of the saved file.
16
+ */
17
+ export async function saveMarkdownArtifact(opts) {
18
+ const { type, markdown, url, title, timestamp } = opts;
19
+ // Create directory if it doesn't exist (relative to project root captured at server start)
20
+ const dir = join(getProjectRoot(), SCREENSHOT_DIR);
21
+ await fs.mkdir(dir, { recursive: true });
22
+ // Generate a slug from URL path or title and create filename with shared utility
23
+ const slug = generateSlugFromUrl(url, title);
24
+ const baseFilename = generateBaseFilename(type, timestamp, slug);
25
+ // Capitalize the type for the heading (e.g. 'outline' -> 'Outline', 'console-logs' -> 'Console Logs')
26
+ const heading = type
27
+ .split('-')
28
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
29
+ .join(' ');
30
+ // Default title fallback based on type
31
+ const titleFallback = heading;
32
+ // Build the markdown file with frontmatter
33
+ const fullMarkdown = `---
34
+ title: ${title || titleFallback}
35
+ url: ${url}
36
+ timestamp: ${new Date(timestamp).toISOString()}
37
+ ---
38
+
39
+ # ${heading}
40
+
41
+ > Page: ${title || url}
42
+ > Generated: ${new Date(timestamp).toLocaleString()}
43
+
44
+ ${markdown}
45
+ `;
46
+ // Save the markdown file
47
+ const filePath = join(dir, `${baseFilename}.md`);
48
+ await fs.writeFile(filePath, fullMarkdown, 'utf-8');
49
+ console.log(`[Sweetlink] ${heading} saved: ${filePath}`);
50
+ return filePath;
51
+ }
52
+ //# sourceMappingURL=saveMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveMarkdown.js","sourceRoot":"","sources":["../../../src/server/handlers/saveMarkdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAM1C;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEvD,2FAA2F;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,iFAAiF;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjE,sGAAsG;IACtG,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,uCAAuC;IACvC,MAAM,aAAa,GAAG,OAAO,CAAC;IAE9B,2CAA2C;IAC3C,MAAM,YAAY,GAAG;SACd,KAAK,IAAI,aAAa;OACxB,GAAG;aACG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;;;IAG1C,OAAO;;UAED,KAAK,IAAI,GAAG;eACP,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;;EAEjD,QAAQ;CACT,CAAC;IAEA,yBAAyB;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,WAAW,QAAQ,EAAE,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwC5B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqB5B"}
@@ -3,47 +3,28 @@
3
3
  *
4
4
  * Handles saving page schemas to the file system.
5
5
  */
6
- import { promises as fs } from 'fs';
7
- import { join } from 'path';
8
- import { generateBaseFilename, generateSlugFromUrl, SCREENSHOT_DIR } from '../../urlUtils.js';
9
- import { getProjectRoot } from '../index.js';
6
+ import { saveMarkdownArtifact } from './saveMarkdown.js';
10
7
  /**
11
8
  * Handle page schema save: saves structured data as markdown to the screenshots folder
12
9
  */
13
10
  export async function handleSaveSchema(data) {
14
- const { schema, markdown, url, title, timestamp } = data;
15
- // Create directory if it doesn't exist (relative to project root captured at server start)
16
- const dir = join(getProjectRoot(), SCREENSHOT_DIR);
17
- await fs.mkdir(dir, { recursive: true });
18
- // Generate a slug from URL path or title and create filename with shared utility
19
- const slug = generateSlugFromUrl(url, title);
20
- const baseFilename = generateBaseFilename('schema', timestamp, slug);
21
- // Build the schema markdown file with frontmatter
22
- const schemaMarkdown = `---
23
- title: ${title || 'Page Schema'}
24
- url: ${url}
25
- timestamp: ${new Date(timestamp).toISOString()}
26
- ---
27
-
28
- # Page Schema
29
-
30
- > Page: ${title || url}
31
- > Generated: ${new Date(timestamp).toLocaleString()}
32
-
33
- ${markdown || '_No structured data found on this page_'}
11
+ // Schema includes extra raw JSON section after the main markdown
12
+ const body = `${data.markdown || '_No structured data found on this page_'}
34
13
 
35
14
  ---
36
15
 
37
16
  ## Raw JSON
38
17
 
39
18
  \`\`\`json
40
- ${JSON.stringify(schema, null, 2)}
41
- \`\`\`
42
- `;
43
- // Save the schema markdown
44
- const schemaPath = join(dir, `${baseFilename}.md`);
45
- await fs.writeFile(schemaPath, schemaMarkdown, 'utf-8');
46
- console.log(`[Sweetlink] Page schema saved: ${schemaPath}`);
19
+ ${JSON.stringify(data.schema, null, 2)}
20
+ \`\`\``;
21
+ const schemaPath = await saveMarkdownArtifact({
22
+ type: 'schema',
23
+ markdown: body,
24
+ url: data.url,
25
+ title: data.title,
26
+ timestamp: data.timestamp,
27
+ });
47
28
  return { schemaPath };
48
29
  }
49
30
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAMtC;IACC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEzD,2FAA2F;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,iFAAiF;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAErE,kDAAkD;IAClD,MAAM,cAAc,GAAG;SAChB,KAAK,IAAI,aAAa;OACxB,GAAG;aACG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;;;;;UAKpC,KAAK,IAAI,GAAG;eACP,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;;EAEjD,QAAQ,IAAI,yCAAyC;;;;;;;EAOrD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;CAEhC,CAAC;IAEA,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;IAE5D,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAMtC;IACC,iEAAiE;IACjE,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,yCAAyC;;;;;;;EAO1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;OAC/B,CAAC;IAEN,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAa,eAAe,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAkErB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AA0CnF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wGAAwG;IACxG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyFrF;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAidD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAa,eAAe,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EAGV,UAAU,EAGV,iBAAiB,EAWjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAkErB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AA0CnF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wGAAwG;IACxG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyFrF;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAulBD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B9C"}