gutterpress 0.11.10-alpha.3 → 0.11.10-alpha.7

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 (59) hide show
  1. package/README.md +24 -46
  2. package/dist/api/index.d.ts +1 -1
  3. package/dist/api/index.js +10 -6
  4. package/dist/{build-wvm8haf3.js → build-v8gn687b.js} +7 -6
  5. package/dist/cdp-jg95s674.js +15 -0
  6. package/dist/cdp-smdx6mr3.js +16 -0
  7. package/dist/{cli-w3khh6re.js → cli-2frrxgf3.js} +283 -1142
  8. package/dist/{cli-xk7qfz4m.js → cli-2k72f0ww.js} +1 -4
  9. package/dist/{cli-d8rdk1y7.js → cli-30j93gzt.js} +11 -335
  10. package/dist/{cli-pfczdbyd.js → cli-5qr3z0qa.js} +10 -404
  11. package/dist/{cli-c41yr7he.js → cli-7fkhgtfn.js} +3 -1
  12. package/dist/cli-kkzka31p.js +261 -0
  13. package/dist/{cli-m3jt4tw6.js → cli-wyry8qbw.js} +2 -2
  14. package/dist/cli.js +12 -14
  15. package/dist/{doctor-py6xbmbf.js → doctor-abftekky.js} +3 -3
  16. package/dist/engine/shared/cdp.d.ts +23 -19
  17. package/dist/engine-3gwctsty.js +24 -0
  18. package/dist/engine-mwshptgf.js +25 -0
  19. package/dist/{ext-tg7ntd0y.js → ext-wr3by4tx.js} +7 -6
  20. package/dist/{index-kqftehgy.js → index-dzp0hc2c.js} +4 -2
  21. package/dist/{index-cgbxryk0.js → index-ns8gav3w.js} +344 -1130
  22. package/dist/{index-fnhak0nh.js → index-qf7y4d85.js} +10 -404
  23. package/dist/index-r4wvy5v3.js +267 -0
  24. package/dist/{index-t43k5rq1.js → index-rzm1phg0.js} +23 -356
  25. package/dist/index.d.ts +0 -1
  26. package/dist/index.js +12 -87
  27. package/dist/lib/build-error.d.ts +4 -5
  28. package/dist/lib/build-preflight.d.ts +1 -35
  29. package/dist/lib/build-runner.d.ts +27 -44
  30. package/dist/lib/chromium.d.ts +5 -1
  31. package/dist/lib/engine.d.ts +3 -18
  32. package/dist/lib/extension-manager.d.ts +2 -2
  33. package/dist/lib/extension-manifest.d.ts +1 -1
  34. package/dist/lib/markdown/assemble.d.ts +2 -9
  35. package/dist/lib/markdown/index.d.ts +2 -4
  36. package/dist/lib/markdown/plugins.d.ts +0 -3
  37. package/dist/lib/npm-plugin-installer.d.ts +6 -1
  38. package/dist/lib/plugin-vendor.d.ts +10 -78
  39. package/dist/lib/source-provider.d.ts +1 -1
  40. package/dist/lib/validation-exec.d.ts +5 -6
  41. package/dist/{new-gbjq78y0.js → new-t0m2yyh6.js} +9 -8
  42. package/dist/{preflight-w78jrtm9.js → preflight-tsy2rmyw.js} +7 -6
  43. package/dist/preview/file-watcher.d.ts +4 -43
  44. package/dist/preview/http-server.d.ts +1 -3
  45. package/dist/{preview-bg93vsz1.js → preview-0bqz31w2.js} +7 -6
  46. package/dist/{preview-shell-gqnc5xxe.js → preview-shell-tqndvhbx.js} +5 -7
  47. package/dist/{publish-we0m2hsn.js → publish-38spy866.js} +7 -6
  48. package/dist/render.d.ts +1 -1
  49. package/dist/render.js +1 -9
  50. package/dist/{source-provider-ta09wegv.js → source-provider-pzmz0br9.js} +1 -1
  51. package/dist/{source-provider-7c2ww3bz.js → source-provider-qbthnmqw.js} +1 -1
  52. package/dist/{validate-1tp3nr50.js → validate-k9yge2rh.js} +7 -6
  53. package/package.json +1 -4
  54. package/dist/audit-gw44spqb.js +0 -69
  55. package/dist/engine-qtfrfbpk.js +0 -41
  56. package/dist/engine-trte2tg2.js +0 -40
  57. package/dist/lib/browser-pool.d.ts +0 -35
  58. package/dist/lib/lint-runner.d.ts +0 -29
  59. package/dist/lint-krdp1yec.js +0 -68
package/README.md CHANGED
@@ -133,9 +133,9 @@ The full configuration cascade is `CLI flags > manifest.yaml > preset defaults`.
133
133
 
