gutterpress 0.11.18-alpha.2 → 0.11.18-alpha.3

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.
package/dist/api/index.js CHANGED
@@ -136,11 +136,11 @@ import {
136
136
  testRemoteAccess,
137
137
  updateExtensions,
138
138
  validateProjectExtensions
139
- } from "../index-bb2d1ev8.js";
139
+ } from "../index-rpc74pqb.js";
140
140
  import"../index-ht1bcqdd.js";
141
141
  import {
142
142
  BuildError
143
- } from "../index-t3zxy69d.js";
143
+ } from "../index-b81jc99n.js";
144
144
  import {
145
145
  DEFAULT_PRINT_OPTS,
146
146
  assertMilestone,
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  runBuild,
3
3
  splitOutPath
4
- } from "./cli-0w3961p5.js";
4
+ } from "./cli-72r4c2k4.js";
5
5
  import {
6
6
  log
7
- } from "./cli-qp6dtsh3.js";
7
+ } from "./cli-12aq78aq.js";
8
8
  import {
9
9
  UsageError,
10
10
  parseFormat,
11
11
  parsePdfxFlavor,
12
12
  rejectExtraPositionals,
13
13
  rejectUnknownFlags
14
- } from "./cli-yqpnksaa.js";
14
+ } from "./cli-z835nehj.js";
15
15
  import"./cli-ht1bcqdd.js";
16
- import"./cli-161z4n0s.js";
16
+ import"./cli-zrs92eef.js";
17
17
  import {
18
18
  BuildError
19
19
  } from "./cli-46ycxe6r.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "./cli-yqpnksaa.js";
3
+ } from "./cli-z835nehj.js";
4
4
  import {
5
5
  execCapture,
6
6
  findTool,
@@ -13,12 +13,12 @@ import {
13
13
  stampCreator,
14
14
  stripAnnotations,
15
15
  warn
16
- } from "./cli-qp6dtsh3.js";
16
+ } from "./cli-12aq78aq.js";
17
17
  import {
18
18
  DEBOUNCE,
19
19
  UsageError,
20
20
  resolvePort
21
- } from "./cli-yqpnksaa.js";
21
+ } from "./cli-z835nehj.js";
22
22
  import {
23
23
  blackTextToGray
24
24
  } from "./cli-ht1bcqdd.js";
