gutterpress 0.11.6-alpha.2 → 0.11.6-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.
Files changed (34) hide show
  1. package/dist/api/index.d.ts +3 -3
  2. package/dist/api/index.js +10 -6
  3. package/dist/{audit-fdba6axw.js → audit-qd5q0k1m.js} +5 -5
  4. package/dist/{build-2gjr2rj6.js → build-38mz8d2q.js} +5 -5
  5. package/dist/cli-4tx0szk7.js +1251 -0
  6. package/dist/{cli-sekhwex4.js → cli-5vdgncmm.js} +2 -2
  7. package/dist/{cli-ersw5g7j.js → cli-a569p7v6.js} +1 -1
  8. package/dist/{cli-7k2v2sya.js → cli-q4e99n20.js} +409 -984
  9. package/dist/{cli-wmvvkwcc.js → cli-qt466d4e.js} +1 -1
  10. package/dist/cli.js +14 -14
  11. package/dist/{doctor-vgarhrsg.js → doctor-a98dkqnp.js} +2 -2
  12. package/dist/{engine-w5ed5hmb.js → engine-15dfcy85.js} +2 -2
  13. package/dist/{engine-cbc17ne4.js → engine-amxqsfka.js} +1 -1
  14. package/dist/{ext-hb5k5gga.js → ext-5wgrtygx.js} +7 -7
  15. package/dist/{gutterpress-viewer-k0xrt5hw.js → gutterpress-viewer-swz6bwfa.js} +25 -3
  16. package/dist/index-7mqst9tg.js +1302 -0
  17. package/dist/{index-nmykzwb4.js → index-ash0pvb9.js} +495 -1069
  18. package/dist/{index-6n15e1ze.js → index-gf1shk3y.js} +1 -1
  19. package/dist/{index-12pvhbyz.js → index-yeej2vhs.js} +2 -2
  20. package/dist/index.js +11 -7
  21. package/dist/lib/project-scaffold.d.ts +20 -0
  22. package/dist/lib/remote-auth/sync-messages.d.ts +7 -7
  23. package/dist/lib/source-provider.d.ts +24 -0
  24. package/dist/{lint-0pfqbs5r.js → lint-btmms4m9.js} +5 -5
  25. package/dist/{new-nxxx2mv2.js → new-xt38pdjk.js} +7 -7
  26. package/dist/{preflight-g7xjme17.js → preflight-fydrrjpz.js} +5 -5
  27. package/dist/{preview-j59b5hg3.js → preview-655bdb9g.js} +6 -6
  28. package/dist/{publish-mzct8ggw.js → publish-gz6re318.js} +6 -6
  29. package/dist/{source-provider-54a52bpd.js → source-provider-gy3cn7kw.js} +3 -1
  30. package/dist/{source-provider-a458mmec.js → source-provider-m5wes47h.js} +3 -1
  31. package/dist/{validate-z2drbha6.js → validate-e3vvngx0.js} +5 -5
  32. package/package.json +1 -1
  33. package/dist/cli-c9h2bk2k.js +0 -645
  34. package/dist/index-c5ev4r1y.js +0 -696
@@ -608,7 +608,7 @@ var preview_shell_default = "./preview-shell-gqnc5xxe.js";
608
608
  var CGATS21_CRPC1_default = "./CGATS21_CRPC1-g0e3k7kr.icc";
609
609
 
610
610
  // src/assets/engine/gutterpress-viewer.js
611
- var gutterpress_viewer_default = "./gutterpress-viewer-k0xrt5hw.js";
611
+ var gutterpress_viewer_default = "./gutterpress-viewer-swz6bwfa.js";
612
612
 
613
613
  // src/assets/engine/gutterpress-agent.js
614
614
  var gutterpress_agent_default = "./gutterpress-agent-cazqstr1.js";
@@ -4,7 +4,7 @@ import {
4
4
  launchChromium,
5
5
  marginBoxAlign,
6
6
  marginBoxRectPt
7
- } from "./index-6n15e1ze.js";
7
+ } from "./index-gf1shk3y.js";
8
8
 
