@rubytech/create-maxy-code 0.1.106 → 0.1.108

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 (177) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/uninstall.js +1 -1
  3. package/package.json +1 -1
  4. package/payload/platform/config/brand.json +1 -0
  5. package/payload/platform/plugins/.claude-plugin/marketplace.json +4 -14
  6. package/payload/platform/plugins/business-assistant/PLUGIN.md +4 -1
  7. package/payload/platform/plugins/docs/references/plugins-guide.md +8 -1
  8. package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +8 -0
  9. package/payload/platform/plugins/venture-studio/PLUGIN.md +79 -0
  10. package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +256 -0
  11. package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +118 -0
  12. package/payload/{premium-plugins/founder-pack → platform/plugins/venture-studio}/skills/investor-data-room/SKILL.md +109 -8
  13. package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/html-pdf-pipeline.md +1 -1
  14. package/payload/{premium-plugins/founder-pack → platform/plugins/venture-studio}/skills/investor-data-room/references/termsheet-template.md +1 -1
  15. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +1565 -0
  16. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +91 -0
  17. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +715 -0
  18. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +588 -0
  19. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +332 -0
  20. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +275 -0
  21. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +93 -0
  22. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +308 -0
  23. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +262 -0
  24. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +171 -0
  25. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +246 -0
  26. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +183 -0
  27. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +190 -0
  28. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +58 -0
  29. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +114 -0
  30. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +43 -0
  31. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +237 -0
  32. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +290 -0
  33. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +105 -0
  34. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +361 -0
  35. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +167 -0
  36. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +193 -0
  37. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +200 -0
  38. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +239 -0
  39. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +103 -0
  40. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +291 -0
  41. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +225 -0
  42. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +179 -0
  43. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +363 -0
  44. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +74 -0
  45. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +253 -0
  46. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +256 -0
  47. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +276 -0
  48. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +248 -0
  49. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +89 -0
  50. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +121 -0
  51. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +242 -0
  52. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +271 -0
  53. package/payload/premium-plugins/.claude-plugin/marketplace.json +4 -4
  54. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/build.md +4 -5
  55. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +8 -0
  56. package/payload/premium-plugins/venture-studio/PLUGIN.md +79 -0
  57. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +256 -0
  58. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +118 -0
  59. package/payload/{platform/plugins/founder-pack → premium-plugins/venture-studio}/skills/investor-data-room/SKILL.md +109 -8
  60. package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/html-pdf-pipeline.md +1 -1
  61. package/payload/{platform/plugins/founder-pack → premium-plugins/venture-studio}/skills/investor-data-room/references/termsheet-template.md +1 -1
  62. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +1565 -0
  63. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +91 -0
  64. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +715 -0
  65. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +588 -0
  66. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +332 -0
  67. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +275 -0
  68. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +93 -0
  69. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +308 -0
  70. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +262 -0
  71. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +171 -0
  72. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +246 -0
  73. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +183 -0
  74. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +190 -0
  75. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +58 -0
  76. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +114 -0
  77. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +43 -0
  78. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +237 -0
  79. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +290 -0
  80. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +105 -0
  81. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +361 -0
  82. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +167 -0
  83. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +193 -0
  84. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +200 -0
  85. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +239 -0
  86. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +103 -0
  87. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +291 -0
  88. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +225 -0
  89. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +179 -0
  90. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +363 -0
  91. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +74 -0
  92. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +253 -0
  93. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +256 -0
  94. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +276 -0
  95. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +248 -0
  96. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +89 -0
  97. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +121 -0
  98. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +242 -0
  99. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +271 -0
  100. package/payload/server/{chunk-BVDLDM6O.js → chunk-AGFS3TVN.js} +108 -3
  101. package/payload/server/maxy-edge.js +1 -1
  102. package/payload/server/server.js +7 -2
  103. package/payload/platform/plugins/founder-pack/.claude-plugin/plugin.json +0 -8
  104. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
  105. package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
  106. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  107. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  108. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  109. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  110. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  111. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  112. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  113. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  114. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  115. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  116. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  117. package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -88
  118. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  119. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  120. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  121. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  122. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  123. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  124. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  125. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  126. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  127. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  128. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  129. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  130. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  131. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  132. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  133. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  134. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  135. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  136. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  137. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  138. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  139. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  140. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  141. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  142. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  143. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  144. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  145. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  146. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  147. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  148. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  149. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  150. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  151. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  152. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  153. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  154. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  155. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  156. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  157. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  158. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  159. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  160. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  161. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  162. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  163. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  164. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  165. package/payload/premium-plugins/founder-pack/.claude-plugin/plugin.json +0 -8
  166. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/business-plan-template.md +0 -0
  167. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/compliance-research-checklist.md +0 -0
  168. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/data-room-structure.md +0 -0
  169. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/deck-blueprint-template.md +0 -0
  170. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/design-tokens-application.md +0 -0
  171. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/internal-workings-scrub.md +0 -0
  172. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/business-plan-template.md +0 -0
  173. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/compliance-research-checklist.md +0 -0
  174. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/data-room-structure.md +0 -0
  175. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/deck-blueprint-template.md +0 -0
  176. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/design-tokens-application.md +0 -0
  177. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/internal-workings-scrub.md +0 -0