@@ -27,7 +27,7 @@ import {
27
27
  getAssetPath,
28
28
  getAssetsDir,
29
29
  lastPageMode
30
- } from "./cli-161z4n0s.js";
30
+ } from "./cli-zrs92eef.js";
31
31
  import {
32
32
  BuildError,
33
33
  EXIT_CODES
@@ -9726,7 +9726,7 @@ class PdfOutput {
9726
9726
  const rawPdf = pdfxMode ? path13.join(stage, "raw.pdf") : path13.resolve(pdfFile);
9727
9727
  await fsp2.mkdir(path13.dirname(path13.resolve(pdfFile)), { recursive: true });
9728
9728
  log.info("Rendering HTML to PDF via the Gutterpress engine (native Chromium pagination)");
9729
- const { buildNativePdf } = await import("./engine-jkf4pxz9.js");
9729
+ const { buildNativePdf } = await import("./engine-17gjf7t0.js");
9730
9730
  const engineDiagnostics = await buildNativePdf(htmlFile, rawPdf, {
9731
9731
  title: config.title,
9732
9732
  author: config.authors.length > 0 ? config.authors.join(", ") : undefined,
@@ -4,7 +4,7 @@ import {
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "gutterpress",
7
- version: "0.11.18-alpha.2",
7
+ version: "0.11.18-alpha.3",
8
8
  description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
9
9
  author: "itlackey",
10
10
  license: "MPL-2.0",
@@ -1131,7 +1131,7 @@ var preview_shell_default = "./preview-shell-hyp7g158.js";
1131
1131
  var CGATS21_CRPC1_default = "./CGATS21_CRPC1-g0e3k7kr.icc";
1132
1132
 
1133
1133
  // src/assets/engine/gutterpress-viewer.js
1134
- var gutterpress_viewer_default = "./gutterpress-viewer-spq1ge52.js";
1134
+ var gutterpress_viewer_default = "./gutterpress-viewer-k4mpqjh0.js";
1135
1135
 
1136
1136
  // src/assets/engine/gutterpress-agent.js
1137
1137
  var gutterpress_agent_default = "./gutterpress-agent-cazqstr1.js";
package/dist/cli.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  UsageError,
7
7
  package_default,
8
8
  rejectUnknownFlags
9
- } from "./cli-yqpnksaa.js";
9
+ } from "./cli-z835nehj.js";
10
10
  import {
11
11
  EXIT_CODES
12
12
  } from "./cli-46ycxe6r.js";
@@ -18,14 +18,14 @@ import {
18
18
  import { defineCommand, parseArgs, runMain } from "citty";
19
19
  import { statSync } from "node:fs";
20
20
  var SUBCOMMANDS = {
21
- new: () => import("./new-w7q0n21v.js").then((m) => m.default),
22
- preview: () => import("./preview-bg3wxqxc.js").then((m) => m.default),
23
- build: () => import("./build-se062swz.js").then((m) => m.default),
24
- publish: () => import("./publish-waps63wf.js").then((m) => m.default),
25
- validate: () => import("./validate-c9d8d656.js").then((m) => m.default),
26
- preflight: () => import("./preflight-m54qsjs7.js").then((m) => m.default),
27
- doctor: () => import("./doctor-tkbdx8c1.js").then((m) => m.default),
28
- ext: () => import("./ext-kg8m8vda.js").then((m) => m.default)
21
+ new: () => import("./new-6pm52vh7.js").then((m) => m.default),
22
+ preview: () => import("./preview-9s4ktkbk.js").then((m) => m.default),
23
+ build: () => import("./build-5n7wpqg3.js").then((m) => m.default),
24
+ publish: () => import("./publish-wcrtgxgk.js").then((m) => m.default),
25
+ validate: () => import("./validate-q9c00m8g.js").then((m) => m.default),
26
+ preflight: () => import("./preflight-d84a2ab9.js").then((m) => m.default),
27
+ doctor: () => import("./doctor-e3zkvkkh.js").then((m) => m.default),
28
+ ext: () => import("./ext-rcf6hfhq.js").then((m) => m.default)
29
29
  };
30
30
  var VERSION = package_default.version;
31
31
  var main = defineCommand({
@@ -50,7 +50,7 @@ async function preflightRequiredInvocations(rawArgs) {
50
50
  const [command, ...commandArgs] = rawArgs;
51
51
  try {
52
52
  if (command === "new") {
53
- const { newArgs } = await import("./new-w7q0n21v.js");
53
+ const { newArgs } = await import("./new-6pm52vh7.js");
54
54
  rejectUnknownFlags(commandArgs, newArgs, "new");
55
55
  const parsed = parseArgs(commandArgs, {
56
56
  ...newArgs,
@@ -62,7 +62,7 @@ async function preflightRequiredInvocations(rawArgs) {
62
62
  return;
63
63
  }
64
64
  if (command === "preflight") {
65
- const { preflightArgs } = await import("./preflight-m54qsjs7.js");
65
+ const { preflightArgs } = await import("./preflight-d84a2ab9.js");
66
66
  rejectUnknownFlags(commandArgs, preflightArgs, "preflight");
67
67
  const parsed = parseArgs(commandArgs, {
68
68
  ...preflightArgs,
@@ -82,7 +82,7 @@ async function preflightRequiredInvocations(rawArgs) {
82
82
  }
83
83
  if (subcommand.startsWith("-"))
84
84
  return;
85
- const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-kg8m8vda.js");
85
+ const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-rcf6hfhq.js");
86
86
  if (!EXT_SUBCOMMANDS.includes(subcommand)) {
87
87
  throw new UsageError(`gutterpress ext: unknown command "${subcommand}"`);
88
88
  }
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getSystemDiagnostics,
3
3
  log
4
- } from "./cli-qp6dtsh3.js";
4
+ } from "./cli-12aq78aq.js";
5
5
  import {
6
6
  UsageError,
7
7
  rejectExtraPositionals,
8
8
  rejectUnknownFlags
9
- } from "./cli-yqpnksaa.js";
9
+ } from "./cli-z835nehj.js";
10
10
  import"./cli-46ycxe6r.js";
11
11
  import"./cli-7fkhgtfn.js";
12
12
  import"./cli-37x76zdn.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  build
3
- } from "./cli-161z4n0s.js";
3
+ } from "./cli-zrs92eef.js";
4
4
  import {
5
5
  BuildError
6
6
  } from "./cli-46ycxe6r.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  build
3
- } from "./index-3x23by5j.js";
3
+ } from "./index-q88g67zg.js";
4
4
  import {
5
5
  BuildError
6
- } from "./index-t3zxy69d.js";
6
+ } from "./index-b81jc99n.js";
7
7
  import"./index-rzm1phg0.js";
8
8
  import"./index-37x76zdn.js";
9
9
 
@@ -12,17 +12,17 @@ import {
12
12
  searchNpmExtensions,
13
13
  setExtensionEnabled,
14
14
  updateExtensions
15
- } from "./cli-0w3961p5.js";
16
- import"./cli-qp6dtsh3.js";
15
+ } from "./cli-72r4c2k4.js";
16
+ import"./cli-12aq78aq.js";
17
17
  import {
18
18
  UsageError,
19
19
  exitForUsage,
20
20
  rejectExtraPositionals,
21
21
  rejectUnknownFlags,
22
22
  resolveProjectDir
23
- } from "./cli-yqpnksaa.js";
23
+ } from "./cli-z835nehj.js";
24
24
  import"./cli-ht1bcqdd.js";
25
- import"./cli-161z4n0s.js";
25
+ import"./cli-zrs92eef.js";
26
26
  import {
27
27
  EXIT_CODES
28
28
  } from "./cli-46ycxe6r.js";
@@ -19,6 +19,7 @@
19
19
  __export(exports_fragment, {
20
20
  wrapGeometry: () => wrapGeometry,
21
21
  waitForLayoutReady: () => waitForLayoutReady,
22
+ versoShiftPt: () => versoShiftPt,
22
23
  synthesizeColumnBreaks: () => synthesizeColumnBreaks,
23
24
  stripMetrics: () => stripMetrics,
24
25
  strideOf: () => strideOf,
@@ -108,13 +109,20 @@
108
109
  below is already sized to the run's full width and owns the actual
109
110
  clipping/visibility, so the strip does not need to. */
110
111
  .gp-strip {
112
+ /* Column pitch less the content width. \`--gp-verso-shift\` is set only on a
113
+ book with mirrored margins: decorate.ts slides each verso's sheet by it,
114
+ and growing the pitch by the same amount keeps the gap between a verso and
115
+ the recto it faces at the sheet gap (the gap across the page turn gets
116
+ twice the shift instead). Without it, it is 0px and nothing changes. */
117
+ --gp-col-gap: calc(
118
+ var(--gp-margin-right) + var(--gp-margin-left) + var(--gp-sheet-gap) +
119
+ var(--gp-verso-shift, 0px)
120
+ );
111
121
  position: relative;
112
122
  width: var(--gp-content-w);
113
123
  height: var(--gp-content-h);
114
124
  column-width: var(--gp-content-w);
115
- column-gap: calc(
116
- var(--gp-margin-right) + var(--gp-margin-left) + var(--gp-sheet-gap)
117
- );
125
+ column-gap: var(--gp-col-gap);
118
126
  column-fill: auto;
119
127
  overflow: visible;
120
128
  margin: 0;
@@ -176,9 +184,7 @@
176
184
  );
177
185
  width: calc(
178
186
  var(--gp-content-w) * var(--gp-wrap-cols, 2) +
179
- (
180
- var(--gp-margin-right) + var(--gp-margin-left) + var(--gp-sheet-gap)
181
- ) * (var(--gp-wrap-cols, 2) - 1)
187
+ var(--gp-col-gap) * (var(--gp-wrap-cols, 2) - 1)
182
188
  );
183
189
  }
184
190
 
@@ -334,15 +340,6 @@
334
340
  border: var(--gp-ov-w) var(--gp-ov-style) var(--gp-ov-color);
335
341
  }
336
342
 
337
- /* the PDF's own margins for this page, where they differ from where the
338
- preview lays the text (mirrored :left/:right, .gp-flush): fainter, dotted */
339
- .gp-ov-print {
340
- position: absolute;
341
- box-sizing: border-box;
342
- border: var(--gp-ov-w) dotted var(--gp-ov-color);
343
- opacity: 0.6;
344
- }
345
-
346
343
  /* bleed: a translucent band OUTSIDE the trim (its width is the border) */
347
344
  .gp-ov-bleed {
348
345
  position: absolute;
@@ -1475,6 +1472,13 @@
1475
1472
  }
1476
1473
  }
1477
1474
  function runPageBox(model, name, warnings = []) {
1475
+ const { right, agree, r, l } = pageSides(model, name);
1476
+ if (agree)
1477
+ return right;
1478
+ warnings.push(`@page :left and @page :right give ${name ? `the "${name}" page` : "this book"} ` + `different content areas (${l.w.toFixed(1)}×${l.h.toFixed(1)}pt vs ` + `${r.w.toFixed(1)}×${r.h.toFixed(1)}pt). Print alternates between them; the preview can ` + `only show one, so page breaks here may not match the PDF. Mirror the margins instead: ` + `swap which edge is wide and keep the total the same.`);
1479
+ return resolvePage(model, { name }).geometry;
1480
+ }
1481
+ function pageSides(model, name) {
1478
1482
  const right = resolvePage(model, { name, pseudos: ["right"] }).geometry;
1479
1483
  const left = resolvePage(model, { name, pseudos: ["left"] }).geometry;
1480
1484
  const box = (g) => ({
@@ -1483,10 +1487,23 @@
1483
1487
  });
1484
1488
  const r = box(right);
1485
1489
  const l = box(left);
1486
- if (Math.abs(r.w - l.w) < 0.01 && Math.abs(r.h - l.h) < 0.01)
1487
- return right;
1488
- warnings.push(`@page :left and @page :right give ${name ? `the "${name}" page` : "this book"} ` + `different content areas (${l.w.toFixed(1)}×${l.h.toFixed(1)}pt vs ` + `${r.w.toFixed(1)}×${r.h.toFixed(1)}pt). Print alternates between them; the preview can ` + `only show one, so page breaks here may not match the PDF. Mirror the margins instead: ` + `swap which edge is wide and keep the total the same.`);
1489
- return resolvePage(model, { name }).geometry;
1490
+ return {
1491
+ right,
1492
+ left,
1493
+ r,
1494
+ l,
1495
+ agree: Math.abs(r.w - l.w) < 0.01 && Math.abs(r.h - l.h) < 0.01
1496
+ };
1497
+ }
1498
+ function versoShiftPt(model, name, flushEdges = []) {
1499
+ const { right, left, agree } = pageSides(model, name);
1500
+ if (!agree)
1501
+ return 0;
1502
+ const r = flushMargins(right.margin, flushEdges);
1503
+ const l = flushMargins(left.margin, flushEdges);
1504
+ if (Math.abs(r.left + r.right - (l.left + l.right)) >= 0.01)
1505
+ return 0;
1506
+ return r.left - l.left;
1490
1507
  }
1491
1508
  function buildStrips(model, opts = {}, warnings = []) {
1492
1509
  const doc = document;
@@ -1512,6 +1529,10 @@
1512
1529
  strip.style.setProperty("--gp-margin-right", `${pt(margin.right)}px`);
1513
1530
  strip.style.setProperty("--gp-margin-bottom", `${pt(margin.bottom)}px`);
1514
1531
  strip.style.setProperty("--gp-margin-left", `${pt(margin.left)}px`);
1532
+ const rawShift = versoShiftPt(model, run.page, run.flushEdges);
1533
+ const versoShift = Math.abs(rawShift) >= 0.01 ? rawShift : 0;
1534
+ if (versoShift)
1535
+ strip.style.setProperty("--gp-verso-shift", `${pt(versoShift)}px`);
1515
1536
  run.nodes[0].before(strip);
1516
1537
  for (const n of run.nodes)
1517
1538
  strip.appendChild(n);
@@ -1520,6 +1541,7 @@
1520
1541
  page: run.page,
1521
1542
  geometry,
1522
1543
  flushEdges: run.flushEdges,
1544
+ versoShift,
1523
1545
  pages: 0,
1524
1546
  offset: 0
1525
1547
  });
@@ -2259,8 +2281,10 @@
2259
2281
  return out;
2260
2282
  }
2261
2283
  var OVERLAY_OFF = { on: false, issues: 0, intended: 0, bleedPt: 0 };
2262
- function marginsDiffer(a, b) {
2263
- return ["top", "right", "bottom", "left"].some((k) => Math.abs(a[k] - b[k]) > 0.5);
2284
+ function pageFrameMargin(margin, versoShift, side) {
2285
+ if (side === "recto" || !versoShift)
2286
+ return margin;
2287
+ return { ...margin, left: margin.left - versoShift, right: margin.right + versoShift };
2264
2288
  }
2265
2289
  function configInsetBleedPt() {
2266
2290
  const v = parseFloat(document.querySelector('meta[name="gp-inset-bleed"]')?.getAttribute("content") ?? "");
@@ -2328,9 +2352,6 @@
2328
2352
  }
2329
2353
  host.appendChild(marginTint(boxes));
2330
2354
  host.appendChild(div("gp-ov-margin", boxes.content));
2331
- if (marginsDiffer(p.printMargin, p.margin)) {
2332
- host.appendChild(div("gp-ov-print", pageBoxes(p.geometry, p.printMargin, 0, PX_PER_PT).content));
2333
- }
2334
2355
  layer.appendChild(host);
2335
2356
  painted.set(p.index, { host, boxes, sheet: p.sheet });
2336
2357
  }
@@ -2619,6 +2640,8 @@
2619
2640
  buildMaps();
2620
2641
  fillXrefs();
2621
2642
  let prevPageH = 0;
2643
+ let prevVersoShift = 0;
2644
+ let prevRunX = 0;
2622
2645
  let first = true;
2623
2646
  for (const strip of layout.strips) {
2624
2647
  const run = ensureRun(strip);
@@ -2635,12 +2658,13 @@
2635
2658
  const slot = i + shift;
2636
2659
  const row = Math.floor(slot / perRow);
2637
2660
  const colVisual = slot % perRow;
2638
- const sheetLeft = colVisual * stride;
2661
+ const side = bookIndex % 2 === 0 ? "recto" : "verso";
2662
+ const sheetLeft = colVisual * stride + (side === "verso" ? strip.versoShift * PX_PER_PT : 0);
2639
2663
  const sheetTop = row * rowStride;
2640
2664
  const sheet = document.createElement("div");
2641
2665
  sheet.className = "gp-sheet";
2642
2666
  sheet.dataset.page = String(bookIndex + 1);
2643
- sheet.dataset.side = bookIndex % 2 === 0 ? "recto" : "verso";
2667
+ sheet.dataset.side = side;
2644
2668
  sheet.style.left = `${sheetLeft}px`;
2645
2669
  sheet.style.top = `${sheetTop}px`;
2646
2670
  sheet.style.setProperty("--gp-page-w", px(ctx.geometry.width));
@@ -2659,15 +2683,19 @@
2659
2683
  sheet,
2660
2684
  strip,
2661
2685
  geometry: ctx.geometry,
2662
- printMargin: ctx.geometry.margin,
2663
- margin: ctx.padded || blankPages.has(bookIndex) ? ctx.geometry.margin : strip.flushEdges?.length ? flushMargins(g.margin, strip.flushEdges) : g.margin
2686
+ margin: ctx.padded || blankPages.has(bookIndex) ? ctx.geometry.margin : pageFrameMargin(flushMargins(g.margin, strip.flushEdges ?? []), strip.versoShift, side)
2664
2687
  });