9
9
  // src/engine/compiler/build.ts
10
10
  import { readFile } from "node:fs/promises";
@@ -1985,7 +1985,7 @@ ${mapCss}`;
1985
1985
  if (layerTraps.length)
1986
1986
  log(`audit: ${layerTraps.length} trapped layer warning(s)`);
1987
1987
  for (const hit of pageBackgrounds)
1988
- diagnose("engine.page-background.unreferenced", `"${hit.url}" is only referenced from "${hit.where}", and Chromium will not print an image referenced nowhere else — the page prints with its background colour alone, with no error. Gutterpress stages and preloads every image your project stylesheets reference, so this one is outside that: it is remote (a url(https://...), which is never staged), or it comes from CSS that does not pass through your stylesheets, or an element in the document uses the same URL as its src, which drops it on its own. Use a local image, referenced from one of your project stylesheets, and not also used as an <img>.`);
1988
+ diagnose("engine.page-background.unreferenced", `"${hit.url}" is only referenced from "${hit.where}", and Chromium will not print an image referenced nowhere else — the page prints with its background color alone, with no error. Gutterpress stages and preloads every image your book's stylesheets reference, so this one is outside that: it is remote (a url(https://...), which is never staged), or it comes from CSS that does not pass through your stylesheets, or an element in the document uses the same URL as its src, which drops it on its own. Use a local image, referenced from one of your book's stylesheets, and not also used as an <img>.`);
1989
1989
  if (pageBackgrounds.length)
1990
1990
  log(`audit: ${pageBackgrounds.length} unreferenced @page background image(s)`);
1991
1991
  for (const d of multicol)
package/dist/index.js CHANGED
@@ -7,7 +7,6 @@ import {
7
7
  BUILT_IN_STYLE_SET_IDS,
8
8
  BUILT_IN_TEMPLATE_IDS,
9
9
  BUNDLED_EXTENSIONS,
10
- DEFAULT_NPM_REGISTRY,
11
10
  EXTENSIONS_DIR,
12
11
  EXTENSION_KINDS,
13
12
  EXTENSION_MANIFEST_FILENAME,
@@ -19,7 +18,6 @@ import {
19
18
  GoogleAuthProvider,
20
19
  MANIFEST_FILENAMES,
21
20
  MAX_SEARCH_BYTES,
22
- PLUGINS_DIR,
23
21
  PRESETS,
24
22
  PRESET_IDS,
25
23
  PublishSelectionsStore,
@@ -47,6 +45,7 @@ import {
47
45
  describeExtension,
48
46
  diagnoseProjectRemote,
49
47
  disconnectPublishCredential,
48
+ ensureGitignoreHasDist,
50
49
  escapeYamlScalar,
51
50
  executeAndReport,
52
51
  executeValidation,
@@ -86,7 +85,6 @@ import {
86
85
  loadManifestWithPath,
87
86
  loadPluginsWithCss,
88
87
  log,
89
- npmRegistryUrl,
90
88
  openPath,
91
89
  parseExtensionSpecifier,
92
90
  parseRemoteOrigin,
@@ -143,27 +141,31 @@ import {
143
141
  syncProject,
144
142
  testRemoteAccess,
145
143
  validateProjectExtensions
146
- } from "./index-nmykzwb4.js";
144
+ } from "./index-ash0pvb9.js";
147
145
  import {
148
146
  BUILD_DIAGNOSTIC_CODES
149
- } from "./index-12pvhbyz.js";
147
+ } from "./index-yeej2vhs.js";
150
148
  import {
151
149
  BuildError,
152
150
  DEFAULT_PRINT_OPTS,
153
151
  readyProbeExpr
154
- } from "./index-6n15e1ze.js";
152
+ } from "./index-gf1shk3y.js";
155
153
  import {
156
154
  AUTO_SNAPSHOT_MESSAGE,
155
+ DEFAULT_NPM_REGISTRY,
157
156
  HISTORY_PAGE_LIMIT,
157
+ PLUGINS_DIR,
158
158
  RESTORE_BACKUP_MESSAGE,
159
159
  SWITCH_BRANCH_SNAPSHOT_MESSAGE,
160
+ countUnversionedChanges,
160
161
  isNoChangesError,
161
162
  listLocalBranches,
163
+ npmRegistryUrl,
162
164
  providerFor,
163
165
  resolveLogger,
164
166
  restoreVersionWithBackup,
165
167
  switchBranch
166
- } from "./index-c5ev4r1y.js";
168
+ } from "./index-7mqst9tg.js";
167
169
  import {
168
170
  capabilitiesFor,
169
171
  detectProjectSource,
@@ -354,12 +356,14 @@ export {
354
356
  executeValidation,
355
357
  executeAndReport,
356
358
  escapeYamlScalar,
359
+ ensureGitignoreHasDist,
357
360
  disconnectPublishCredential,
358
361
  diagnoseProjectRemote,
359
362
  detectProjectSource,
360
363
  describeExtension,
361
364
  deleteSnippet,
362
365
  defaultConfigDir,
366
+ countUnversionedChanges,
363
367
  connectPublishProvider,
364
368
  connectGoogleDrive,
365
369
  connectGenericHost,
@@ -151,3 +151,23 @@ export interface AdoptFolderOptions {
151
151
  * `styles/book.css`, `.gitignore`, or any markdown file.
152
152
  */
153
153
  export declare function adoptFolder(options: AdoptFolderOptions): Promise<CreateProjectResult>;
154
+ /**
155
+ * Ensure `<projectDir>/.gitignore` excludes the build output directory
156
+ * (`dist/` — lib/output-paths.ts's `DIST_DIRNAME`).
157
+ *
158
+ * Confirmed bug this closes: no scaffolded project ever got a `.gitignore`,
159
+ * and gutterpress's auto-snapshot feature is ON BY DEFAULT and auto-pushes.
160
+ * Every `gutterpress build` writes a fresh, incompressible PDF (plus any copied
161
+ * assets) into `dist/<title-slug>/`; without an ignore rule, the very next
162
+ * snapshot commits and pushes it. That grows `.git` by a full PDF on every
163
+ * build and, once a single artifact crosses GitHub's 100MB per-file limit,
164
+ * the push is rejected outright — for a non-technical author with no way to
165
+ * `git filter-repo` their way out.
166
+ *
167
+ * NEVER overwrites an existing `.gitignore` (global never-delete-user-data
168
+ * rule): if the file already excludes `dist/` in some common spelling
169
+ * (`dist`, `dist/`, `/dist/`, …) it is left untouched; otherwise the line is
170
+ * APPENDED, not prepended or reformatted, so any content the author already
171
+ * has stays exactly as they wrote it.
172
+ */
173
+ export declare function ensureGitignoreHasDist(projectDir: string): Promise<void>;
@@ -10,19 +10,19 @@ export declare const MSG_SYNCED = "Your changes are online.";
10
10
  export declare const MSG_SYNCED_MERGED = "Your changes are online, combined with changes from the online copy.";
11
11
  export declare const MSG_OFFLINE = "Your changes are saved on this computer. gutterpress couldn't reach the online repository \u2014 try syncing again when you're back online.";
12
12
  export declare const MSG_AUTH = "The online repository didn't accept the saved connection. Reconnect and try again.";
13
- export declare const MSG_INSECURE_TRANSPORT = "This project's online address isn't secure, so the saved connection wasn't sent \u2014 connections are never sent over an insecure address. Switch the address to a secure one (starting with https), or to a local loopback address for a server on this computer, to sync.";
13
+ export declare const MSG_INSECURE_TRANSPORT = "This book's online address isn't secure, so the saved connection wasn't sent \u2014 connections are never sent over an insecure address. Switch the address to a secure one (starting with https), or to a local loopback address for a server on this computer, to sync.";
14
14
  export declare const MSG_BUSY = "The online copy is changing very quickly right now. Your work is saved on this computer \u2014 try Sync again in a moment.";
15
15
  /**
16
- * The project's own version history is unreadable — a damaged or missing
16
+ * The book's own version history is unreadable — a damaged or missing
17
17
  * `.git`. Says the three things that are actually true and useful: the writing
18
18
  * is safe, the HISTORY is what broke, and (sync always has a remote, so this
19
19
  * always applies here) a fresh copy from online is the way back.
20
20
  */
21
- export declare const MSG_HISTORY_UNREADABLE = "This project's version history can't be read, so syncing can't continue. Your writing is safe \u2014 every file is still here on this computer. To get history and syncing working again, download a fresh copy of the project from online, then move any recent changes into it.";
22
- export declare const MSG_UNRELATED = "This project and the online copy have no history in common, so they can't be combined. Either the online address points at a different project, or this project's own history was lost and started over. Your writing is safe \u2014 every file is still here on this computer. Check the online address; if it is correct, download a fresh copy from online and move any recent changes into it.";
23
- export declare const MSG_NO_REMOTE = "This project isn't connected to an online repository yet.";
24
- export declare const MSG_SSH_REMOTE = "This project's online address uses SSH (git@\u2026), which gutterpress can't sync to. Switch it to the web (HTTPS) address to sync from here.";
25
- export declare const MSG_NO_BRANCH = "This project's version history isn't on a named branch, so it can't be synced right now.";
21
+ export declare const MSG_HISTORY_UNREADABLE = "This book's version history can't be read, so syncing can't continue. Your writing is safe \u2014 every file is still here on this computer. To get history and syncing working again, download a fresh copy of the book from online, then move any recent changes into it.";
22
+ export declare const MSG_UNRELATED = "This book and the online copy have no history in common, so they can't be combined. Either the online address points at a different book, or this book's own history was lost and started over. Your writing is safe \u2014 every file is still here on this computer. Check the online address; if it is correct, download a fresh copy from online and move any recent changes into it.";
23
+ export declare const MSG_NO_REMOTE = "This book isn't connected to an online repository yet.";
24
+ export declare const MSG_SSH_REMOTE = "This book's online address uses SSH (git@\u2026), which gutterpress can't sync to. Switch it to the web (HTTPS) address to sync from here.";
25
+ export declare const MSG_NO_BRANCH = "This book's version history isn't on a named branch, so it can't be synced right now.";
26
26
  /** Message recorded on the automatic pre-sync snapshot (D5 invariant).
27
27
  * Pre-0.10.1 history carries the old spelling "Snapshot before syncing". */
28
28
  export declare const SYNC_SNAPSHOT_MESSAGE = "Automatic backup of your work";
@@ -190,6 +190,30 @@ export declare function snapshotWorkingTreeUnlocked(options: SnapshotOptions): P
190
190
  * swallow the expected clean-tree rejection without string-matching itself.
191
191
  */
192
192
  export declare function isNoChangesError(e: unknown): boolean;
193
+ /** What "Save a version" would capture in the open book right now. */
194
+ export interface UnversionedChanges {
195
+ /**
196
+ * Files of THIS book (its folder inside the repo) that changed since the
197
+ * last version — writer work only: app-written files (the vendored plugin
198
+ * folder and its install receipt) are not counted.
199
+ */
200
+ changedFiles: number;
201
+ /**
202
+ * A previous version attempt died after staging (its crash marker is still
203
+ * present), so the index may hold work HEAD doesn't have even when the
204
+ * working tree looks clean. The count can't be trusted to be 0 then.
205
+ */
206
+ stale: boolean;
207
+ }
208
+ /**
209
+ * How many files of the open book changed since the last version (snapshot).
210
+ * `null` when the project has no version history (a plain folder). Uses the
211
+ * same workdir-vs-index walk a snapshot uses to decide "nothing new to save".
212
+ * A book inside a larger repo (`subPath`) is counted on its own folder only.
213
+ * Queued behind the repo lock so it never reads the index mid-snapshot;
214
+ * otherwise a lock-free walk that reads no history.
215
+ */
216
+ export declare function countUnversionedChanges(projectDir: string): Promise<UnversionedChanges | null>;
193
217
  /**
194
218
  * Select the {@link SourceProvider} implementation for a classified source.
195
219
  * `managed-github` (#15/#16) is not implemented yet — it throws if reached.
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  MANIFEST_FILENAMES,
3
3
  runLint
4
- } from "./cli-7k2v2sya.js";
4
+ } from "./cli-q4e99n20.js";
5
5
  import {
6
6
  log
7
- } from "./cli-wmvvkwcc.js";
7
+ } from "./cli-qt466d4e.js";
8
8
  import {
9
9
  UsageError,
10
10
  rejectExtraPositionals,
11
11
  rejectUnknownFlags
12
- } from "./cli-ersw5g7j.js";
13
- import"./cli-sekhwex4.js";
12
+ } from "./cli-a569p7v6.js";
13
+ import"./cli-5vdgncmm.js";
14
14
  import"./cli-c41yr7he.js";
15
15
  import {
16
16
  EXIT_CODES
17
17
  } from "./cli-46ycxe6r.js";
18
- import"./cli-c9h2bk2k.js";
18
+ import"./cli-4tx0szk7.js";
19
19
  import"./cli-v5mp7a6q.js";
20
20
  import"./cli-37x76zdn.js";
21
21
 
@@ -7,23 +7,23 @@ import {
7
7
  TARGET_IDS,
8
8
  scaffoldExtension,
9
9
  scaffoldProject
10
- } from "./cli-7k2v2sya.js";
10
+ } from "./cli-q4e99n20.js";
11
11
  import {
12
12
  resolveGhostscript
13
- } from "./cli-wmvvkwcc.js";
13
+ } from "./cli-qt466d4e.js";
14
14
  import {
15
15
  UsageError,
16
16
  rejectExtraPositionals,
17
17
  rejectUnknownFlags
18
- } from "./cli-ersw5g7j.js";
19
- import"./cli-sekhwex4.js";
18
+ } from "./cli-a569p7v6.js";
19
+ import"./cli-5vdgncmm.js";
20
20
  import {
21
21
  isToolAvailable
22
22
  } from "./cli-c41yr7he.js";
23
23
  import {
24
24
  EXIT_CODES
25
25
  } from "./cli-46ycxe6r.js";
26
- import"./cli-c9h2bk2k.js";
26
+ import"./cli-4tx0szk7.js";
27
27
  import"./cli-v5mp7a6q.js";
28
28
  import"./cli-37x76zdn.js";
29
29
 
@@ -252,7 +252,7 @@ var new_default = defineCommand({
252
252
  versionHistory: args.git === false ? "none" : "local-git"
253
253
  });
254
254
  const effectiveTargets = targets ?? [...PRESETS[preset].defaultTargets];
255
- console.log(`Created project: ${result.projectDir}`);
255
+ console.log(`Created book: ${result.projectDir}`);
256
256
  console.log(` manifest: ${result.manifestPath}`);
257
257
  console.log(` publish targets: ${effectiveTargets.length > 0 ? effectiveTargets.join(", ") : "none"}`);
258
258
  console.log(` start writing in: ${result.openFile}`);
@@ -282,7 +282,7 @@ var new_default = defineCommand({
282
282
  } catch (e) {
283
283
  const err = e;
284
284
  const code = err && typeof err.code === "string" ? err.code : "scaffold-io";
285
- console.error(`Could not create project: ${err?.message ?? String(e)}`);
285
+ console.error(`Could not create book: ${err?.message ?? String(e)}`);
286
286
  process.exit(code === "scaffold-io" ? EXIT_CODES.PIPELINE : EXIT_CODES.USAGE);
287
287
  }
288
288
  }
@@ -2,21 +2,21 @@ import {
2
2
  executeValidation,
3
3
  publishTargetFor,
4
4
  reportMissingTools
5
- } from "./cli-7k2v2sya.js";
5
+ } from "./cli-q4e99n20.js";
6
6
  import {
7
7
  log
8
- } from "./cli-wmvvkwcc.js";
8
+ } from "./cli-qt466d4e.js";
9
9
  import {
10
10
  UsageError,
11
11
  rejectExtraPositionals,
12
12
  rejectUnknownFlags
13
- } from "./cli-ersw5g7j.js";
14
- import"./cli-sekhwex4.js";
13
+ } from "./cli-a569p7v6.js";
14
+ import"./cli-5vdgncmm.js";
15
15
  import"./cli-c41yr7he.js";
16
16
  import {
17
17
  EXIT_CODES
18
18
  } from "./cli-46ycxe6r.js";
19
- import"./cli-c9h2bk2k.js";
19
+ import"./cli-4tx0szk7.js";
20
20
  import"./cli-v5mp7a6q.js";
21
21
  import"./cli-37x76zdn.js";
22
22
 
@@ -6,10 +6,10 @@ import {
6
6
  runBuild,
7
7
  splitOutPath,
8
8
  startPreviewServer
9
- } from "./cli-7k2v2sya.js";
9
+ } from "./cli-q4e99n20.js";
10
10
  import {
11
11
  log
12
- } from "./cli-wmvvkwcc.js";
12
+ } from "./cli-qt466d4e.js";
13
13
  import {
14
14
  UsageError,
15
15
  parseFormat,
@@ -17,13 +17,13 @@ import {
17
17
  rejectExtraPositionals,
18
18
  rejectUnknownFlags,
19
19
  resolvePort
20
- } from "./cli-ersw5g7j.js";
21
- import"./cli-sekhwex4.js";
20
+ } from "./cli-a569p7v6.js";
21
+ import"./cli-5vdgncmm.js";
22
22
  import"./cli-c41yr7he.js";
23
23
  import {
24
24
  BuildError
25
25
  } from "./cli-46ycxe6r.js";
26
- import"./cli-c9h2bk2k.js";
26
+ import"./cli-4tx0szk7.js";
27
27
  import"./cli-v5mp7a6q.js";
28
28
  import"./cli-37x76zdn.js";
29
29
 
@@ -49,7 +49,7 @@ var preview_default = defineCommand({
49
49
  const openFlag = args.open;
50
50
  if (format === "html") {
51
51
  if (typeof args.manifest === "string") {
52
- throw new UsageError("--manifest is only supported by preview --format pdf or pdfx; live HTML preview discovers the project manifest from its input directory.");
52
+ throw new UsageError("--manifest is only supported by preview --format pdf or pdfx; live HTML preview discovers the book manifest from its input directory.");
53
53
  }
54
54
  await startPreviewServer({
55
55
  input: inputPath,
@@ -11,22 +11,22 @@ import {
11
11
  publishProviderFor,
12
12
  resolvePublishFormat,
13
13
  runPublish
14
- } from "./cli-7k2v2sya.js";
14
+ } from "./cli-q4e99n20.js";
15
15
  import {
16
16
  FileTokenStore,
17
17
  log
18
- } from "./cli-wmvvkwcc.js";
18
+ } from "./cli-qt466d4e.js";
19
19
  import {
20
20
  UsageError,
21
21
  rejectExtraPositionals,
22
22
  rejectUnknownFlags
23
- } from "./cli-ersw5g7j.js";
24
- import"./cli-sekhwex4.js";
23
+ } from "./cli-a569p7v6.js";
24
+ import"./cli-5vdgncmm.js";
25
25
  import"./cli-c41yr7he.js";
26
26
  import {
27
27
  EXIT_CODES
28
28
  } from "./cli-46ycxe6r.js";
29
- import"./cli-c9h2bk2k.js";
29
+ import"./cli-4tx0szk7.js";
30
30
  import"./cli-v5mp7a6q.js";
31
31
  import"./cli-37x76zdn.js";
32
32
 
@@ -251,7 +251,7 @@ Create one at: ${provider.info.credential.tokenUrl}` : ""));
251
251
  log.error(e instanceof Error ? e.message : String(e));
252
252
  process.exit(e instanceof UsageError ? e.exitCode : EXIT_CODES.FINDINGS);
253
253
  }
254
- log.success(`Connected ${provider.info.label}${account ? ` (${account})` : ""}. The key is stored in your user config, not the project.`);
254
+ log.success(`Connected ${provider.info.label}${account ? ` (${account})` : ""}. The key is stored in your user config, not the book.`);
255
255
  return;
256
256
  }
257
257
  let result;
@@ -4,6 +4,7 @@ import {
4
4
  RESTORE_BACKUP_MESSAGE,
5
5
  SWITCH_BRANCH_SNAPSHOT_MESSAGE,
6
6
  __repoLockQueueSizeForTests,
7
+ countUnversionedChanges,
7
8
  gitDirFor,
8
9
  gitScopeFor,
9
10
  hasPendingChanges,
@@ -19,7 +20,7 @@ import {
19
20
  stageChanges,
20
21
  switchBranch,
21
22
  withRepoLock
22
- } from "./cli-c9h2bk2k.js";
23
+ } from "./cli-4tx0szk7.js";
23
24
  import"./cli-v5mp7a6q.js";
24
25
  import"./cli-37x76zdn.js";
25
26
  export {
@@ -38,6 +39,7 @@ export {
38
39
  hasPendingChanges,
39
40
  gitScopeFor,
40
41
  gitDirFor,
42
+ countUnversionedChanges,
41
43
  __repoLockQueueSizeForTests,
42
44
  SWITCH_BRANCH_SNAPSHOT_MESSAGE,
43
45
  RESTORE_BACKUP_MESSAGE,
@@ -4,6 +4,7 @@ import {
4
4
  RESTORE_BACKUP_MESSAGE,
5
5
  SWITCH_BRANCH_SNAPSHOT_MESSAGE,
6
6
  __repoLockQueueSizeForTests,
7
+ countUnversionedChanges,
7
8
  gitDirFor,
8
9
  gitScopeFor,
9
10
  hasPendingChanges,
@@ -19,7 +20,7 @@ import {
19
20
  stageChanges,
20
21
  switchBranch,
21
22
  withRepoLock
22
- } from "./index-c5ev4r1y.js";
23
+ } from "./index-7mqst9tg.js";
23
24
  import"./index-v5mp7a6q.js";
24
25
  import"./index-37x76zdn.js";
25
26
  export {
@@ -38,6 +39,7 @@ export {
38
39
  hasPendingChanges,
39
40
  gitScopeFor,
40
41
  gitDirFor,
42
+ countUnversionedChanges,
41
43
  __repoLockQueueSizeForTests,
42
44
  SWITCH_BRANCH_SNAPSHOT_MESSAGE,
43
45
  RESTORE_BACKUP_MESSAGE,
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  executeAndReport
3
- } from "./cli-7k2v2sya.js";
3
+ } from "./cli-q4e99n20.js";
4
4
  import {
5
5
  log
6
- } from "./cli-wmvvkwcc.js";
6
+ } from "./cli-qt466d4e.js";
7
7
  import {
8
8
  UsageError,
9
9
  rejectExtraPositionals,
10
10
  rejectUnknownFlags
11
- } from "./cli-ersw5g7j.js";
12
- import"./cli-sekhwex4.js";
11
+ } from "./cli-a569p7v6.js";
12
+ import"./cli-5vdgncmm.js";
13
13
  import"./cli-c41yr7he.js";
14
14
  import {
15
15
  EXIT_CODES
16
16
  } from "./cli-46ycxe6r.js";
17
- import"./cli-c9h2bk2k.js";
17
+ import"./cli-4tx0szk7.js";
18
18
  import"./cli-v5mp7a6q.js";
19
19
  import"./cli-37x76zdn.js";
20
20
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gutterpress",
3
- "version": "0.11.6-alpha.2",
3
+ "version": "0.11.6-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",