134
134
  ## Commands
135
135
 
136
- Gutterpress has 10 subcommands. `new`, `preview`, `build`, and `publish` are the
137
- primary author commands; `lint`, `validate`, `audit`, and `preflight` are
138
- CI / advanced checks; `doctor` reports system readiness; and `ext` manages the
136
+ Gutterpress has 8 subcommands. `new`, `preview`, `build`, and `publish` are the
137
+ primary author commands; `validate` and `preflight` are CI / advanced
138
+ checks; `doctor` reports system readiness; and `ext` manages the
139
139
  project's extensions (plugins, looks, component libraries). Every
140
140
  command also accepts `--help` for the authoritative, always-current flag list
141
141
  (`gutterpress <command> --help`) — this section is regenerated from the same
@@ -268,28 +268,6 @@ gutterpress publish --provider gdrive --connect
268
268
  gutterpress publish --provider gdrive ./my-book
269
269
  ```
270
270
 
271
- ### `gutterpress lint`
272
-
273
- Run Gutterpress's PostCSS-based print-safety checks, including remote URLs,
274
- rasterizing effects, and source-level page-containment risks, against the
275
- project's CSS files.
276
-
277
- ```sh
278
- gutterpress lint [files] [options]
279
-
280
- --manifest <path> Path to manifest.yaml
281
- ```
282
-
283
- `files` is a positional: either a project directory containing `manifest.yaml` (its configured stylesheets are linted), or a glob pattern for CSS files to lint directly. There is no `--files` flag — pass the directory/glob as the positional.
284
-
285
- Common findings include remote `url(...)` references, effects that rasterize
286
- print text, and declarations on core page wrappers that could clip or trap
287
- out-of-flow art. Each finding is listed with its file and `line:col`, so you
288
- can see exactly which selectors rasterize text; a property at its initial value
289
- (`filter: none`, `will-change: auto`) is not a finding. The source-level
290
- containment check is an early signal; the build-time `engine.layer.trapped`
291
- diagnostic inspects the authoritative live ancestor chain.
292
-
293
271
  ### `gutterpress validate`
294
272
 
295
273
  Run the validation pipeline (pre-build source checks and/or post-build PDF checks). Tools that aren't installed are skipped with a warning — they don't fail the run. See [User Guide: Chapter 6 — Validation](https://github.com/dimm-city/gutterpress/blob/main/examples/gutterpress-user-guide/06-validation.md) for the full check list and [User Guide: Chapter 7 — System Setup](https://github.com/dimm-city/gutterpress/blob/main/examples/gutterpress-user-guide/07-system-setup.md) for which external tools each check needs.
@@ -324,18 +302,17 @@ It writes only when `source.markdownlint` is actually part of the run, so
324
302
  markdown untouched — `--fix` can never rewrite a file for a check the report
325
303
  does not mention.
326
304
 
327
- ### `gutterpress audit`
328
-
329
- Run asset-only validation checks (image DPI/format/color-space, print-readiness) without the rest of the validation pipeline.
305
+ Two narrowed runs replace the former `lint` and `audit` commands (removed in
306
+ 0.11.10 — each was a thin alias over this same pipeline):
330
307
 
331
308
  ```sh
332
- gutterpress audit [dir] [options]
309
+ # CSS print-safety only — remote url(), rasterizing effects, page containment
310
+ # (the check `gutterpress lint <dir>` used to run; findings list file and line:col)
311
+ gutterpress validate my-book --only source.stylelint
333
312
 