2665
2688
  }
2666
2689
  const rows = Math.max(1, Math.ceil((strip.pages + shift) / perRow));
2667
2690
  run.style.height = `${rowStride * (rows - 1) + PX_PER_PT * g.height}px`;
2668
2691
  run.style.width = `${stride * perRow}px`;
2669
- run.style.marginTop = strip.wrapCols && shift === 1 && !first ? `${-(prevPageH + sheetGap)}px` : "";
2692
+ const composed = !!strip.wrapCols && shift === 1 && !first;
2693
+ run.style.marginTop = composed ? `${-(prevPageH + sheetGap)}px` : "";
2694
+ const runX = composed ? prevRunX + (prevVersoShift - strip.versoShift) * PX_PER_PT : 0;
2695
+ run.style.marginLeft = runX ? `${runX}px` : "";
2670
2696
  prevPageH = PX_PER_PT * g.height;
2697
+ prevVersoShift = strip.versoShift;
2698
+ prevRunX = runX;
2671
2699
  first = false;
2672
2700
  if (opts.designer)
2673
2701
  checkOverflow(strip, warnings);
@@ -163,7 +163,7 @@ var preview_shell_default = "./preview-shell-hyp7g158.js";
163
163
  var CGATS21_CRPC1_default = "./CGATS21_CRPC1-g0e3k7kr.icc";
