gutterpress 0.11.22-alpha.3 → 0.11.22-alpha.4
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 +4 -4
- package/dist/{build-shby4bg7.js → build-49yq6pc8.js} +8 -8
- package/dist/{cli-0s8sy5n9.js → cli-1rnvq4ks.js} +1 -1
- package/dist/{cli-hndkg7bn.js → cli-2mjjt93j.js} +1 -1
- package/dist/{cli-9pk65fqf.js → cli-hfarsrcs.js} +1 -1
- package/dist/{cli-17g57c61.js → cli-jh793snx.js} +15 -10
- package/dist/{cli-sge5cp21.js → cli-r6eyzfmh.js} +3 -3
- package/dist/{cli-d0x3aq49.js → cli-rbhq8khk.js} +1 -1
- package/dist/{cli-3p7jejyd.js → cli-t4ayrvm2.js} +1 -1
- package/dist/{cli-nqvrp9wk.js → cli-xrj31ksc.js} +1 -1
- package/dist/cli.js +12 -12
- package/dist/{doctor-c6k6ycek.js → doctor-b3j9dn3f.js} +3 -3
- package/dist/{engine-9710cd7x.js → engine-9yn1f2mc.js} +2 -2
- package/dist/{engine-5p8tn9b4.js → engine-z4hjvrr3.js} +2 -2
- package/dist/{ext-t8re6kc7.js → ext-hcvyk1e9.js} +8 -8
- package/dist/{extension-restore-4rqvzzw4.js → extension-restore-3af0sg3p.js} +5 -5
- package/dist/{extension-restore-3gsj0qxp.js → extension-restore-x18zfya9.js} +3 -3
- package/dist/{index-p1a596m0.js → index-7srdaczc.js} +12 -7
- package/dist/{index-2d8j0enc.js → index-9004hfk5.js} +1 -1
- package/dist/{index-thmwa4f5.js → index-91v1q6fd.js} +1 -1
- package/dist/{index-xe83m9mc.js → index-bsbat9zm.js} +2 -2
- package/dist/{index-jsz0s3dy.js → index-hkxn3gwz.js} +1 -1
- package/dist/index.js +5 -5
- package/dist/{manifest.schema-nvawq0xv.json → manifest.schema-399bx3vc.json} +1 -1
- package/dist/{new-w3wdd615.js → new-vgqa0ycb.js} +8 -8
- package/dist/{plugins-8x9rsf21.js → plugins-axnpg8qz.js} +1 -1
- package/dist/{plugins-cx4qwn7g.js → plugins-vb1vntbt.js} +3 -3
- package/dist/{preflight-aj2tpnxe.js → preflight-42v663pj.js} +8 -8
- package/dist/{preview-dn5655f1.js → preview-trcvemnq.js} +8 -8
- package/dist/{publish-e0p9wgpd.js → publish-4r4qr3qe.js} +8 -8
- package/dist/schema/manifest.types.d.ts +1 -1
- package/dist/{validate-6wvf4mhr.js → validate-6q7gh7a3.js} +8 -8
- package/package.json +1 -1
package/dist/api/index.js
CHANGED
|
@@ -101,7 +101,7 @@ import {
|
|
|
101
101
|
substituteVariables,
|
|
102
102
|
syncProject,
|
|
103
103
|
testRemoteAccess
|
|
104
|
-
} from "../index-
|
|
104
|
+
} from "../index-7srdaczc.js";
|
|
105
105
|
import {
|
|
106
106
|
BUILT_IN_STYLE_SET_IDS,
|
|
107
107
|
BUNDLED_EXTENSIONS,
|
|
@@ -138,7 +138,7 @@ import {
|
|
|
138
138
|
setExtensionEnabled,
|
|
139
139
|
updateExtensions,
|
|
140
140
|
validateProjectExtensions
|
|
141
|
-
} from "../index-
|
|
141
|
+
} from "../index-bsbat9zm.js";
|
|
142
142
|
import {
|
|
143
143
|
EXTENSION_MANIFEST_FILENAME,
|
|
144
144
|
assertExtensionContained,
|
|
@@ -148,12 +148,12 @@ import {
|
|
|
148
148
|
pathEscapesFolder,
|
|
149
149
|
readExtensionMeta,
|
|
150
150
|
resolveExtension
|
|
151
|
-
} from "../index-
|
|
151
|
+
} from "../index-91v1q6fd.js";
|
|
152
152
|
import"../index-ht1bcqdd.js";
|
|
153
153
|
import"../index-apc8w9w8.js";
|
|
154
154
|
import {
|
|
155
155
|
BuildError
|
|
156
|
-
} from "../index-
|
|
156
|
+
} from "../index-hkxn3gwz.js";
|
|
157
157
|
import"../index-2ppw6q9v.js";
|
|
158
158
|
import {
|
|
159
159
|
DEFAULT_PRINT_OPTS,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runBuild,
|
|
3
3
|
splitOutPath
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
4
|
+
} from "./cli-jh793snx.js";
|
|
5
|
+
import"./cli-rbhq8khk.js";
|
|
6
6
|
import"./cli-ht1bcqdd.js";
|
|
7
|
-
import"./cli-
|
|
7
|
+
import"./cli-hfarsrcs.js";
|
|
8
8
|
import"./cli-2ppw6q9v.js";
|
|
9
9
|
import"./cli-eyyggect.js";
|
|
10
10
|
import"./cli-asap4t1z.js";
|
|
11
11
|
import"./cli-habkc5ng.js";
|
|
12
12
|
import"./cli-v5mp7a6q.js";
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
13
|
+
import"./cli-r6eyzfmh.js";
|
|
14
|
+
import"./cli-1rnvq4ks.js";
|
|
15
15
|
import {
|
|
16
16
|
log
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-t4ayrvm2.js";
|
|
18
18
|
import {
|
|
19
19
|
UsageError,
|
|
20
20
|
parseFormat,
|
|
@@ -22,8 +22,8 @@ import {
|
|
|
22
22
|
rejectExtraPositionals,
|
|
23
23
|
rejectUnknownFlags
|
|
24
24
|
} from "./cli-d8xjns66.js";
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
25
|
+
import"./cli-xrj31ksc.js";
|
|
26
|
+
import"./cli-2mjjt93j.js";
|
|
27
27
|
import {
|
|
28
28
|
BuildError
|
|
29
29
|
} from "./cli-46ycxe6r.js";
|
|
@@ -9,7 +9,7 @@ import { fileURLToPath } from "node:url";
|
|
|
9
9
|
var favicon_default = "./favicon-272ga6y0.ico";
|
|
10
10
|
|
|
11
11
|
// src/assets/manifest.schema.json
|
|
12
|
-
var manifest_schema_default = "./manifest.schema-
|
|
12
|
+
var manifest_schema_default = "./manifest.schema-399bx3vc.json";
|
|
13
13
|
|
|
14
14
|
// src/assets/preview/scripts/preview-interface.js
|
|
15
15
|
var preview_interface_default = "./preview-interface-nnmrxyqm.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
stampCreator,
|
|
9
9
|
stripAnnotations,
|
|
10
10
|
transparentPages
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-rbhq8khk.js";
|
|
12
12
|
import {
|
|
13
13
|
blackTextToGray
|
|
14
14
|
} from "./cli-ht1bcqdd.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
extract,
|
|
18
18
|
lastPageMode,
|
|
19
19
|
resolvePage
|
|
20
|
-
} from "./cli-
|
|
20
|
+
} from "./cli-hfarsrcs.js";
|
|
21
21
|
import {
|
|
22
22
|
countLinkAnnotations,
|
|
23
23
|
getImageResolutions,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
uniqueExtensionId,
|
|
71
71
|
withFetchTimeout,
|
|
72
72
|
writeManifestDoc
|
|
73
|
-
} from "./cli-
|
|
73
|
+
} from "./cli-r6eyzfmh.js";
|
|
74
74
|
import {
|
|
75
75
|
EXTENSION_MANIFEST_FILENAME,
|
|
76
76
|
GUTTERPRESS_CSS,
|
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
readExtensionMeta,
|
|
92
92
|
resolveDeclaredStyles,
|
|
93
93
|
slugify
|
|
94
|
-
} from "./cli-
|
|
94
|
+
} from "./cli-1rnvq4ks.js";
|
|
95
95
|
import {
|
|
96
96
|
PACKAGE_META,
|
|
97
97
|
PACKAGE_VERSION,
|
|
@@ -101,7 +101,7 @@ import {
|
|
|
101
101
|
log,
|
|
102
102
|
setLogLevel,
|
|
103
103
|
warn
|
|
104
|
-
} from "./cli-
|
|
104
|
+
} from "./cli-t4ayrvm2.js";
|
|
105
105
|
import {
|
|
106
106
|
DEBOUNCE,
|
|
107
107
|
UsageError,
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
} from "./cli-d8xjns66.js";
|
|
110
110
|
import {
|
|
111
111
|
getAssetPath
|
|
112
|
-
} from "./cli-
|
|
112
|
+
} from "./cli-2mjjt93j.js";
|
|
113
113
|
import {
|
|
114
114
|
BuildError
|
|
115
115
|
} from "./cli-46ycxe6r.js";
|
|
@@ -635,14 +635,19 @@ async function getPerPageInkCoverage(pdfPath) {
|
|
|
635
635
|
if (!ghostscript) {
|
|
636
636
|
throw new Error("Ghostscript executable not found. Install Ghostscript or set GHOSTSCRIPT_PATH.");
|
|
637
637
|
}
|
|
638
|
-
const { stdout } = await execCapture(ghostscript, [
|
|
638
|
+
const { stdout, stderr } = await execCapture(ghostscript, [
|
|
639
639
|
"-q",
|
|
640
640
|
"-dBATCH",
|
|
641
641
|
"-dNOPAUSE",
|
|
642
642
|
"-sDEVICE=inkcov",
|
|
643
|
+
"-sOutputFile=-",
|
|
643
644
|
pdfPath
|
|
644
645
|
]);
|
|
645
646
|
const pages = parseInkCov(stdout);
|
|
647
|
+
if (pages.length === 0) {
|
|
648
|
+
const reason = stderr.trim().split(/\r?\n/)[0];
|
|
649
|
+
throw new Error(`Ghostscript inkcov produced no per-page data${reason ? `: ${reason}` : ""}`);
|
|
650
|
+
}
|
|
646
651
|
return {
|
|
647
652
|
ok: true,
|
|
648
653
|
pages: pages.map((p, i) => ({
|
|
@@ -5207,7 +5212,7 @@ class PdfOutput {
|
|
|
5207
5212
|
const rawPdf = pdfxMode ? path7.join(stage, "raw.pdf") : path7.resolve(pdfFile);
|
|
5208
5213
|
await fsp2.mkdir(path7.dirname(path7.resolve(pdfFile)), { recursive: true });
|
|
5209
5214
|
log.info("Rendering HTML to PDF via the Gutterpress engine (native Chromium pagination)");
|
|
5210
|
-
const { buildNativePdf } = await import("./engine-
|
|
5215
|
+
const { buildNativePdf } = await import("./engine-z4hjvrr3.js");
|
|
5211
5216
|
const engineDiagnostics = await buildNativePdf(htmlFile, rawPdf, {
|
|
5212
5217
|
title: config.title,
|
|
5213
5218
|
author: config.authors.length > 0 ? config.authors.join(", ") : undefined,
|
|
@@ -9018,7 +9023,7 @@ async function resolvePublishProvider(id, book) {
|
|
|
9018
9023
|
const ext = await bookExtensions(book);
|
|
9019
9024
|
const npmEntry = ext.extensions.some((c) => !c.path && c.name === id);
|
|
9020
9025
|
if (npmEntry) {
|
|
9021
|
-
const { restoreForCommand: restoreForCommand2 } = await import("./extension-restore-
|
|
9026
|
+
const { restoreForCommand: restoreForCommand2 } = await import("./extension-restore-3af0sg3p.js");
|
|
9022
9027
|
await restoreForCommand2(book.projectDir, { manifestPath: book.manifestPath, failFast: true });
|
|
9023
9028
|
}
|
|
9024
9029
|
const publishers = await discover(ext);
|
|
@@ -9056,7 +9061,7 @@ function infoFor(p) {
|
|
|
9056
9061
|
}
|
|
9057
9062
|
function pluginProvider(p) {
|
|
9058
9063
|
let loading;
|
|
9059
|
-
const load = () => loading ??= import("./plugins-
|
|
9064
|
+
const load = () => loading ??= import("./plugins-vb1vntbt.js").then((m) => m.loadPublishFunction(p));
|
|
9060
9065
|
return {
|
|
9061
9066
|
info: infoFor(p),
|
|
9062
9067
|
async authenticate() {
|
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
prettify,
|
|
8
8
|
readExtensionMeta,
|
|
9
9
|
slugify
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-1rnvq4ks.js";
|
|
11
11
|
import {
|
|
12
12
|
log
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-t4ayrvm2.js";
|
|
14
14
|
import {
|
|
15
15
|
UsageError
|
|
16
16
|
} from "./cli-d8xjns66.js";
|
|
17
17
|
import {
|
|
18
18
|
getAssetsDir
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-2mjjt93j.js";
|
|
20
20
|
import {
|
|
21
21
|
BuildError,
|
|
22
22
|
EXIT_CODES
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// package.json
|
|
2
2
|
var package_default = {
|
|
3
3
|
name: "gutterpress",
|
|
4
|
-
version: "0.11.22-alpha.
|
|
4
|
+
version: "0.11.22-alpha.4",
|
|
5
5
|
description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
|
|
6
6
|
author: "itlackey",
|
|
7
7
|
license: "MPL-2.0",
|
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./cli-d8xjns66.js";
|
|
9
9
|
import {
|
|
10
10
|
package_default
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-xrj31ksc.js";
|
|
12
12
|
import {
|
|
13
13
|
EXIT_CODES
|
|
14
14
|
} from "./cli-46ycxe6r.js";
|
|
@@ -20,14 +20,14 @@ import {
|
|
|
20
20
|
import { defineCommand, parseArgs, runMain } from "citty";
|
|
21
21
|
import { statSync } from "node:fs";
|
|
22
22
|
var SUBCOMMANDS = {
|
|
23
|
-
new: () => import("./new-
|
|
24
|
-
preview: () => import("./preview-
|
|
25
|
-
build: () => import("./build-
|
|
26
|
-
publish: () => import("./publish-
|
|
27
|
-
validate: () => import("./validate-
|
|
28
|
-
preflight: () => import("./preflight-
|
|
29
|
-
doctor: () => import("./doctor-
|
|
30
|
-
ext: () => import("./ext-
|
|
23
|
+
new: () => import("./new-vgqa0ycb.js").then((m) => m.default),
|
|
24
|
+
preview: () => import("./preview-trcvemnq.js").then((m) => m.default),
|
|
25
|
+
build: () => import("./build-49yq6pc8.js").then((m) => m.default),
|
|
26
|
+
publish: () => import("./publish-4r4qr3qe.js").then((m) => m.default),
|
|
27
|
+
validate: () => import("./validate-6q7gh7a3.js").then((m) => m.default),
|
|
28
|
+
preflight: () => import("./preflight-42v663pj.js").then((m) => m.default),
|
|
29
|
+
doctor: () => import("./doctor-b3j9dn3f.js").then((m) => m.default),
|
|
30
|
+
ext: () => import("./ext-hcvyk1e9.js").then((m) => m.default)
|
|
31
31
|
};
|
|
32
32
|
var VERSION = package_default.version;
|
|
33
33
|
var main = defineCommand({
|
|
@@ -52,7 +52,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
52
52
|
const [command, ...commandArgs] = rawArgs;
|
|
53
53
|
try {
|
|
54
54
|
if (command === "new") {
|
|
55
|
-
const { newArgs } = await import("./new-
|
|
55
|
+
const { newArgs } = await import("./new-vgqa0ycb.js");
|
|
56
56
|
rejectUnknownFlags(commandArgs, newArgs, "new");
|
|
57
57
|
const parsed = parseArgs(commandArgs, {
|
|
58
58
|
...newArgs,
|
|
@@ -64,7 +64,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
66
|
if (command === "preflight") {
|
|
67
|
-
const { preflightArgs } = await import("./preflight-
|
|
67
|
+
const { preflightArgs } = await import("./preflight-42v663pj.js");
|
|
68
68
|
rejectUnknownFlags(commandArgs, preflightArgs, "preflight");
|
|
69
69
|
const parsed = parseArgs(commandArgs, {
|
|
70
70
|
...preflightArgs,
|
|
@@ -84,7 +84,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
84
84
|
}
|
|
85
85
|
if (subcommand.startsWith("-"))
|
|
86
86
|
return;
|
|
87
|
-
const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-
|
|
87
|
+
const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-hcvyk1e9.js");
|
|
88
88
|
if (!EXT_SUBCOMMANDS.includes(subcommand)) {
|
|
89
89
|
throw new UsageError(`gutterpress ext: unknown command "${subcommand}"`);
|
|
90
90
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSystemDiagnostics
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-rbhq8khk.js";
|
|
4
4
|
import"./cli-asap4t1z.js";
|
|
5
5
|
import {
|
|
6
6
|
log
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-t4ayrvm2.js";
|
|
8
8
|
import {
|
|
9
9
|
UsageError,
|
|
10
10
|
rejectExtraPositionals,
|
|
11
11
|
rejectUnknownFlags
|
|
12
12
|
} from "./cli-d8xjns66.js";
|
|
13
|
-
import"./cli-
|
|
13
|
+
import"./cli-xrj31ksc.js";
|
|
14
14
|
import"./cli-46ycxe6r.js";
|
|
15
15
|
import"./cli-37x76zdn.js";
|
|
16
16
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
build
|
|
3
|
-
} from "./index-
|
|
3
|
+
} from "./index-9004hfk5.js";
|
|
4
4
|
import"./index-apc8w9w8.js";
|
|
5
5
|
import {
|
|
6
6
|
BuildError
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-hkxn3gwz.js";
|
|
8
8
|
import"./index-bt0qws5c.js";
|
|
9
9
|
import"./index-37x76zdn.js";
|
|
10
10
|
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
importExtensionFromFile,
|
|
3
3
|
importExtensionFromUrl,
|
|
4
4
|
searchNpmExtensions
|
|
5
|
-
} from "./cli-
|
|
6
|
-
import"./cli-
|
|
5
|
+
} from "./cli-jh793snx.js";
|
|
6
|
+
import"./cli-rbhq8khk.js";
|
|
7
7
|
import"./cli-ht1bcqdd.js";
|
|
8
|
-
import"./cli-
|
|
8
|
+
import"./cli-hfarsrcs.js";
|
|
9
9
|
import"./cli-2ppw6q9v.js";
|
|
10
10
|
import"./cli-eyyggect.js";
|
|
11
11
|
import"./cli-asap4t1z.js";
|
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
removeExtension,
|
|
23
23
|
setExtensionEnabled,
|
|
24
24
|
updateExtensions
|
|
25
|
-
} from "./cli-
|
|
26
|
-
import"./cli-
|
|
27
|
-
import"./cli-
|
|
25
|
+
} from "./cli-r6eyzfmh.js";
|
|
26
|
+
import"./cli-1rnvq4ks.js";
|
|
27
|
+
import"./cli-t4ayrvm2.js";
|
|
28
28
|
import {
|
|
29
29
|
UsageError,
|
|
30
30
|
exitForUsage,
|
|
@@ -32,8 +32,8 @@ import {
|
|
|
32
32
|
rejectUnknownFlags,
|
|
33
33
|
resolveProjectDir
|
|
34
34
|
} from "./cli-d8xjns66.js";
|
|
35
|
-
import"./cli-
|
|
36
|
-
import"./cli-
|
|
35
|
+
import"./cli-xrj31ksc.js";
|
|
36
|
+
import"./cli-2mjjt93j.js";
|
|
37
37
|
import {
|
|
38
38
|
EXIT_CODES
|
|
39
39
|
} from "./cli-46ycxe6r.js";
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
restoreForCommand,
|
|
4
4
|
restoreOfflineMessage,
|
|
5
5
|
restorePinnedExtensions
|
|
6
|
-
} from "./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
6
|
+
} from "./cli-r6eyzfmh.js";
|
|
7
|
+
import"./cli-1rnvq4ks.js";
|
|
8
|
+
import"./cli-t4ayrvm2.js";
|
|
9
9
|
import"./cli-d8xjns66.js";
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
10
|
+
import"./cli-xrj31ksc.js";
|
|
11
|
+
import"./cli-2mjjt93j.js";
|
|
12
12
|
import"./cli-46ycxe6r.js";
|
|
13
13
|
import"./cli-h3phdstf.js";
|
|
14
14
|
import"./cli-37x76zdn.js";
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
restoreForCommand,
|
|
4
4
|
restoreOfflineMessage,
|
|
5
5
|
restorePinnedExtensions
|
|
6
|
-
} from "./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
6
|
+
} from "./index-bsbat9zm.js";
|
|
7
|
+
import"./index-91v1q6fd.js";
|
|
8
|
+
import"./index-hkxn3gwz.js";
|
|
9
9
|
import"./index-r7jcsk6h.js";
|
|
10
10
|
import"./index-37x76zdn.js";
|
|
11
11
|
export {
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
uniqueExtensionId,
|
|
30
30
|
withFetchTimeout,
|
|
31
31
|
writeManifestDoc
|
|
32
|
-
} from "./index-
|
|
32
|
+
} from "./index-bsbat9zm.js";
|
|
33
33
|
import {
|
|
34
34
|
EXTENSION_MANIFEST_FILENAME,
|
|
35
35
|
GUTTERPRESS_CSS,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
setLogLevel,
|
|
65
65
|
slugify,
|
|
66
66
|
warn
|
|
67
|
-
} from "./index-
|
|
67
|
+
} from "./index-91v1q6fd.js";
|
|
68
68
|
import {
|
|
69
69
|
blackTextToGray
|
|
70
70
|
} from "./index-ht1bcqdd.js";
|
|
@@ -78,7 +78,7 @@ import {
|
|
|
78
78
|
import {
|
|
79
79
|
BuildError,
|
|
80
80
|
getAssetPath
|
|
81
|
-
} from "./index-
|
|
81
|
+
} from "./index-hkxn3gwz.js";
|
|
82
82
|
import {
|
|
83
83
|
countLinkAnnotations,
|
|
84
84
|
getImageResolutions,
|
|
@@ -2176,14 +2176,19 @@ async function getPerPageInkCoverage(pdfPath) {
|
|
|
2176
2176
|
if (!ghostscript) {
|
|
2177
2177
|
throw new Error("Ghostscript executable not found. Install Ghostscript or set GHOSTSCRIPT_PATH.");
|
|
2178
2178
|
}
|
|
2179
|
-
const { stdout } = await execCapture(ghostscript, [
|
|
2179
|
+
const { stdout, stderr } = await execCapture(ghostscript, [
|
|
2180
2180
|
"-q",
|
|
2181
2181
|
"-dBATCH",
|
|
2182
2182
|
"-dNOPAUSE",
|
|
2183
2183
|
"-sDEVICE=inkcov",
|
|
2184
|
+
"-sOutputFile=-",
|
|
2184
2185
|
pdfPath
|
|
2185
2186
|
]);
|
|
2186
2187
|
const pages = parseInkCov(stdout);
|
|
2188
|
+
if (pages.length === 0) {
|
|
2189
|
+
const reason = stderr.trim().split(/\r?\n/)[0];
|
|
2190
|
+
throw new Error(`Ghostscript inkcov produced no per-page data${reason ? `: ${reason}` : ""}`);
|
|
2191
|
+
}
|
|
2187
2192
|
return {
|
|
2188
2193
|
ok: true,
|
|
2189
2194
|
pages: pages.map((p, i) => ({
|
|
@@ -5668,7 +5673,7 @@ class PdfOutput {
|
|
|
5668
5673
|
const rawPdf = pdfxMode ? path7.join(stage, "raw.pdf") : path7.resolve(pdfFile);
|
|
5669
5674
|
await fsp2.mkdir(path7.dirname(path7.resolve(pdfFile)), { recursive: true });
|
|
5670
5675
|
log.info("Rendering HTML to PDF via the Gutterpress engine (native Chromium pagination)");
|
|
5671
|
-
const { buildNativePdf } = await import("./engine-
|
|
5676
|
+
const { buildNativePdf } = await import("./engine-9yn1f2mc.js");
|
|
5672
5677
|
const engineDiagnostics = await buildNativePdf(htmlFile, rawPdf, {
|
|
5673
5678
|
title: config.title,
|
|
5674
5679
|
author: config.authors.length > 0 ? config.authors.join(", ") : undefined,
|
|
@@ -12624,7 +12629,7 @@ async function resolvePublishProvider(id, book) {
|
|
|
12624
12629
|
const ext = await bookExtensions(book);
|
|
12625
12630
|
const npmEntry = ext.extensions.some((c) => !c.path && c.name === id);
|
|
12626
12631
|
if (npmEntry) {
|
|
12627
|
-
const { restoreForCommand: restoreForCommand2 } = await import("./extension-restore-
|
|
12632
|
+
const { restoreForCommand: restoreForCommand2 } = await import("./extension-restore-x18zfya9.js");
|
|
12628
12633
|
await restoreForCommand2(book.projectDir, { manifestPath: book.manifestPath, failFast: true });
|
|
12629
12634
|
}
|
|
12630
12635
|
const publishers = await discover(ext);
|
|
@@ -12662,7 +12667,7 @@ function infoFor(p) {
|
|
|
12662
12667
|
}
|
|
12663
12668
|
function pluginProvider(p) {
|
|
12664
12669
|
let loading;
|
|
12665
|
-
const load = () => loading ??= import("./plugins-
|
|
12670
|
+
const load = () => loading ??= import("./plugins-axnpg8qz.js").then((m) => m.loadPublishFunction(p));
|
|
12666
12671
|
return {
|
|
12667
12672
|
info: infoFor(p),
|
|
12668
12673
|
async authenticate() {
|
|
@@ -37,7 +37,7 @@ import { satisfies, validRange } from "semver";
|
|
|
37
37
|
// package.json
|
|
38
38
|
var package_default = {
|
|
39
39
|
name: "gutterpress",
|
|
40
|
-
version: "0.11.22-alpha.
|
|
40
|
+
version: "0.11.22-alpha.4",
|
|
41
41
|
description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
|
|
42
42
|
author: "itlackey",
|
|
43
43
|
license: "MPL-2.0",
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
readExtensionMeta,
|
|
10
10
|
resolveExtension,
|
|
11
11
|
slugify
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-91v1q6fd.js";
|
|
13
13
|
import {
|
|
14
14
|
BuildError,
|
|
15
15
|
EXIT_CODES,
|
|
16
16
|
getAssetsDir
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-hkxn3gwz.js";
|
|
18
18
|
import {
|
|
19
19
|
PLUGINS_DIR,
|
|
20
20
|
VENDORED_NPM_DIR,
|
|
@@ -26,7 +26,7 @@ import { fileURLToPath } from "node:url";
|
|
|
26
26
|
var favicon_default = "./favicon-272ga6y0.ico";
|
|
27
27
|
|
|
28
28
|
// src/assets/manifest.schema.json
|
|
29
|
-
var manifest_schema_default = "./manifest.schema-
|
|
29
|
+
var manifest_schema_default = "./manifest.schema-399bx3vc.json";
|
|
30
30
|
|
|
31
31
|
// src/assets/preview/scripts/preview-interface.js
|
|
32
32
|
var preview_interface_default = "./preview-interface-nnmrxyqm.js";
|
package/dist/index.js
CHANGED
|
@@ -116,7 +116,7 @@ import {
|
|
|
116
116
|
substituteVariables,
|
|
117
117
|
syncProject,
|
|
118
118
|
testRemoteAccess
|
|
119
|
-
} from "./index-
|
|
119
|
+
} from "./index-7srdaczc.js";
|
|
120
120
|
import {
|
|
121
121
|
BUILT_IN_STYLE_SET_IDS,
|
|
122
122
|
BUNDLED_EXTENSIONS,
|
|
@@ -154,7 +154,7 @@ import {
|
|
|
154
154
|
setExtensionEnabled,
|
|
155
155
|
updateExtensions,
|
|
156
156
|
validateProjectExtensions
|
|
157
|
-
} from "./index-
|
|
157
|
+
} from "./index-bsbat9zm.js";
|
|
158
158
|
import {
|
|
159
159
|
EXTENSION_MANIFEST_FILENAME,
|
|
160
160
|
assertExtensionContained,
|
|
@@ -165,15 +165,15 @@ import {
|
|
|
165
165
|
pathEscapesFolder,
|
|
166
166
|
readExtensionMeta,
|
|
167
167
|
resolveExtension
|
|
168
|
-
} from "./index-
|
|
168
|
+
} from "./index-91v1q6fd.js";
|
|
169
169
|
import"./index-ht1bcqdd.js";
|
|
170
170
|
import {
|
|
171
171
|
BUILD_DIAGNOSTIC_CODES
|
|
172
|
-
} from "./index-
|
|
172
|
+
} from "./index-9004hfk5.js";
|
|
173
173
|
import"./index-apc8w9w8.js";
|
|
174
174
|
import {
|
|
175
175
|
BuildError
|
|
176
|
-
} from "./index-
|
|
176
|
+
} from "./index-hkxn3gwz.js";
|
|
177
177
|
import"./index-2ppw6q9v.js";
|
|
178
178
|
import {
|
|
179
179
|
DEFAULT_PRINT_OPTS,
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
},
|
|
241
241
|
"gutter": {
|
|
242
242
|
"type": "number",
|
|
243
|
-
"description": "The binding allowance, in points: how far content stays from the spine, measured from the trim at the binding edge (the left edge of a right-hand page, the right edge of a left-hand one). It stands in for `safe` there, for text and for art alike: the preview's overlay draws and judges that edge against it, the `pdf.print.safe-margins` check fails text or an image closer to the spine than it, and an image pinned to the binding edge (`.gp-pin`) sits on it. The other edges keep `safe` and `artSafe`. Use it when your book keeps its text further from the spine than the printer's minimum
|
|
243
|
+
"description": "The binding allowance, in points: how far content stays from the spine, measured from the trim at the binding edge (the left edge of a right-hand page, the right edge of a left-hand one). It stands in for `safe` there, for text and for art alike: the preview's overlay draws and judges that edge against it, the `pdf.print.safe-margins` check fails text or an image closer to the spine than it, and an image pinned to the binding edge (`.gp-pin`) sits on it. The other edges keep `safe` and `artSafe`. Use it when your book keeps its text further from the spine than the printer's minimum, for example 54 (0.75in) where DriveThruRPG asks for 0.5in. Absent = the same as `safe`. Preset default: dtrpg 36 (0.5in, DriveThruRPG's rule for text and non-bleeding art at the binding — the same as its `safe`, declared so a book inherits it visibly); book and custom none.",
|
|
244
244
|
"minimum": 0,
|
|
245
245
|
"examples": [54]
|
|
246
246
|
}
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
EXTENSION_KINDS,
|
|
4
4
|
scaffoldExtension,
|
|
5
5
|
scaffoldProject
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-jh793snx.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveGhostscript
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-rbhq8khk.js";
|
|
10
10
|
import"./cli-ht1bcqdd.js";
|
|
11
|
-
import"./cli-
|
|
11
|
+
import"./cli-hfarsrcs.js";
|
|
12
12
|
import"./cli-2ppw6q9v.js";
|
|
13
13
|
import"./cli-eyyggect.js";
|
|
14
14
|
import {
|
|
@@ -21,16 +21,16 @@ import {
|
|
|
21
21
|
PRESET_IDS,
|
|
22
22
|
TARGETS,
|
|
23
23
|
TARGET_IDS
|
|
24
|
-
} from "./cli-
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
24
|
+
} from "./cli-r6eyzfmh.js";
|
|
25
|
+
import"./cli-1rnvq4ks.js";
|
|
26
|
+
import"./cli-t4ayrvm2.js";
|
|
27
27
|
import {
|
|
28
28
|
UsageError,
|
|
29
29
|
rejectExtraPositionals,
|
|
30
30
|
rejectUnknownFlags
|
|
31
31
|
} from "./cli-d8xjns66.js";
|
|
32
|
-
import"./cli-
|
|
33
|
-
import"./cli-
|
|
32
|
+
import"./cli-xrj31ksc.js";
|
|
33
|
+
import"./cli-2mjjt93j.js";
|
|
34
34
|
import {
|
|
35
35
|
EXIT_CODES
|
|
36
36
|
} from "./cli-46ycxe6r.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
loadPlugins,
|
|
9
9
|
loadPluginsWithCss,
|
|
10
10
|
loadPublishFunction
|
|
11
|
-
} from "./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
11
|
+
} from "./cli-1rnvq4ks.js";
|
|
12
|
+
import"./cli-t4ayrvm2.js";
|
|
13
|
+
import"./cli-xrj31ksc.js";
|
|
14
14
|
import"./cli-h3phdstf.js";
|
|
15
15
|
import"./cli-37x76zdn.js";
|
|
16
16
|
export {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeValidation,
|
|
3
3
|
reportMissingTools
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
4
|
+
} from "./cli-jh793snx.js";
|
|
5
|
+
import"./cli-rbhq8khk.js";
|
|
6
6
|
import"./cli-ht1bcqdd.js";
|
|
7
|
-
import"./cli-
|
|
7
|
+
import"./cli-hfarsrcs.js";
|
|
8
8
|
import"./cli-2ppw6q9v.js";
|
|
9
9
|
import"./cli-eyyggect.js";
|
|
10
10
|
import"./cli-asap4t1z.js";
|
|
@@ -12,18 +12,18 @@ import"./cli-habkc5ng.js";
|
|
|
12
12
|
import"./cli-v5mp7a6q.js";
|
|
13
13
|
import {
|
|
14
14
|
publishTargetFor
|
|
15
|
-
} from "./cli-
|
|
16
|
-
import"./cli-
|
|
15
|
+
} from "./cli-r6eyzfmh.js";
|
|
16
|
+
import"./cli-1rnvq4ks.js";
|
|
17
17
|
import {
|
|
18
18
|
log
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-t4ayrvm2.js";
|
|
20
20
|
import {
|
|
21
21
|
UsageError,
|
|
22
22
|
rejectExtraPositionals,
|
|
23
23
|
rejectUnknownFlags
|
|
24
24
|
} from "./cli-d8xjns66.js";
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
25
|
+
import"./cli-xrj31ksc.js";
|
|
26
|
+
import"./cli-2mjjt93j.js";
|
|
27
27
|
import {
|
|
28
28
|
BuildError,
|
|
29
29
|
EXIT_CODES
|
|
@@ -3,23 +3,23 @@ import {
|
|
|
3
3
|
runBuild,
|
|
4
4
|
splitOutPath,
|
|
5
5
|
startPreviewServer
|
|
6
|
-
} from "./cli-
|
|
7
|
-
import"./cli-
|
|
6
|
+
} from "./cli-jh793snx.js";
|
|
7
|
+
import"./cli-rbhq8khk.js";
|
|
8
8
|
import {
|
|
9
9
|
previewArgs
|
|
10
10
|
} from "./cli-75qkn0k5.js";
|
|
11
11
|
import"./cli-ht1bcqdd.js";
|
|
12
|
-
import"./cli-
|
|
12
|
+
import"./cli-hfarsrcs.js";
|
|
13
13
|
import"./cli-2ppw6q9v.js";
|
|
14
14
|
import"./cli-eyyggect.js";
|
|
15
15
|
import"./cli-asap4t1z.js";
|
|
16
16
|
import"./cli-habkc5ng.js";
|
|
17
17
|
import"./cli-v5mp7a6q.js";
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
18
|
+
import"./cli-r6eyzfmh.js";
|
|
19
|
+
import"./cli-1rnvq4ks.js";
|
|
20
20
|
import {
|
|
21
21
|
log
|
|
22
|
-
} from "./cli-
|
|
22
|
+
} from "./cli-t4ayrvm2.js";
|
|
23
23
|
import {
|
|
24
24
|
UsageError,
|
|
25
25
|
parseFormat,
|
|
@@ -28,8 +28,8 @@ import {
|
|
|
28
28
|
rejectUnknownFlags,
|
|
29
29
|
resolvePort
|
|
30
30
|
} from "./cli-d8xjns66.js";
|
|
31
|
-
import"./cli-
|
|
32
|
-
import"./cli-
|
|
31
|
+
import"./cli-xrj31ksc.js";
|
|
32
|
+
import"./cli-2mjjt93j.js";
|
|
33
33
|
import {
|
|
34
34
|
BuildError
|
|
35
35
|
} from "./cli-46ycxe6r.js";
|
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
resolvePublishFormat,
|
|
11
11
|
resolvePublishProvider,
|
|
12
12
|
runPublish
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-jh793snx.js";
|
|
14
14
|
import {
|
|
15
15
|
FileTokenStore
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-rbhq8khk.js";
|
|
17
17
|
import"./cli-ht1bcqdd.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-hfarsrcs.js";
|
|
19
19
|
import"./cli-2ppw6q9v.js";
|
|
20
20
|
import"./cli-eyyggect.js";
|
|
21
21
|
import"./cli-asap4t1z.js";
|
|
@@ -23,18 +23,18 @@ import"./cli-habkc5ng.js";
|
|
|
23
23
|
import"./cli-v5mp7a6q.js";
|
|
24
24
|
import {
|
|
25
25
|
loadManifestWithPath
|
|
26
|
-
} from "./cli-
|
|
27
|
-
import"./cli-
|
|
26
|
+
} from "./cli-r6eyzfmh.js";
|
|
27
|
+
import"./cli-1rnvq4ks.js";
|
|
28
28
|
import {
|
|
29
29
|
log
|
|
30
|
-
} from "./cli-
|
|
30
|
+
} from "./cli-t4ayrvm2.js";
|
|
31
31
|
import {
|
|
32
32
|
UsageError,
|
|
33
33
|
rejectExtraPositionals,
|
|
34
34
|
rejectUnknownFlags
|
|
35
35
|
} from "./cli-d8xjns66.js";
|
|
36
|
-
import"./cli-
|
|
37
|
-
import"./cli-
|
|
36
|
+
import"./cli-xrj31ksc.js";
|
|
37
|
+
import"./cli-2mjjt93j.js";
|
|
38
38
|
import {
|
|
39
39
|
BuildError,
|
|
40
40
|
EXIT_CODES
|
|
@@ -204,7 +204,7 @@ export interface GutterpressManifest {
|
|
|
204
204
|
* one — measured from the trim. It stands in for `safe` at the binding
|
|
205
205
|
* edge, for text and for art alike, so a book that keeps its text further
|
|
206
206
|
* from the spine than the printer's minimum says so here, not in its CSS
|
|
207
|
-
* (
|
|
207
|
+
* (for example 54 for 0.75in where DriveThruRPG asks for 0.5in).
|
|
208
208
|
* An image pinned to the binding edge sits on it. The other edges keep
|
|
209
209
|
* `safe` and `artSafe`. Absent = the same as `safe`; `dtrpg` sets 36
|
|
210
210
|
* (DriveThruRPG's 0.5in at the binding, the same as its `safe`), `book`
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeAndReport
|
|
3
|
-
} from "./cli-
|
|
4
|
-
import"./cli-
|
|
3
|
+
} from "./cli-jh793snx.js";
|
|
4
|
+
import"./cli-rbhq8khk.js";
|
|
5
5
|
import"./cli-ht1bcqdd.js";
|
|
6
|
-
import"./cli-
|
|
6
|
+
import"./cli-hfarsrcs.js";
|
|
7
7
|
import"./cli-2ppw6q9v.js";
|
|
8
8
|
import"./cli-eyyggect.js";
|
|
9
9
|
import"./cli-asap4t1z.js";
|
|
10
10
|
import"./cli-habkc5ng.js";
|
|
11
11
|
import"./cli-v5mp7a6q.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
12
|
+
import"./cli-r6eyzfmh.js";
|
|
13
|
+
import"./cli-1rnvq4ks.js";
|
|
14
14
|
import {
|
|
15
15
|
log
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-t4ayrvm2.js";
|
|
17
17
|
import {
|
|
18
18
|
UsageError,
|
|
19
19
|
rejectExtraPositionals,
|
|
20
20
|
rejectUnknownFlags
|
|
21
21
|
} from "./cli-d8xjns66.js";
|
|
22
|
-
import"./cli-
|
|
23
|
-
import"./cli-
|
|
22
|
+
import"./cli-xrj31ksc.js";
|
|
23
|
+
import"./cli-2mjjt93j.js";
|
|
24
24
|
import {
|
|
25
25
|
BuildError,
|
|
26
26
|
EXIT_CODES
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gutterpress",
|
|
3
|
-
"version": "0.11.22-alpha.
|
|
3
|
+
"version": "0.11.22-alpha.4",
|
|
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",
|