gutterpress 0.11.20 → 0.11.21

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 (37) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.js +2 -2
  3. package/dist/{build-t49xka15.js → build-0neyk5h6.js} +4 -4
  4. package/dist/checks/asset/extensions.d.ts +9 -5
  5. package/dist/checks/asset/index.d.ts +0 -3
  6. package/dist/checks/pdf/index.d.ts +0 -1
  7. package/dist/checks/types.d.ts +8 -1
  8. package/dist/{cli-cyej3p9v.js → cli-b57adna7.js} +5 -2
  9. package/dist/{cli-stt6691c.js → cli-j0drzb6f.js} +268 -429
  10. package/dist/{cli-8gm4p42f.js → cli-j79451n6.js} +2 -2
  11. package/dist/{cli-nh16svye.js → cli-sqkccnm7.js} +1 -1
  12. package/dist/cli.js +12 -12
  13. package/dist/{doctor-53hq2v2n.js → doctor-fptq8tvn.js} +2 -2
  14. package/dist/{engine-5fw55dfb.js → engine-0b8bt05n.js} +2 -2
  15. package/dist/{engine-4rkhv5ga.js → engine-x07q927h.js} +1 -1
  16. package/dist/{ext-bvgfwtk7.js → ext-gp624t5c.js} +4 -4
  17. package/dist/{gutterpress-agent-yvd8w8my.js → gutterpress-agent-d29ry3ak.js} +5 -1
  18. package/dist/{index-crys9951.js → index-mr72vt8n.js} +2 -2
  19. package/dist/{index-379qafjq.js → index-mr7zs8mv.js} +442 -605
  20. package/dist/{index-yw16cfm8.js → index-t7r8g75c.js} +4 -1
  21. package/dist/index.js +3 -3
  22. package/dist/lib/asset-inline.d.ts +2 -0
  23. package/dist/lib/image-inspect.d.ts +0 -1
  24. package/dist/lib/presets.d.ts +0 -3
  25. package/dist/lib/validation-exec.d.ts +1 -1
  26. package/dist/{manifest.schema-c4wfpg6g.json → manifest.schema-n292sb77.json} +7 -10
  27. package/dist/{new-jzpneexb.js → new-dre6aw05.js} +4 -4
  28. package/dist/{preflight-c0f0s3y1.js → preflight-1k1zkg1p.js} +4 -4
  29. package/dist/{preview-x6wn3vdh.js → preview-dtrksvxf.js} +4 -4
  30. package/dist/{publish-rskr6x6b.js → publish-g1ytnrmr.js} +4 -4
  31. package/dist/schema/manifest.types.d.ts +10 -2
  32. package/dist/{validate-88w89ye7.js → validate-yrrq8639.js} +4 -4
  33. package/package.json +1 -1
  34. package/dist/checks/asset/image-color-space.d.ts +0 -3
  35. package/dist/checks/asset/image-resolution.d.ts +0 -3
  36. package/dist/checks/asset/image-tac.d.ts +0 -3
  37. package/dist/checks/pdf/rasterized-pages.d.ts +0 -3