164
164
 
165
165
  // src/assets/engine/gutterpress-viewer.js
166
- var gutterpress_viewer_default = "./gutterpress-viewer-spq1ge52.js";
166
+ var gutterpress_viewer_default = "./gutterpress-viewer-k4mpqjh0.js";
167
167
 
168
168
  // src/assets/engine/gutterpress-agent.js
169
169
  var gutterpress_agent_default = "./gutterpress-agent-cazqstr1.js";
@@ -19,7 +19,7 @@ import {
19
19
  stringValueAt,
20
20
  toFolioPage,
21
21
  wantsRecto
22
- } from "./index-t3zxy69d.js";
22
+ } from "./index-b81jc99n.js";
23
23
  import {
24
24
  launchChromium
25
25
  } from "./index-rzm1phg0.js";
@@ -9,7 +9,7 @@ import {
9
9
  getAssetsDir,
10
10
  lastPageMode,
11
11
  parseSize
12
- } from "./index-t3zxy69d.js";
12
+ } from "./index-b81jc99n.js";
13
13
  import {
14
14
  INSTALL_HINTS,
15
15
  execCapture,
@@ -5750,7 +5750,7 @@ import git from "isomorphic-git";
5750
5750
  // package.json
5751
5751
  var package_default = {
5752
5752
  name: "gutterpress",
5753
- version: "0.11.18-alpha.2",
5753
+ version: "0.11.18-alpha.3",
5754
5754
  description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
5755
5755
  author: "itlackey",
5756
5756
  license: "MPL-2.0",
@@ -10306,7 +10306,7 @@ class PdfOutput {
10306
10306
  const rawPdf = pdfxMode ? path13.join(stage, "raw.pdf") : path13.resolve(pdfFile);
10307
10307
  await fsp2.mkdir(path13.dirname(path13.resolve(pdfFile)), { recursive: true });
10308
10308
  log.info("Rendering HTML to PDF via the Gutterpress engine (native Chromium pagination)");
10309
- const { buildNativePdf } = await import("./engine-7gfr16t8.js");
10309
+ const { buildNativePdf } = await import("./engine-68avsbe2.js");
10310
10310
  const engineDiagnostics = await buildNativePdf(htmlFile, rawPdf, {
10311
10311
  title: config.title,
10312
10312
  author: config.authors.length > 0 ? config.authors.join(", ") : undefined,
package/dist/index.js CHANGED
@@ -153,14 +153,14 @@ import {
153
153
  testRemoteAccess,
154
154
  updateExtensions,
155
155
  validateProjectExtensions
156
- } from "./index-bb2d1ev8.js";
156
+ } from "./index-rpc74pqb.js";
157
157
  import"./index-ht1bcqdd.js";
158
158
  import {
159
159
  BUILD_DIAGNOSTIC_CODES
160
- } from "./index-3x23by5j.js";
160
+ } from "./index-q88g67zg.js";
161
161
  import {
162
162
  BuildError
163
- } from "./index-t3zxy69d.js";
163
+ } from "./index-b81jc99n.js";
164
164
  import {
165
165
  DEFAULT_PRINT_OPTS,
166
166
  assertMilestone,
@@ -7,17 +7,17 @@ import {
7
7
  TARGET_IDS,
8
8
  scaffoldExtension,
9
9
  scaffoldProject
10
- } from "./cli-0w3961p5.js";
10
+ } from "./cli-72r4c2k4.js";
11
11
  import {
12
12
  resolveGhostscript
13
- } from "./cli-qp6dtsh3.js";
13
+ } from "./cli-12aq78aq.js";
14
14
  import {
15
15
  UsageError,
16
16
  rejectExtraPositionals,
17
17
  rejectUnknownFlags
18
- } from "./cli-yqpnksaa.js";
18
+ } from "./cli-z835nehj.js";
19
19
  import"./cli-ht1bcqdd.js";
