gutterpress 0.11.23-alpha.1 → 0.11.23-alpha.2

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 (62) hide show
  1. package/README.md +21 -22
  2. package/dist/api/index.d.ts +4 -4
  3. package/dist/api/index.js +16 -22
  4. package/dist/{build-09cd1n7s.js → build-encgnv0c.js} +9 -10
  5. package/dist/{cli-habkc5ng.js → cli-a35w7wzg.js} +5 -4
  6. package/dist/{cli-b0vyjvmt.js → cli-aqh6brew.js} +1 -1
  7. package/dist/{cli-ccp7sxz3.js → cli-evg8sbht.js} +1 -1
  8. package/dist/{cli-nr6j6300.js → cli-kh8v4vvw.js} +1 -1
  9. package/dist/{cli-h17e3mtz.js → cli-pwwfxdgb.js} +385 -10
  10. package/dist/{cli-dtckwda1.js → cli-pz4bn98t.js} +185 -9
  11. package/dist/{cli-dd115fa8.js → cli-sdmv4bba.js} +47 -123
  12. package/dist/{cli-5hkmp2wy.js → cli-xq6djqbj.js} +55 -88
  13. package/dist/{index-r7jcsk6h.js → cli-y28j019d.js} +19 -10
  14. package/dist/cli.js +12 -12
  15. package/dist/{doctor-nddspx4n.js → doctor-5gtpgpd1.js} +3 -3
  16. package/dist/{engine-892swzzc.js → engine-mc5br8g8.js} +1 -2
  17. package/dist/{engine-yjzknt0g.js → engine-tn13gk0b.js} +3 -3
  18. package/dist/{ext-zjpen4yx.js → ext-wn2a5afq.js} +18 -33
  19. package/dist/{extension-restore-w8xt4kbq.js → extension-restore-g8jnmmzq.js} +5 -6
  20. package/dist/{extension-restore-jvs60x9b.js → extension-restore-s3x1618g.js} +4 -4
  21. package/dist/{index-apc8w9w8.js → index-0skhjx3e.js} +180 -1
  22. package/dist/{index-2jpk25en.js → index-2bjcghze.js} +385 -10
  23. package/dist/index-46ycxe6r.js +18 -0
  24. package/dist/{index-0w2azsk1.js → index-4x6y8krm.js} +2 -4
  25. package/dist/{cli-h3phdstf.js → index-5x42amh8.js} +19 -10
  26. package/dist/{index-93pqkvty.js → index-h6yk5tjx.js} +5 -4
  27. package/dist/{index-zrhyb967.js → index-j5z86r4a.js} +335 -349
  28. package/dist/{index-m4hhzg3c.js → index-x3ema2w3.js} +59 -134
  29. package/dist/index.js +17 -23
  30. package/dist/lib/extension-manager.d.ts +16 -43
  31. package/dist/lib/extension-scaffold.d.ts +3 -3
  32. package/dist/lib/extension-specifier.d.ts +23 -6
  33. package/dist/lib/markdown/math.d.ts +1 -1
  34. package/dist/lib/npm-plugin-installer.d.ts +1 -1
  35. package/dist/lib/plugin-vendor.d.ts +11 -3
  36. package/dist/lib/project-gitignore.d.ts +2 -2
  37. package/dist/lib/project-scaffold.d.ts +5 -7
  38. package/dist/lib/project-templates.d.ts +0 -3
  39. package/dist/lib/snippets.d.ts +2 -1
  40. package/dist/lib/style-resolver.d.ts +1 -2
  41. package/dist/{manifest-8f10dr4f.yaml → manifest-eagfhba6.yaml} +2 -0
  42. package/dist/{manifest.schema-9aeaered.json → manifest.schema-t7nx2stg.json} +5 -5
  43. package/dist/{new-xhq8wczn.js → new-mhs46pw3.js} +22 -21
  44. package/dist/{plugins-9en8m9y0.js → plugins-1sxe0dkz.js} +4 -4
  45. package/dist/{plugins-gf0gkjmv.js → plugins-2cek4mz1.js} +2 -2
  46. package/dist/{preflight-negnxg7b.js → preflight-3k2b1x8e.js} +9 -10
  47. package/dist/{preview-cep2s9cg.js → preview-6p9v6rht.js} +9 -10
  48. package/dist/{publish-xery6qc6.js → publish-qgsngy8s.js} +9 -10
  49. package/dist/{source-provider-qbfknhyy.js → source-provider-98k5deda.js} +2 -2
  50. package/dist/{source-provider-2r74a7wp.js → source-provider-knmcam50.js} +2 -2
  51. package/dist/{validate-3d0sgf4g.js → validate-0v7xw6wa.js} +9 -10
  52. package/package.json +1 -1
  53. package/dist/cli-fe43evmf.js +0 -212
  54. package/dist/index-dsvk7q6s.js +0 -229
  55. package/dist/package-97gm31sg.json +0 -10
  56. package/dist/package-gag6ykwn.json +0 -10
  57. package/dist/package-nrhkwf2m.json +0 -10
  58. package/dist/package-zttkgydq.json +0 -10
  59. package/dist/theme-9c58td2d.css +0 -76
  60. package/dist/theme-h5recz6c.css +0 -61
  61. package/dist/theme-j2bagrfx.css +0 -59
  62. package/dist/theme-nn6d53zy.css +0 -71