package/README.md CHANGED
@@ -316,7 +316,7 @@ Two narrowed runs replace the former `lint` and `audit` commands (removed in
316
316
  # (the check `gutterpress lint <dir>` used to run; findings list file and line:col)
317
317
  gutterpress validate my-book --only source.stylelint
318
318
 
319
- # Asset checks only — image DPI / format / color space, fonts
319
+ # Asset checks only — image size / alpha, fonts
320
320
  # (what `gutterpress audit <dir>` used to run)
321
321
  gutterpress validate my-book --category asset --phase pre
322
322
  ```
package/dist/api/index.js CHANGED
@@ -137,11 +137,11 @@ import {
137
137
  testRemoteAccess,
138
138
  updateExtensions,
139
139
  validateProjectExtensions
140
- } from "../index-379qafjq.js";
140
+ } from "../index-mr7zs8mv.js";
141
141
  import"../index-ht1bcqdd.js";
142
142
  import {
143
143
  BuildError
144
- } from "../index-crys9951.js";
144
+ } from "../index-mr72vt8n.js";
145
145
  import"../index-sth219v1.js";
146
146
  import {
147
147
  DEFAULT_PRINT_OPTS,
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  runBuild,
3
3
  splitOutPath
4
- } from "./cli-stt6691c.js";
4
+ } from "./cli-j0drzb6f.js";
5
5
  import {
6
6
  log
7
- } from "./cli-8gm4p42f.js";
7
+ } from "./cli-j79451n6.js";
8
8
  import {
9
9
  UsageError,
10
10
  parseFormat,
11
11
  parsePdfxFlavor,
12
12
  rejectExtraPositionals,
13
13
  rejectUnknownFlags
14
- } from "./cli-nh16svye.js";
14
+ } from "./cli-sqkccnm7.js";
15
15
  import"./cli-ht1bcqdd.js";
16
- import"./cli-cyej3p9v.js";
16
+ import"./cli-b57adna7.js";
17
17
  import {
18
18
  BuildError
19
19
  } from "./cli-46ycxe6r.js";
@@ -1,3 +1,4 @@
1
+ import type { CheckContext } from "../types";
1
2
  /**
2
3
  * Canonical file-extension sets shared by every asset check.
3
4
  *
@@ -8,9 +9,8 @@
8
9
  */
9
10
  /**
10
11
  * Raster formats the in-process header reader (`inspectImage`) can actually
11
- * parse. The header-reader checks (color-space, resolution, alpha) operate
12
- * ONLY over these — they read embedded metadata, which requires a supported
13
- * parser. This set is the source of truth for inspectImage's real capability;
12
+ * parse. The header-reader check (alpha) operates ONLY over these — it reads
13
+ * embedded metadata, which requires a supported parser. This set is the source of truth for inspectImage's real capability;
14
14
  * do not add a format here unless inspectImage can decode its header.
15
15
  */
16
16
  export declare const RASTER_INSPECTABLE_EXTS: readonly ["png", "jpg", "jpeg", "tiff", "tif"];
@@ -23,13 +23,17 @@ export declare const RASTER_INSPECTABLE_EXTS: readonly ["png", "jpg", "jpeg", "t
23
23
  * requires teaching inspectImage the new format first.
24
24
  */
25
25
  export declare const ALL_IMAGE_EXTS: readonly ["png", "jpg", "jpeg", "tiff", "tif", "webp", "svg", "gif"];
26
+ /**
27
+ * The images the book ships (`ctx.imageFiles`) with one of `exts`. Empty when
28
+ * the run has no book to resolve them from (a `--pdf`-only run).
29
+ */
30
+ export declare function shippedImages(ctx: CheckContext, exts: readonly string[]): string[];
26
31
  /** Font file extensions shared by the approved-fonts and font-license checks. */
27
32
  export declare const FONT_EXTS: readonly ["woff", "woff2", "otf", "ttf", "eot"];
28
33
  /**
29
34
  * Directories no asset scan should ever descend into, as glob patterns.
30
35
  *
31
- * ONE list, applied at the GLOB level by every asset scan (images and fonts
32
- * alike). Doing the exclusion here rather than by choosing which directories
36
+ * ONE list, applied at the GLOB level by every scan of the project folder. Doing the exclusion here rather than by choosing which directories
33
37
  * to hand the scanner is what keeps root-level files covered: a previous
34
38
  * approach swapped the project root for its subdirectories whenever an ignored
35
39
  * directory existed, which silently dropped every file sitting at the root —
@@ -1,7 +1,4 @@
1
1
  import "./image-file-size";
2
- import "./image-resolution";
3
- import "./image-color-space";
4
2
  import "./image-alpha";
5
- import "./image-tac";
6
3
  import "./approved-fonts";
7
4
  import "./font-license";
@@ -5,7 +5,6 @@ import "./pdfx-markers";
5
5
  import "./color-spaces";
6
6
  import "./embedded-fonts";
7
7
  import "./ink-coverage";
8
- import "./rasterized-pages";
9
8
  import "./black-text";
10
9
  import "./signature";
11
10
  import "./bookmarks";
@@ -18,7 +18,7 @@ export interface CheckResult {
18
18
  detail?: string;
19
19
  /**
20
20
  * Stable machine-readable identifier for the KIND of finding (e.g.
21
- * "ink-coverage-exceeded", "rasterized-pages-detected"). Lets the report /
21
+ * "ink-coverage-exceeded", "no-fonts"). Lets the report /
22
22
  * summary layer branch on the finding without parsing `message` prose.
23
23
  */
24
24
  code?: string;
@@ -36,7 +36,14 @@ export interface CheckContext {
36
36
  htmlPath?: string;
37
37
  markdownFiles?: string[];
38
38
  cssFiles?: string[];
39
+ /** Directories the font checks scan. */
39
40
  assetDirs?: string[];
41
+ /**
42
+ * The image files the book ships: its markdown images and the images its
43
+ * stylesheets reference, as absolute paths. Art in the project folder that
44
+ * nothing references is not checked.
45
+ */
46
+ imageFiles?: string[];
40
47
  }
41
48
  export interface Check {
42
49
  id: string;
@@ -1134,7 +1134,7 @@ import { fileURLToPath } from "node:url";
1134
1134
  var favicon_default = "./favicon-272ga6y0.ico";
1135
1135
 
1136
1136
  // src/assets/manifest.schema.json
1137
- var manifest_schema_default = "./manifest.schema-c4wfpg6g.json";
1137
+ var manifest_schema_default = "./manifest.schema-n292sb77.json";
1138
1138
 
1139
1139
  // src/assets/preview/scripts/preview-interface.js
1140
1140
  var preview_interface_default = "./preview-interface-nnmrxyqm.js";
@@ -1152,7 +1152,7 @@ var CGATS21_CRPC1_default = "./CGATS21_CRPC1-g0e3k7kr.icc";
1152
1152
  var gutterpress_viewer_default = "./gutterpress-viewer-w7njnkj7.js";
1153
1153
 
1154
1154
  // src/assets/engine/gutterpress-agent.js
1155
- var gutterpress_agent_default = "./gutterpress-agent-yvd8w8my.js";
1155
+ var gutterpress_agent_default = "./gutterpress-agent-d29ry3ak.js";
1156
1156
 
1157
1157
  // src/assets/templates/book/manifest.yaml
1158
1158
  var manifest_default = "./manifest-n1gh3qw5.yaml";
@@ -2197,6 +2197,9 @@ ${mapCss}`;
2197
2197
  if (
2198
2198
  multicol.length < 20 &&
2199
2199
  !(cs.columnCount === "auto" && cs.columnWidth === "auto") &&
2200
+ // Column properties only make a BLOCK container multicol; a
2201
+ // grid or flex container that carries them lays out no columns.
2202
+ !/grid|flex/.test(cs.display) &&
2200
2203
  cs.columnFill === "balance" &&
2201
2204
  el.getBoundingClientRect().height > ${minContentHeightPx} + 1
2202
2205
  ) {