20
- import"./cli-161z4n0s.js";
20
+ import"./cli-zrs92eef.js";
21
21
  import {
22
22
  EXIT_CODES
23
23
  } from "./cli-46ycxe6r.js";
@@ -2,17 +2,17 @@ import {
2
2
  executeValidation,
3
3
  publishTargetFor,
4
4
  reportMissingTools
5
- } from "./cli-0w3961p5.js";
5
+ } from "./cli-72r4c2k4.js";
6
6
  import {
7
7
  log
8
- } from "./cli-qp6dtsh3.js";
8
+ } from "./cli-12aq78aq.js";
9
9
  import {
10
10
  UsageError,
11
11
  rejectExtraPositionals,
12
12
  rejectUnknownFlags
13
- } from "./cli-yqpnksaa.js";
13
+ } from "./cli-z835nehj.js";
14
14
  import"./cli-ht1bcqdd.js";
15
- import"./cli-161z4n0s.js";
15
+ import"./cli-zrs92eef.js";
16
16
  import {
17
17
  BuildError,
18
18
  EXIT_CODES
@@ -7,10 +7,10 @@ import {
7
7
  runBuild,
8
8
  splitOutPath,
9
9
  startPreviewServer
10
- } from "./cli-0w3961p5.js";
10
+ } from "./cli-72r4c2k4.js";
11
11
  import {
12
12
  log
13
- } from "./cli-qp6dtsh3.js";
13
+ } from "./cli-12aq78aq.js";
14
14
  import {
15
15
  UsageError,
16
16
  parseFormat,
@@ -18,9 +18,9 @@ import {
18
18
  rejectExtraPositionals,
19
19
  rejectUnknownFlags,
20
20
  resolvePort
21
- } from "./cli-yqpnksaa.js";
21
+ } from "./cli-z835nehj.js";
22
22
  import"./cli-ht1bcqdd.js";