334
- --input <dir> Asset directory (overrides the positional directory)
335
- --manifest <path> Path to manifest.yaml
336
- --only <ids> Run only these check IDs/selectors (comma-separated)
337
- --skip <ids> Skip these check IDs/selectors (comma-separated)
338
- --format <fmt> text (default) | json
313
+ # Asset checks only — image DPI / format / color space, fonts
314
+ # (what `gutterpress audit <dir>` used to run)
315
+ gutterpress validate my-book --category asset --phase pre
339
316
  ```
340
317
 
341
318
  ### `gutterpress preflight`
@@ -398,9 +375,9 @@ Add an extension. What `SOURCE` is decides what happens:
398
375
 
399
376
  - an **npm package** (`name` or `name@version`) is downloaded straight from
400
377
  the registry along with its runtime dependencies, hash-verified, vendored
401
- into the project under `plugins/npm/` with a receipt, load-tested, and
402
- written back pinned as `name@<exact version>`. This does not invoke npm,
403
- Bun, Node.js tooling, or package install scripts;
378
+ into the project under `plugins/npm/`, load-tested, and written back pinned
379
+ as `name@<exact version>`. This does not invoke npm, Bun, Node.js tooling,
380
+ or package install scripts;
404
381
  - a **bundled feature** (`markdown-it-mark`, `markdown-it-sub`,
405
382
  `markdown-it-sup`, `markdown-it-abbr`, `gutterpress-gfm-alerts`) is simply
406
383
  listed — nothing to install, works offline;
@@ -488,11 +465,11 @@ Every command follows the same exit-code contract, so CI can branch on the resul
488
465
  | Code | Meaning |
489
466
  |---|---|
490
467
  | `0` | Clean — no findings, nothing to fix. |
491
- | `1` | Findings — the command ran fine but reported findings/validation failures (`lint` CSS errors, `validate`/`preflight`/`audit` findings, a `build` quality-gate rejection). |
468
+ | `1` | Findings — the command ran fine but reported findings/validation failures (`validate`/`preflight` findings, a `build` quality-gate rejection). |
492
469
  | `2` | Usage — the invocation itself was wrong: a bad flag, positional argument, preset, or value. |
493
470
  | `3` | Pipeline — the build/render/export pipeline itself failed for a reason unrelated to usage or findings (I/O error, missing tool, renderer crash). |
494
471
 
495
- This applies uniformly across `build`, `preview`, `lint`, `validate`, `preflight`, `audit`, `publish`, `ext`, `new`, and `doctor`.
472
+ This applies uniformly across `build`, `preview`, `validate`, `preflight`, `publish`, `ext`, `new`, and `doctor`.
496
473
 
497
474
  ## Extensions
498
475
 
@@ -539,13 +516,14 @@ An extension folder (or npm package) describes itself in its **`package.json`**
539
516
 
540
517
  Order is load order: a later entry's markdown runs after earlier entries' (and sees their output) and its CSS wins ties — each extension's stylesheets are wrapped in their own cascade layer (`@layer ext.<name>`), declared in list order, so this holds however an extension writes its CSS; the project's own `styles:` stay unlayered and load after every extension, beating all of them at any specificity. There is no `priority` and no `path:`/`name:` wrapper — a manifest still carrying `plugins:` fails with a message that prints the same entries rewritten as `extensions:`. The `engine:` and `engineStyles:` keys are gone too (there is one engine; move any `engineStyles` entries to the end of `styles:`).
541
518
 
542
- Pinned npm packages and their runtime dependencies live under `plugins/npm/`,
543
- with a receipt that records the exact graph and hashes the complete tree. They
544
- travel with the project and builds never fetch from the registry. Install/build
545
- scripts, native addon compilation, bundled `node_modules`, and non-registry
546
- dependency selectors are intentionally unsupported. Only install packages you
547
- trust: extensions run unsandboxed with the process's full filesystem and network
548
- privileges.
519
+ Pinned npm packages and their runtime dependencies live under `plugins/npm/`
520
+ as a plain nested `node_modules` tree, which Node's own module resolution loads.
521
+ They travel with the project and builds never fetch from the registry; each
522
+ tarball's integrity is checked against the registry's hash when it is
523
+ installed. Install/build scripts, native addon compilation, bundled
524
+ `node_modules`, and non-registry dependency selectors are intentionally
525
+ unsupported. Only install packages you trust: extensions run unsandboxed with
526
+ the process's full filesystem and network privileges.
549
527
 
550
528
  Use the entry's `export` field, or `ext add --export <name>`, for packages
551
529
  that expose a named plugin function instead of a default export.
@@ -11,7 +11,7 @@
11
11
  * await runBuild({ inputDir: "./book", format: "pdf", outDir: "./out", rawArgs: {} });
12
12
  */
13
13
  export { runBuild, splitOutPath, BuildError, type BuildFormat, type PdfxFlavor, type BuildRunnerOptions, type BuildRunnerResult, type SplitOutPath, type EngineBrowser, type EngineSession, } from "../lib/build-runner";
14
- export { DEFAULT_PRINT_OPTS, readyProbeExpr } from "../engine/shared/cdp";
14
+ export { DEFAULT_PRINT_OPTS, readyProbeExpr, assertMilestone } from "../engine/shared/cdp";
15
15
  export { startPreviewServer, type PreviewServerHandle, type StartPreviewServerOptions, } from "../server";
16
16
  export type { PreviewServerOptions } from "../types";
17
17
  export { loadManifestWithPath, resolveConfig, MANIFEST_FILENAMES, hasProjectManifest, } from "../lib/manifest";
package/dist/api/index.js CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  BUILT_IN_STYLE_SET_IDS,
8
8
  BUILT_IN_TEMPLATE_IDS,
9
9
  BUNDLED_EXTENSIONS,
10
+ DEFAULT_NPM_REGISTRY,
10
11
  EXTENSIONS_DIR,
11
12
  EXTENSION_KINDS,
12
13
  EXTENSION_MANIFEST_FILENAME,
@@ -75,6 +76,7 @@ import {
75
76
  listRepoBooks,
76
77
  listSnippets,
77
78
  loadManifestWithPath,
79
+ npmRegistryUrl,
78
80
  parseExtensionSpecifier,
79
81
  parseRemoteOrigin,
80
82
  pathEscapesFolder,
@@ -125,15 +127,17 @@ import {
125
127
  syncProject,
126
128
  testRemoteAccess,
127
129
  validateProjectExtensions
128
- } from "../index-cgbxryk0.js";
130
+ } from "../index-ns8gav3w.js";
131
+ import {
132
+ BuildError
133
+ } from "../index-r4wvy5v3.js";
129
134
  import {
130
- BuildError,
131
135
  DEFAULT_PRINT_OPTS,
136
+ assertMilestone,
132
137
  readyProbeExpr
133
- } from "../index-t43k5rq1.js";
138
+ } from "../index-rzm1phg0.js";
134
139
  import {
135
140
  AUTO_SNAPSHOT_MESSAGE,
136
- DEFAULT_NPM_REGISTRY,
137
141
  HISTORY_PAGE_LIMIT,
138
142
  PLUGINS_DIR,
139
143
  RESTORE_BACKUP_MESSAGE,
@@ -141,13 +145,12 @@ import {
141
145
  countUnversionedChanges,
142
146
  isNoChangesError,
143
147
  listLocalBranches,
144
- npmRegistryUrl,
145
148
  providerFor,
146
149
  resolveLogger,
147
150
  restoreVersionWithBackup,
148
151
  switchBranch,
149
152
  whenGitIdle
150
- } from "../index-fnhak0nh.js";
153
+ } from "../index-qf7y4d85.js";
151
154
  import {
152
155
  capabilitiesFor,
153
156
  detectProjectSource,
@@ -264,6 +267,7 @@ export {
264
267
  capabilitiesFor,
265
268
  autoSyncDelayMs,
266
269
  autoSnapshotDelayMs,
270
+ assertMilestone,
267
271
  assertExtensionContained,
268
272
  adoptFolder,
269
273
  addExtension,
@@ -1,23 +1,24 @@
1
1
  import {
2
2
  runBuild,
3
3
  splitOutPath
4
- } from "./cli-w3khh6re.js";
4
+ } from "./cli-2frrxgf3.js";
5
5
  import {
6
6
  log
7
- } from "./cli-m3jt4tw6.js";
7
+ } from "./cli-wyry8qbw.js";
8
8
  import {
9
9
  UsageError,
10
10
  parseFormat,
11
11
  parsePdfxFlavor,
12
12
  rejectExtraPositionals,
13
13
  rejectUnknownFlags
14
- } from "./cli-xk7qfz4m.js";
15
- import"./cli-d8rdk1y7.js";
16
- import"./cli-c41yr7he.js";
14
+ } from "./cli-2k72f0ww.js";
15
+ import"./cli-30j93gzt.js";
17
16
  import {
18
17
  BuildError
19
18
  } from "./cli-46ycxe6r.js";
20
- import"./cli-pfczdbyd.js";
19
+ import"./cli-kkzka31p.js";
20
+ import"./cli-7fkhgtfn.js";
21
+ import"./cli-5qr3z0qa.js";
21
22
  import"./cli-v5mp7a6q.js";
22
23
  import"./cli-37x76zdn.js";
23
24
 
@@ -0,0 +1,15 @@
1
+ import {
2
+ DEFAULT_PRINT_OPTS,
3
+ REQUIRED_MILESTONE,
4
+ assertMilestone,
5
+ launchChromium,
6
+ readyProbeExpr
7
+ } from "./index-rzm1phg0.js";
8
+ import"./index-37x76zdn.js";
9
+ export {
10
+ readyProbeExpr,
11
+ launchChromium,
12
+ assertMilestone,
13
+ REQUIRED_MILESTONE,
14
+ DEFAULT_PRINT_OPTS
15
+ };
@@ -0,0 +1,16 @@
1
+ import {
2
+ DEFAULT_PRINT_OPTS,
3
+ REQUIRED_MILESTONE,
4
+ assertMilestone,
5
+ launchChromium,
6
+ readyProbeExpr
7
+ } from "./cli-kkzka31p.js";
8
+ import"./cli-7fkhgtfn.js";
9
+ import"./cli-37x76zdn.js";
10
+ export {
11
+ readyProbeExpr,
12
+ launchChromium,
13
+ assertMilestone,
14
+ REQUIRED_MILESTONE,
15
+ DEFAULT_PRINT_OPTS
16
+ };