@@ -43,12 +43,10 @@ export interface CreateProjectOptions {
43
43
  */
44
44
  templateDir?: string;
45
45
  /**
46
- * Which vendor preset the new book is designed for (ADR 0008). REQUIRED
47
- * when scaffolding a built-in template — creation flows make the author
48
- * choose; the resolveConfig dtrpg fallback exists for hand-written
49
- * manifests, not for tooling. Written into the generated manifest as an
50
- * explicit `preset:` line. Ignored with `templateDir`: a saved template's
51
- * manifest carries its preset as part of the captured design.
46
+ * Which preset the new book is designed for (ADR 0008), written into the
47
+ * generated manifest as an explicit `preset:` line. Optional: left out, the
48
+ * template's own `preset:` stands (every starter carries one, and a saved
49
+ * template's manifest carries its preset as part of the captured design).
52
50
  */
53
51
  preset?: PresetId;
54
52
  /**
@@ -137,7 +135,7 @@ export interface AdoptFolderOptions {
137
135
  * Adopt an EXISTING folder as a gutterpress project, in place (no new subfolder).
138
136
  * Writes a `manifest.yaml` (using the folder's existing top-level `.md` files as
139
137
  * `source.files`, or scaffolding a `chapter-01.md` when there are none), copies
140
- * a starter `styles/book.css`, ensures `dist/` and `plugins/npm/` are gitignored
138
+ * a starter `styles/book.css`, ensures `dist/` and `extensions/npm/` are gitignored
141
139
  * (see `ensureProjectGitignore`), and optionally initialises local version history.
142
140
  *
143
141
  * NON-DESTRUCTIVE (global never-overwrite rule): refuses if the folder is
@@ -1,5 +1,4 @@
1
1
  import type { ProjectTemplateId } from "./project-scaffold.ts";
2
- import type { BuiltInStyleSetId } from "./extension-manager.ts";
3
2
  /** The built-in templates shipped as embedded assets. */
4
3
  export declare const BUILT_IN_TEMPLATE_IDS: readonly ["book", "zine", "technical", "paper"];
5
4
  /** Author-friendly metadata for one template (built-in or custom). */
@@ -24,11 +23,9 @@ export interface TemplateInfo {
24
23
  /** The `targets:` this template's manifest declares, when it has one. */
25
24
  targets?: string[];
26
25
  }
27
- /** `look`: the built-in look a new book from the template starts with. */
28
26
  export declare const BUILT_IN_META: Record<ProjectTemplateId, {
29
27
  label: string;
30
28
  description: string;
31
- look?: BuiltInStyleSetId;
32
29
  }>;
33
30
  /**
34
31
  * List the built-in templates. The `preset`/`targets` each one starts a book
@@ -74,7 +74,8 @@ export declare function deleteSnippet(projectDir: string, fileName: string): Pro
74
74
  /**
75
75
  * One plugin-declared marker (a "component", `export const markers`) the
76
76
  * project can use, with the example snippet the editor inserts for it.
77
- * Unrelated to the `gutterpress.components` catalog file, which nothing reads.
77
+ * Unrelated to the `gutterpress.components` catalog file, which the desktop's
78
+ * class catalog reads for class completions.
78
79
  */
79
80
  export interface MarkerComponent {
80
81
  /** The marker name, without `@` — e.g. `term-box`. */
@@ -14,8 +14,7 @@ export declare function relDisplay(projectDir: string, absPath: string): string;
14
14
  * BOTH the renderer (to `<link>` them) and the editor (to edit them), so they
15
15
  * can never disagree. Returns project-relative paths:
16
16
  * 1. the manifest `styles:` list, if it has any entries; else
17
- * 2. the first conventional stylesheet the project actually has
18
- * (`FALLBACK_PRIORITY`); else
17
+ * 2. `styles/book.css`, when the project has it; else
19
18
  * 3. the first discovered `.css` anywhere we scan (deterministic); else
20
19
  * 4. `[]` — the project has no stylesheet (an honest empty, never a phantom
21
20
  * link to a missing file).
@@ -14,4 +14,6 @@ page:
14
14
  extensions:
15
15
  - markdown-it-sup
16
16
  - gutterpress-math
17
+ # The built-in academic look. Style over it from styles/book.css.
18
+ - academic
17
19
  preset: book
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "styles": {
46
46
  "type": "array",
47
- "description": "Project-relative CSS files to <link> into the rendered book, applied in order. If omitted, Gutterpress discovers one: styles/book.css (what `gutterpress new` scaffolds), else four legacy names kept only for pre-existing projects — css/print.css, css/index.css, css/style.css, css/main.css — else the first discovered .css, else none. New projects should set this explicitly or use styles/book.css.",
47
+ "description": "Project-relative CSS files to <link> into the rendered book, applied in order. If omitted, Gutterpress discovers one: styles/book.css (what `gutterpress new` scaffolds), else the first .css file found in the project root, styles/ or css/, else none. New projects should set this explicitly or use styles/book.css.",
48
48
  "items": {
49
49
  "type": "string",
50
50
  "minLength": 1,
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "extensions": {
60
60
  "type": "array",
61
- "description": "Extensions, in load order: markdown-it plugins, looks (stylesheets), component libraries — anything from npm or a folder. Each entry is a specifier: a bundled feature name (markdown-it-mark, markdown-it-sub, markdown-it-sup, markdown-it-abbr, gutterpress-gfm-alerts, gutterpress-math), a path starting with ./ or ../ (relative to this file), or an npm package name, optionally pinned as name@version. A later entry loads later: its markdown runs after earlier entries' and its CSS wins ties. The project's own `styles` always load after every extension.",
61
+ "description": "Extensions, in load order: markdown-it plugins, looks (stylesheets), component libraries — anything from npm or a folder. Each entry is a specifier: a bundled name (a markdown feature: markdown-it-mark, markdown-it-sub, markdown-it-sup, markdown-it-abbr, gutterpress-gfm-alerts, gutterpress-math; or a built-in look: clean-book, zine, technical-doc, academic), a path starting with ./ or ../ (relative to this file), or an npm package name, optionally pinned as name@version. A later entry loads later: its markdown runs after earlier entries' and its CSS wins ties. The project's own `styles` always load after every extension.",
62
62
  "items": {
63
63
  "oneOf": [
64
64
  {
@@ -207,17 +207,17 @@
207
207
  },
208
208
  "page": {
209
209
  "type": "object",
210
- "description": "Expected page geometry, in POINTS. VALIDATION BOUNDS ONLY — these values do NOT set the trim size. The real PDF page size comes from the CSS `@page` rule in your stylesheet; these numbers are only what the `pdf.print.page-size` check compares the produced PDF against. Set them to the trim size you expect so a CSS mistake gets caught — and note that a bleed-inclusive @page size will legitimately differ from the trim size recorded here.",
210
+ "description": "Page geometry, in POINTS (1in = 72pt): the trim size the book prints at. The build writes it as the default `@page { size }` unless a stylesheet's own plain `@page` rule sets a size, in which case that rule wins, and the `pdf.print.page-size` check compares the produced PDF against these numbers either way. A bleed-inclusive @page size legitimately differs from the trim recorded here.",
211
211
  "properties": {
212
212
  "width": {
213
213
  "type": "number",
214
- "description": "Expected page width in points (1in = 72pt). Validation bound only — the CSS @page rule sets the real width. Preset defaults: dtrpg 621, book 432 (6in).",
214
+ "description": "Page width in points (1in = 72pt): the trim the book prints at unless a stylesheet's plain @page rule sets its own, and what validation compares against. Preset defaults: dtrpg 621, book 432 (6in).",
215
215
  "exclusiveMinimum": 0,
216
216
  "examples": [612, 621, 432]
217
217
  },
218
218
  "height": {
219
219
  "type": "number",
220
- "description": "Expected page height in points (1in = 72pt). Validation bound only — the CSS @page rule sets the real height. Preset defaults: dtrpg 810, book 648 (9in).",
220
+ "description": "Page height in points (1in = 72pt): the trim the book prints at unless a stylesheet's plain @page rule sets its own, and what validation compares against. Preset defaults: dtrpg 810, book 648 (9in).",
221
221
  "exclusiveMinimum": 0,
222
222
  "examples": [792, 810, 648]
223
223
  },
@@ -3,38 +3,38 @@ import {
3
3
  EXTENSION_KINDS,
4
4
  scaffoldExtension,
5
5
  scaffoldProject
6
- } from "./cli-5hkmp2wy.js";
6
+ } from "./cli-xq6djqbj.js";
7
7
  import {
8
8
  resolveGhostscript
9
- } from "./cli-ccp7sxz3.js";
9
+ } from "./cli-evg8sbht.js";
10
10
  import"./cli-ht1bcqdd.js";
11
- import"./cli-dtckwda1.js";
11
+ import"./cli-pz4bn98t.js";
12
12
  import"./cli-2ppw6q9v.js";
13
13
  import"./cli-eyyggect.js";
14
14
  import {
15
15
  isToolAvailable
16
16
  } from "./cli-asap4t1z.js";
17
- import"./cli-habkc5ng.js";
17
+ import"./cli-a35w7wzg.js";
18
18
  import"./cli-v5mp7a6q.js";
19
19
  import {
20
- PRESETS,
21
20
  PRESET_IDS,
22
21
  TARGETS,
23
- TARGET_IDS
24
- } from "./cli-dd115fa8.js";
25
- import"./cli-h17e3mtz.js";
26
- import"./cli-b0vyjvmt.js";
22
+ TARGET_IDS,
23
+ loadManifest,
24
+ resolveConfig
25
+ } from "./cli-sdmv4bba.js";
26
+ import"./cli-pwwfxdgb.js";
27
+ import"./cli-aqh6brew.js";
27
28
  import {
28
29
  UsageError,
29
30
  rejectExtraPositionals,
30
31
  rejectUnknownFlags
31
32
  } from "./cli-d8xjns66.js";
32
- import"./cli-nr6j6300.js";
33
- import"./cli-fe43evmf.js";
33
+ import"./cli-kh8v4vvw.js";
34
34
  import {
35
35
  EXIT_CODES
36
36
  } from "./cli-46ycxe6r.js";
37
- import"./cli-h3phdstf.js";
37
+ import"./cli-y28j019d.js";
38
38
  import"./cli-37x76zdn.js";
39
39
 
40
40
  // src/commands/new.ts
@@ -52,15 +52,15 @@ var newArgs = {
52
52
  },
53
53
  prefix: {
54
54
  type: "string",
55
- description: 'Class/custom-property prefix an extension claims (default: its slug, e.g. "field-notes-"); --kind plugin|theme only'
55
+ description: 'Class/custom-property prefix an extension claims (default: its slug, e.g. "field-notes-"); --kind plugin|look only'
56
56
  },
57
57
  description: {
58
58
  type: "string",
59
- description: "One-line description recorded in the extension's metadata; --kind plugin|theme only"
59
+ description: "One-line description recorded in the extension's metadata; --kind plugin|look only"
60
60
  },
61
61
  preset: {
62
62
  type: "string",
63
- description: `Vendor preset the book is designed for: ${PRESET_IDS.join(", ")} (required; custom also needs --page-width/--page-height)`
63
+ description: `Preset the book is designed for: ${PRESET_IDS.join(", ")} (default: the template's; custom also needs --page-width/--page-height)`
64
64
  },
65
65
  author: {
66
66
  type: "string",
@@ -192,7 +192,7 @@ async function runExtensionScaffold(kind, name, parentDir, args) {
192
192
  var new_default = defineCommand({
193
193
  meta: {
194
194
  name: "new",
195
- description: "Create a new Gutterpress book, plugin or theme from a starter template"
195
+ description: "Create a new Gutterpress book, plugin or look from a starter template"
196
196
  },
197
197
  args: newArgs,
198
198
  async run({ args, rawArgs }) {
@@ -228,8 +228,8 @@ var new_default = defineCommand({
228
228
  template = args.template;
229
229
  }
230
230
  const preset = typeof args.preset === "string" && args.preset ? args.preset : undefined;
231
- if (!preset || !PRESET_IDS.includes(preset)) {
232
- console.error(preset ? `Unknown preset "${preset}". Choose one of: ${PRESET_IDS.join(", ")}.` : `A preset is required: --preset <${PRESET_IDS.join("|")}>. ` + `Use "dtrpg" for DriveThruRPG print-on-demand, "book" for a neutral 6x9in trade book, ` + `or "custom" with --page-width/--page-height (points; 72pt = 1in).`);
231
+ if (preset && !PRESET_IDS.includes(preset)) {
232
+ console.error(`Unknown preset "${preset}". Choose one of: ${PRESET_IDS.join(", ")}. ` + `"dtrpg" is DriveThruRPG print-on-demand, "book" a neutral 6x9in trade book, ` + `"custom" takes --page-width/--page-height (points; 72pt = 1in).`);
233
233
  process.exit(EXIT_CODES.USAGE);
234
234
  }
235
235
  let targets;
@@ -261,10 +261,11 @@ var new_default = defineCommand({
261
261
  customPage,
262
262
  versionHistory: args.git === false ? "none" : "local-git"
263
263
  });
264
- const effectiveTargets = targets ?? [...PRESETS[preset].defaultTargets];
264
+ const written = resolveConfig({}, await loadManifest(result.projectDir));
265
265
  console.log(`Created book: ${result.projectDir}`);
266
266
  console.log(` manifest: ${result.manifestPath}`);
267
- console.log(` publish targets: ${effectiveTargets.length > 0 ? effectiveTargets.join(", ") : "none"}`);
267
+ console.log(` preset: ${written.preset}`);
268
+ console.log(` publish targets: ${written.targets.length > 0 ? written.targets.join(", ") : "none"}`);
268
269
  console.log(` start writing in: ${result.openFile}`);
269
270
  if (result.versionHistory === "local-git") {
270
271
  console.log(" version history: enabled (local snapshots)");
@@ -272,7 +273,7 @@ var new_default = defineCommand({
272
273
  console.log(` version history: not enabled (${result.versionHistoryError})`);
273
274
  }
274
275
  const neededTools = [
275
- ...new Set(effectiveTargets.flatMap((id) => TARGETS[id]?.requiredTools ?? []))
276
+ ...new Set(written.targets.flatMap((id) => TARGETS[id]?.requiredTools ?? []))
276
277
  ];
277
278
  const missingTools = [];
278
279
  for (const tool of neededTools) {
@@ -8,10 +8,10 @@ import {
8
8
  loadPlugins,
9
9
  loadPluginsWithCss,
10
10
  loadPublishFunction
11
- } from "./cli-h17e3mtz.js";
12
- import"./cli-b0vyjvmt.js";
13
- import"./cli-nr6j6300.js";
14
- import"./cli-h3phdstf.js";
11
+ } from "./cli-pwwfxdgb.js";
12
+ import"./cli-aqh6brew.js";
13
+ import"./cli-kh8v4vvw.js";
14
+ import"./cli-y28j019d.js";
15
15
  import"./cli-37x76zdn.js";
16
16
  export {
17
17
  loadPublishFunction,
@@ -8,8 +8,8 @@ import {
8
8
  loadPlugins,
9
9
  loadPluginsWithCss,
10
10
  loadPublishFunction
11
- } from "./index-2jpk25en.js";
12
- import"./index-r7jcsk6h.js";
11
+ } from "./index-2bjcghze.js";
12
+ import"./index-5x42amh8.js";
13
13
  import"./index-37x76zdn.js";
14
14
  export {
15
15
  loadPublishFunction,
@@ -1,34 +1,33 @@
1
1
  import {
2
2
  executeValidation,
3
3
  reportMissingTools
4
- } from "./cli-5hkmp2wy.js";
5
- import"./cli-ccp7sxz3.js";
4
+ } from "./cli-xq6djqbj.js";
5
+ import"./cli-evg8sbht.js";
6
6
  import"./cli-ht1bcqdd.js";
7
- import"./cli-dtckwda1.js";
7
+ import"./cli-pz4bn98t.js";
8
8
  import"./cli-2ppw6q9v.js";
9
9
  import"./cli-eyyggect.js";
10
10
  import"./cli-asap4t1z.js";
11
- import"./cli-habkc5ng.js";
11
+ import"./cli-a35w7wzg.js";
12
12
  import"./cli-v5mp7a6q.js";
13
13
  import {
14
14
  publishTargetFor
15
- } from "./cli-dd115fa8.js";
16
- import"./cli-h17e3mtz.js";
15
+ } from "./cli-sdmv4bba.js";
16
+ import"./cli-pwwfxdgb.js";
17
17
  import {
18
18
  log
19
- } from "./cli-b0vyjvmt.js";
19
+ } from "./cli-aqh6brew.js";
20
20
  import {
21
21
  UsageError,
22
22
  rejectExtraPositionals,
23
23
  rejectUnknownFlags
24
24
  } from "./cli-d8xjns66.js";
25
- import"./cli-nr6j6300.js";
26
- import"./cli-fe43evmf.js";
25
+ import"./cli-kh8v4vvw.js";
27
26
  import {
28
27
  BuildError,
29
28
  EXIT_CODES
30
29
  } from "./cli-46ycxe6r.js";
31
- import"./cli-h3phdstf.js";
30
+ import"./cli-y28j019d.js";
32
31
  import"./cli-37x76zdn.js";
33
32
 
34
33
  // src/commands/preflight.ts
@@ -3,23 +3,23 @@ import {
3
3
  runBuild,
4
4
  splitOutPath,
5
5
  startPreviewServer
6
- } from "./cli-5hkmp2wy.js";
7
- import"./cli-ccp7sxz3.js";
6
+ } from "./cli-xq6djqbj.js";
7
+ import"./cli-evg8sbht.js";
8
8
  import {
9
9
  previewArgs
10
10
  } from "./cli-75qkn0k5.js";
11
11
  import"./cli-ht1bcqdd.js";
12
- import"./cli-dtckwda1.js";
12
+ import"./cli-pz4bn98t.js";
13
13
  import"./cli-2ppw6q9v.js";
14
14
  import"./cli-eyyggect.js";
15
15
  import"./cli-asap4t1z.js";
16
- import"./cli-habkc5ng.js";
16
+ import"./cli-a35w7wzg.js";
17
17
  import"./cli-v5mp7a6q.js";
18
- import"./cli-dd115fa8.js";
19
- import"./cli-h17e3mtz.js";
18
+ import"./cli-sdmv4bba.js";
19
+ import"./cli-pwwfxdgb.js";
20
20
  import {
21
21
  log
22
- } from "./cli-b0vyjvmt.js";
22
+ } from "./cli-aqh6brew.js";
23
23
  import {
24
24
  UsageError,
25
25
  parseFormat,
@@ -28,12 +28,11 @@ import {
28
28
  rejectUnknownFlags,
29
29
  resolvePort
30
30
  } from "./cli-d8xjns66.js";
31
- import"./cli-nr6j6300.js";
32
- import"./cli-fe43evmf.js";
31
+ import"./cli-kh8v4vvw.js";
33
32
  import {
34
33
  BuildError
35
34
  } from "./cli-46ycxe6r.js";
36
- import"./cli-h3phdstf.js";
35
+ import"./cli-y28j019d.js";
37
36
  import"./cli-37x76zdn.js";
38
37
 
39
38
  // src/commands/preview.ts
@@ -10,36 +10,35 @@ import {
10
10
  resolvePublishFormat,
11
11
  resolvePublishProvider,
12
12
  runPublish
13
- } from "./cli-5hkmp2wy.js";
13
+ } from "./cli-xq6djqbj.js";
14
14
  import {
15
15
  FileTokenStore
16
- } from "./cli-ccp7sxz3.js";
16
+ } from "./cli-evg8sbht.js";
17
17
  import"./cli-ht1bcqdd.js";
18
- import"./cli-dtckwda1.js";
18
+ import"./cli-pz4bn98t.js";
19
19
  import"./cli-2ppw6q9v.js";
20
20
  import"./cli-eyyggect.js";
21
21
  import"./cli-asap4t1z.js";
22
- import"./cli-habkc5ng.js";
22
+ import"./cli-a35w7wzg.js";
23
23
  import"./cli-v5mp7a6q.js";
24
24
  import {
25
25
  loadManifestWithPath
26
- } from "./cli-dd115fa8.js";
27
- import"./cli-h17e3mtz.js";
26
+ } from "./cli-sdmv4bba.js";
27
+ import"./cli-pwwfxdgb.js";
28
28
  import {
29
29
  log
30
- } from "./cli-b0vyjvmt.js";
30
+ } from "./cli-aqh6brew.js";
31
31
  import {
32
32
  UsageError,
33
33
  rejectExtraPositionals,
34
34
  rejectUnknownFlags
35
35
  } from "./cli-d8xjns66.js";
36
- import"./cli-nr6j6300.js";
37
- import"./cli-fe43evmf.js";
36
+ import"./cli-kh8v4vvw.js";
38
37
  import {
39
38
  BuildError,
40
39
  EXIT_CODES
41
40
  } from "./cli-46ycxe6r.js";
42
- import"./cli-h3phdstf.js";
41
+ import"./cli-y28j019d.js";
43
42
  import"./cli-37x76zdn.js";
44
43
 
45
44
  // src/commands/publish.ts
@@ -21,8 +21,8 @@ import {
21
21
  switchBranch,
22
22
  whenGitIdle,
23
23
  withRepoLock
24
- } from "./index-93pqkvty.js";
25
- import"./index-r7jcsk6h.js";
24
+ } from "./index-h6yk5tjx.js";
25
+ import"./index-5x42amh8.js";
26
26
  import"./index-v5mp7a6q.js";
27
27
  import"./index-37x76zdn.js";
28
28
  export {
@@ -21,9 +21,9 @@ import {
21
21
  switchBranch,
22
22
  whenGitIdle,
23
23
  withRepoLock
24
- } from "./cli-habkc5ng.js";
24
+ } from "./cli-a35w7wzg.js";
25
25
  import"./cli-v5mp7a6q.js";
26
- import"./cli-h3phdstf.js";
26
+ import"./cli-y28j019d.js";
27
27
  import"./cli-37x76zdn.js";
28
28
  export {
29
29
  withRepoLock,
@@ -1,31 +1,30 @@
1
1
  import {
2
2
  executeAndReport
3
- } from "./cli-5hkmp2wy.js";
4
- import"./cli-ccp7sxz3.js";
3
+ } from "./cli-xq6djqbj.js";
4
+ import"./cli-evg8sbht.js";
5
5
  import"./cli-ht1bcqdd.js";
6
- import"./cli-dtckwda1.js";
6
+ import"./cli-pz4bn98t.js";
7
7
  import"./cli-2ppw6q9v.js";
8
8
  import"./cli-eyyggect.js";
9
9
  import"./cli-asap4t1z.js";
10
- import"./cli-habkc5ng.js";
10
+ import"./cli-a35w7wzg.js";
11
11
  import"./cli-v5mp7a6q.js";
12
- import"./cli-dd115fa8.js";
13
- import"./cli-h17e3mtz.js";
12
+ import"./cli-sdmv4bba.js";
13
+ import"./cli-pwwfxdgb.js";
14
14
  import {
15
15
  log
16
- } from "./cli-b0vyjvmt.js";
16
+ } from "./cli-aqh6brew.js";
17
17
  import {
18
18
  UsageError,
19
19
  rejectExtraPositionals,
20
20
  rejectUnknownFlags
21
21
  } from "./cli-d8xjns66.js";
22
- import"./cli-nr6j6300.js";
23
- import"./cli-fe43evmf.js";
22
+ import"./cli-kh8v4vvw.js";
24
23
  import {
25
24
  BuildError,
26
25
  EXIT_CODES
27
26
  } from "./cli-46ycxe6r.js";
28
- import"./cli-h3phdstf.js";
27
+ import"./cli-y28j019d.js";
29
28
  import"./cli-37x76zdn.js";
30
29
 
31
30
  // src/commands/validate.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gutterpress",
3
- "version": "0.11.23-alpha.1",
3
+ "version": "0.11.23-alpha.2",
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",