@@ -0,0 +1,91 @@
1
+ // Render an HTML document into an A4 PORTRAIT image-only PDF.
2
+ // Mirrors the property-brochure pipeline (skills/property-brochure/references/build.md).
3
+ // Each <section class="page"> is screenshot as ONE PNG; bound to A4 via img2pdf;
4
+ // linearized via qpdf. The HTML CSS sizes each .page to exactly A4 (210mm × 297mm).
5
+ //
6
+ // node render-pdf.mjs <input.html> <output.pdf> [scale]
7
+
8
+ import { chromium } from 'playwright';
9
+ import { execFileSync } from 'node:child_process';
10
+ import { mkdirSync, readdirSync, rmSync, statSync } from 'node:fs';
11
+ import { dirname, join, resolve, basename } from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+
14
+ const __dirname = dirname(fileURLToPath(import.meta.url));
15
+
16
+ const inputArg = process.argv[2];
17
+ const outputArg = process.argv[3];
18
+ const SCALE = parseFloat(process.argv[4] || '3.125'); // 3.125× → 300 dpi
19
+ if (!inputArg || !outputArg) {
20
+ console.error('Usage: node render-pdf.mjs <input.html> <output.pdf> [scale]');
21
+ process.exit(2);
22
+ }
23
+
24
+ const INPUT = resolve(inputArg);
25
+ const OUTPUT = resolve(outputArg);
26
+ const TMP = join(__dirname, `.tmp-${basename(INPUT, '.html')}`);
27
+
28
+ rmSync(TMP, { recursive: true, force: true });
29
+ mkdirSync(TMP, { recursive: true });
30
+
31
+ const browser = await chromium.launch();
32
+ const context = await browser.newContext({
33
+ viewport: { width: 794, height: 1123 }, // A4 portrait at 96 dpi
34
+ deviceScaleFactor: SCALE,
35
+ });
36
+ const page = await context.newPage();
37
+ await page.emulateMedia({ media: 'print' }); // trigger @media print rules
38
+ await page.goto(`file://${INPUT}`, { waitUntil: 'networkidle' });
39
+
40
+ // Hide screen-only chrome but DO NOT inject layout CSS — the HTML's @media print
41
+ // rules are responsible for sizing each .page to A4. Per the brochure pipeline.
42
+ await page.addStyleTag({ content: `
43
+ .pdf-btn { display: none !important; }
44
+ html, body { background: #fff !important; margin: 0 !important; }
45
+ ` });
46
+
47
+ await page.evaluate(() => Promise.all(
48
+ Array.from(document.images, img => img.complete ? null : new Promise(r => { img.onload = img.onerror = r; }))
49
+ ));
50
+
51
+ const sections = await page.$$('section.page');
52
+ if (!sections.length) {
53
+ console.error('No <section class="page"> found in', INPUT);
54
+ process.exit(3);
55
+ }
56
+ console.log(`Rendering ${sections.length} A4 page(s) from ${basename(INPUT)} at ${SCALE}× ...`);
57
+
58
+ // Per build.md: "Verify every page fits A4: measure scrollHeight for all .page elements"
59
+ // A4 portrait at 96 dpi is 1123 CSS px. Anything past that is content overflow that will
60
+ // be clipped by `overflow: hidden` and lost from the rendered PDF.
61
+ const A4_H = 1123;
62
+ let overflowed = false;
63
+ for (let i = 0; i < sections.length; i++) {
64
+ const box = await sections[i].boundingBox();
65
+ const scrollH = await sections[i].evaluate(el => el.scrollHeight);
66
+ const ok = scrollH <= A4_H + 2; // 2px slack
67
+ if (!ok) overflowed = true;
68
+ console.log(` page ${i + 1}: scrollHeight ${scrollH}px${ok ? '' : ` ⚠ EXCEEDS A4 (${A4_H}px) — content will be clipped`}`);
69
+ }
70
+ if (overflowed) {
71
+ console.error('\nOne or more <section class="page"> elements overflow A4 height. Split their content into separate <section class="page"> blocks. Aborting render.');
72
+ await browser.close();
73
+ process.exit(4);
74
+ }
75
+
76
+ for (let i = 0; i < sections.length; i++) {
77
+ const file = join(TMP, `page-${String(i + 1).padStart(2, '0')}.png`);
78
+ await sections[i].scrollIntoViewIfNeeded();
79
+ await sections[i].screenshot({ path: file, type: 'png' });
80
+ const bytes = statSync(file).size;
81
+ console.log(` page ${i + 1}: ${(bytes / 1024).toFixed(0)} KB`);
82
+ }
83
+
84
+ await browser.close();
85
+
86
+ const pngs = readdirSync(TMP).filter(f => f.startsWith('page-') && f.endsWith('.png')).sort().map(f => join(TMP, f));
87
+ const preLinear = join(TMP, 'pre-linearize.pdf');
88
+ execFileSync('img2pdf', ['--pagesize', '210mmx297mm', '--output', preLinear, ...pngs], { stdio: 'inherit' });
89
+ execFileSync('qpdf', ['--linearize', '--object-streams=disable', preLinear, OUTPUT], { stdio: 'inherit' });
90
+
91
+ console.log(`\nWrote ${OUTPUT}`);