23
- import"./cli-161z4n0s.js";
23
+ import"./cli-zrs92eef.js";
24
24
  import {
25
25
  BuildError
26
26
  } from "./cli-46ycxe6r.js";
@@ -11,18 +11,18 @@ import {
11
11
  publishProviderFor,
12
12
  resolvePublishFormat,
13
13
  runPublish
14
- } from "./cli-0w3961p5.js";
14
+ } from "./cli-72r4c2k4.js";
15
15
  import {
16
16
  FileTokenStore,
17
17
  log
18
- } from "./cli-qp6dtsh3.js";
18
+ } from "./cli-12aq78aq.js";
19
19
  import {
20
20
  UsageError,
21
21
  rejectExtraPositionals,
22
22
  rejectUnknownFlags
23
- } from "./cli-yqpnksaa.js";
23
+ } from "./cli-z835nehj.js";
24
24
  import"./cli-ht1bcqdd.js";
25
- import"./cli-161z4n0s.js";
25
+ import"./cli-zrs92eef.js";
26
26
  import {
27
27
  EXIT_CODES
28
28
  } from "./cli-46ycxe6r.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  executeAndReport
3
- } from "./cli-0w3961p5.js";
3
+ } from "./cli-72r4c2k4.js";
4
4
  import {
5
5
  log
6
- } from "./cli-qp6dtsh3.js";
6
+ } from "./cli-12aq78aq.js";
7
7
  import {
8
8
  UsageError,
9
9
  rejectExtraPositionals,
10
10
  rejectUnknownFlags
11
- } from "./cli-yqpnksaa.js";
11
+ } from "./cli-z835nehj.js";
12
12
  import"./cli-ht1bcqdd.js";
13
- import"./cli-161z4n0s.js";
13
+ import"./cli-zrs92eef.js";
14
14
  import {
15
15
  BuildError,
16
16
  EXIT_CODES
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gutterpress",
3
- "version": "0.11.18-alpha.2",
3
+ "version": "0.11.18-alpha.3",
4
4
  "description": "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
5
5
  "author": "itlackey",
6
6
  "license": "MPL-2.0",