gutterpress 0.11.23-alpha.7 → 0.11.23-beta.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.
- package/README.md +3 -1
- package/dist/{README-syg2hn83.md → README-8rct3axy.md} +2 -2
- package/dist/api/index.d.ts +3 -3
- package/dist/api/index.js +8 -6
- package/dist/{build-w572wq10.js → build-3e18wnqj.js} +9 -8
- package/dist/{cli-mmgtqnmr.js → cli-0ep11b0q.js} +1 -1
- package/dist/cli-65gy8ask.js +82 -0
- package/dist/{cli-6pv84kf3.js → cli-88arpdke.js} +6 -84
- package/dist/{cli-eatdqx3z.js → cli-9n9kg58f.js} +1 -1
- package/dist/{cli-58fsk6d7.js → cli-pd2cje5b.js} +187 -44
- package/dist/{cli-3cvq3n1c.js → cli-pnrararp.js} +189 -85
- package/dist/{cli-wyg7qstd.js → cli-tgnyvra3.js} +15 -5
- package/dist/{cli-31anr0r9.js → cli-v0evdpdf.js} +68 -28
- package/dist/{cli-5ba6bm6z.js → cli-x7gcdg6w.js} +1 -1
- package/dist/cli.js +12 -12
- package/dist/{doctor-2f3zqmza.js → doctor-2f4s9dyn.js} +3 -3
- package/dist/engine/compiler/postprocess.d.ts +3 -0
- package/dist/engine/shared/page-vars.d.ts +32 -0
- package/dist/engine/shared/pdf-inspect.d.ts +33 -0
- package/dist/{engine-4rabsgwq.js → engine-c4pxz79g.js} +2 -1
- package/dist/{engine-wm4fggac.js → engine-cs5g2ez0.js} +3 -3
- package/dist/{ext-0cgky8n3.js → ext-70gv86v5.js} +9 -8
- package/dist/{extension-restore-vghc58vx.js → extension-restore-chj5nx3t.js} +3 -3
- package/dist/{extension-restore-e7je32pr.js → extension-restore-pd87p8r2.js} +5 -4
- package/dist/{gutterpress-agent-d29ry3ak.js → gutterpress-agent-wyryqehx.js} +13 -4
- package/dist/{gutterpress-viewer-mafsby5k.js → gutterpress-viewer-ywkf49q5.js} +90 -166
- package/dist/{index-nfysshcc.js → index-0k43evt0.js} +309 -155
- package/dist/{index-wm4x7xbf.js → index-2t1gdma7.js} +178 -35
- package/dist/{index-cw03e9p4.js → index-7j3hkwya.js} +68 -28
- package/dist/{index-fp7xwvpr.js → index-80vg3ed6.js} +15 -5
- package/dist/{index-2vxzxyyj.js → index-swfdgn2n.js} +10 -10
- package/dist/index-tayzfr9c.js +99 -0
- package/dist/{index-hphcn7th.js → index-ytjkvwy5.js} +5 -85
- package/dist/index.d.ts +2 -0
- package/dist/index.js +234 -7
- package/dist/lib/book-css.d.ts +56 -0
- package/dist/lib/markdown/assemble.d.ts +58 -0
- package/dist/lib/markdown/gutterpress-css.d.ts +1 -1
- package/dist/lib/publish/google-drive.d.ts +12 -4
- package/dist/lib/publish/manifest-publish.d.ts +6 -0
- package/dist/lib/publish/providers/gdrive-folder.d.ts +30 -0
- package/dist/lib/publish/run-publish.d.ts +6 -1
- package/dist/lib/publish/types.d.ts +52 -5
- package/dist/lib/remote-auth/converge-merge.d.ts +3 -3
- package/dist/lib/remote-auth/sync-messages.d.ts +2 -2
- package/dist/lib/root-tokens.d.ts +76 -0
- package/dist/lib/source-provider.d.ts +27 -0
- package/dist/lib/version-changes.d.ts +26 -16
- package/dist/{manifest-79zsgkpn.yaml → manifest-0vwaskj2.yaml} +1 -1
- package/dist/{manifest-2kc56wvw.yaml → manifest-aya31jwt.yaml} +1 -1
- package/dist/{manifest-41ddzm13.yaml → manifest-mffah3hr.yaml} +1 -1
- package/dist/{manifest-sqzm4681.yaml → manifest-wbcv8cbp.yaml} +2 -2
- package/dist/{manifest.schema-93sd7zje.json → manifest.schema-0jgj0jt1.json} +1 -1
- package/dist/{new-88rkrv71.js → new-d61n5cn0.js} +9 -8
- package/dist/{page-rules-ytj9p04v.css → page-rules-vnja6grt.css} +2 -2
- package/dist/{plugins-3aj0wc5h.js → plugins-0hhw6s17.js} +1 -1
- package/dist/{plugins-sprxsz5d.js → plugins-e0n46s6m.js} +3 -3
- package/dist/{preflight-11dg1qkk.js → preflight-fjayhjr5.js} +9 -8
- package/dist/{preview-nftp782j.js → preview-h815jrfb.js} +9 -8
- package/dist/{publish-6tgxfck9.js → publish-ft39zgma.js} +25 -9
- package/dist/render.js +77 -26
- package/dist/schema/manifest.types.d.ts +2 -1
- package/dist/{source-provider-n7vehh6t.js → source-provider-j1w7byeq.js} +5 -1
- package/dist/{source-provider-tgzet3j5.js → source-provider-tjaf303m.js} +5 -1
- package/dist/test-helpers/vocabulary.d.ts +12 -0
- package/dist/{tokens-n82t4k9h.css → tokens-a7grv940.css} +4 -5
- package/dist/{validate-pktqrye5.js → validate-b201dbrb.js} +9 -8
- package/package.json +1 -1
- package/dist/index-46ycxe6r.js +0 -18
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeValidation,
|
|
3
3
|
reportMissingTools
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
4
|
+
} from "./cli-pnrararp.js";
|
|
5
|
+
import"./cli-0ep11b0q.js";
|
|
6
6
|
import"./cli-ht1bcqdd.js";
|
|
7
|
-
import"./cli-
|
|
7
|
+
import"./cli-pd2cje5b.js";
|
|
8
8
|
import"./cli-5crpmz42.js";
|
|
9
9
|
import"./cli-eyyggect.js";
|
|
10
10
|
import"./cli-asap4t1z.js";
|
|
11
|
-
import"./cli-
|
|
11
|
+
import"./cli-v0evdpdf.js";
|
|
12
12
|
import"./cli-v5mp7a6q.js";
|
|
13
13
|
import {
|
|
14
14
|
publishTargetFor
|
|
15
|
-
} from "./cli-
|
|
16
|
-
import"./cli-
|
|
15
|
+
} from "./cli-88arpdke.js";
|
|
16
|
+
import"./cli-tgnyvra3.js";
|
|
17
17
|
import {
|
|
18
18
|
log
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-9n9kg58f.js";
|
|
20
20
|
import {
|
|
21
21
|
UsageError,
|
|
22
22
|
rejectExtraPositionals,
|
|
23
23
|
rejectUnknownFlags
|
|
24
24
|
} from "./cli-d8xjns66.js";
|
|
25
|
-
import"./cli-
|
|
25
|
+
import"./cli-x7gcdg6w.js";
|
|
26
|
+
import"./cli-65gy8ask.js";
|
|
26
27
|
import {
|
|
27
28
|
BuildError,
|
|
28
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-pnrararp.js";
|
|
7
|
+
import"./cli-0ep11b0q.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-pd2cje5b.js";
|
|
13
13
|
import"./cli-5crpmz42.js";
|
|
14
14
|
import"./cli-eyyggect.js";
|
|
15
15
|
import"./cli-asap4t1z.js";
|
|
16
|
-
import"./cli-
|
|
16
|
+
import"./cli-v0evdpdf.js";
|
|
17
17
|
import"./cli-v5mp7a6q.js";
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
18
|
+
import"./cli-88arpdke.js";
|
|
19
|
+
import"./cli-tgnyvra3.js";
|
|
20
20
|
import {
|
|
21
21
|
log
|
|
22
|
-
} from "./cli-
|
|
22
|
+
} from "./cli-9n9kg58f.js";
|
|
23
23
|
import {
|
|
24
24
|
UsageError,
|
|
25
25
|
parseFormat,
|
|
@@ -28,7 +28,8 @@ import {
|
|
|
28
28
|
rejectUnknownFlags,
|
|
29
29
|
resolvePort
|
|
30
30
|
} from "./cli-d8xjns66.js";
|
|
31
|
-
import"./cli-
|
|
31
|
+
import"./cli-x7gcdg6w.js";
|
|
32
|
+
import"./cli-65gy8ask.js";
|
|
32
33
|
import {
|
|
33
34
|
BuildError
|
|
34
35
|
} from "./cli-46ycxe6r.js";
|
|
@@ -10,30 +10,31 @@ import {
|
|
|
10
10
|
resolvePublishFormat,
|
|
11
11
|
resolvePublishProvider,
|
|
12
12
|
runPublish
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-pnrararp.js";
|
|
14
14
|
import {
|
|
15
15
|
FileTokenStore
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-0ep11b0q.js";
|
|
17
17
|
import"./cli-ht1bcqdd.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-pd2cje5b.js";
|
|
19
19
|
import"./cli-5crpmz42.js";
|
|
20
20
|
import"./cli-eyyggect.js";
|
|
21
21
|
import"./cli-asap4t1z.js";
|
|
22
|
-
import"./cli-
|
|
22
|
+
import"./cli-v0evdpdf.js";
|
|
23
23
|
import"./cli-v5mp7a6q.js";
|
|
24
24
|
import {
|
|
25
25
|
loadManifestWithPath
|
|
26
|
-
} from "./cli-
|
|
27
|
-
import"./cli-
|
|
26
|
+
} from "./cli-88arpdke.js";
|
|
27
|
+
import"./cli-tgnyvra3.js";
|
|
28
28
|
import {
|
|
29
29
|
log
|
|
30
|
-
} from "./cli-
|
|
30
|
+
} from "./cli-9n9kg58f.js";
|
|
31
31
|
import {
|
|
32
32
|
UsageError,
|
|
33
33
|
rejectExtraPositionals,
|
|
34
34
|
rejectUnknownFlags
|
|
35
35
|
} from "./cli-d8xjns66.js";
|
|
36
|
-
import"./cli-
|
|
36
|
+
import"./cli-x7gcdg6w.js";
|
|
37
|
+
import"./cli-65gy8ask.js";
|
|
37
38
|
import {
|
|
38
39
|
BuildError,
|
|
39
40
|
EXIT_CODES
|
|
@@ -128,6 +129,14 @@ var commandArgs = {
|
|
|
128
129
|
type: "string",
|
|
129
130
|
description: "Artifact to publish (PDF path, or HTML export dir). Default: the manifest's output location"
|
|
130
131
|
},
|
|
132
|
+
"folder-id": {
|
|
133
|
+
type: "string",
|
|
134
|
+
description: "Google Drive: publish to this folder id for this run only (the manifest is not changed)"
|
|
135
|
+
},
|
|
136
|
+
folder: {
|
|
137
|
+
type: "string",
|
|
138
|
+
description: "Google Drive: publish to the folder with this name in your own Drive, found or created, for this run only (the manifest is not changed)"
|
|
139
|
+
},
|
|
131
140
|
manifest: { type: "string", description: "Path to manifest.yaml" },
|
|
132
141
|
"dry-run": { type: "boolean", description: "Preflight only; don't contact the platform" },
|
|
133
142
|
json: { type: "boolean", description: "Machine-readable JSON output (CI)" },
|
|
@@ -274,6 +283,12 @@ Create one at: ${provider.info.credential.tokenUrl}` : ""));
|
|
|
274
283
|
log.success(`Connected ${provider.info.label}${account ? ` (${account})` : ""}. The key is stored in your user config, not the book.`);
|
|
275
284
|
return;
|
|
276
285
|
}
|
|
286
|
+
const folderId = typeof args["folder-id"] === "string" ? args["folder-id"].trim() : "";
|
|
287
|
+
const folder = typeof args.folder === "string" ? args.folder.trim() : "";
|
|
288
|
+
if ((folderId || folder) && provider.info.id !== "gdrive") {
|
|
289
|
+
log.error("--folder-id and --folder are for --provider gdrive.");
|
|
290
|
+
process.exit(EXIT_CODES.USAGE);
|
|
291
|
+
}
|
|
277
292
|
let result;
|
|
278
293
|
try {
|
|
279
294
|
result = await runPublish({
|
|
@@ -282,7 +297,8 @@ Create one at: ${provider.info.credential.tokenUrl}` : ""));
|
|
|
282
297
|
provider,
|
|
283
298
|
manifestPath: typeof args.manifest === "string" ? args.manifest : undefined,
|
|
284
299
|
artifactPath: typeof args.file === "string" ? args.file : undefined,
|
|
285
|
-
dryRun: !!args["dry-run"]
|
|
300
|
+
dryRun: !!args["dry-run"],
|
|
301
|
+
...folderId || folder ? { settings: { folderId, folder } } : {}
|
|
286
302
|
}, deps);
|
|
287
303
|
} catch (e) {
|
|
288
304
|
if (e instanceof UsageError) {
|
package/dist/render.js
CHANGED
|
@@ -1431,8 +1431,9 @@ img.gp-shape {
|
|
|
1431
1431
|
|
|
1432
1432
|
/* Math (the bundled gutterpress-math feature, math.ts): MathJax's own rules
|
|
1433
1433
|
for the <mjx-container> SVG output it emits, from its SVG output jax's
|
|
1434
|
-
stylesheet, less the ones for its interactive menu and tooltips
|
|
1435
|
-
|
|
1434
|
+
stylesheet, less the ones for its interactive menu and tooltips, plus one
|
|
1435
|
+
bound of ours on the hidden MathML copy (#469, below). Inert in a book
|
|
1436
|
+
without formulas. */
|
|
1436
1437
|
mjx-container[jax="SVG"] { direction: ltr; }
|
|
1437
1438
|
mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; }
|
|
1438
1439
|
mjx-container[jax="SVG"] > svg a { fill: blue; stroke: blue; }
|
|
@@ -1449,6 +1450,15 @@ mjx-assistive-mml {
|
|
|
1449
1450
|
border: 0px !important;
|
|
1450
1451
|
display: block !important;
|
|
1451
1452
|
width: auto !important;
|
|
1453
|
+
/* Ours (#469). The browser lays the copy out in whatever math font it has,
|
|
1454
|
+
so it can be wider than the formula's SVG; ending a line, it crossed the
|
|
1455
|
+
column edge and Chromium shrank the whole print to fit. MathJax makes the
|
|
1456
|
+
container position: relative with the copy at its top left, so 100% is
|
|
1457
|
+
the formula's width. Clip and overflow still hide the copy and its MathML
|
|
1458
|
+
still reaches screen readers; only its box changes. Not the 1px
|
|
1459
|
+
visually-hidden box MathJax 2 used: its docs note VoiceOver on iOS could
|
|
1460
|
+
not reach a formula by touch in it. */
|
|
1461
|
+
max-width: 100% !important;
|
|
1452
1462
|
overflow: hidden !important;
|
|
1453
1463
|
user-select: none;
|
|
1454
1464
|
}
|
|
@@ -3008,6 +3018,7 @@ var UNITS_PER_PT = {
|
|
|
3008
3018
|
var DEFAULT_PAGE_MARGIN_PT = 72;
|
|
3009
3019
|
|
|
3010
3020
|
// src/lib/markdown/assemble.ts
|
|
3021
|
+
import postcss from "postcss";
|
|
3011
3022
|
function pageGeometryCss(page) {
|
|
3012
3023
|
if (!page || !isPositivePoints(page.width) || !isPositivePoints(page.height))
|
|
3013
3024
|
return null;
|
|
@@ -3028,6 +3039,65 @@ function defaultPageMarginCss(page) {
|
|
|
3028
3039
|
@page { margin: ${cssLength(DEFAULT_PAGE_MARGIN_PT)}; }
|
|
3029
3040
|
}`;
|
|
3030
3041
|
}
|
|
3042
|
+
function liftPageRules(css) {
|
|
3043
|
+
if (!/@page\b/i.test(css))
|
|
3044
|
+
return { layered: css, pages: "" };
|
|
3045
|
+
let root;
|
|
3046
|
+
try {
|
|
3047
|
+
root = postcss.parse(css);
|
|
3048
|
+
} catch {
|
|
3049
|
+
return { layered: css, pages: "" };
|
|
3050
|
+
}
|
|
3051
|
+
const found = [];
|
|
3052
|
+
root.walkAtRules(/^page$/i, (rule) => {
|
|
3053
|
+
found.push(rule);
|
|
3054
|
+
});
|
|
3055
|
+
const pages = found.map((rule) => {
|
|
3056
|
+
let lifted = rule.clone();
|
|
3057
|
+
for (let p = rule.parent;p instanceof postcss.AtRule || p instanceof postcss.Rule; p = p.parent) {
|
|
3058
|
+
if (p instanceof postcss.AtRule && p.name.toLowerCase() === "layer")
|
|
3059
|
+
continue;
|
|
3060
|
+
lifted = p.clone({ nodes: [] }).append(lifted);
|
|
3061
|
+
}
|
|
3062
|
+
rule.remove();
|
|
3063
|
+
return lifted.toString();
|
|
3064
|
+
});
|
|
3065
|
+
return { layered: root.toString(), pages: pages.join(`
|
|
3066
|
+
`) };
|
|
3067
|
+
}
|
|
3068
|
+
var CORE_MARKERS = liftPageRules(`${MARKER_CSS.trim()}
|
|
3069
|
+
${TWO_VERSIONS_CSS.trim()}`);
|
|
3070
|
+
var CORE_VOCAB = liftPageRules(GUTTERPRESS_CSS.trim());
|
|
3071
|
+
function assembleCssChunks(opts) {
|
|
3072
|
+
const core = (css) => css ? [{ origin: { kind: "core" }, css }] : [];
|
|
3073
|
+
const headed = (title, chunks = []) => chunks.map((chunk, i) => i === 0 ? { ...chunk, css: `/* ${title} */
|
|
3074
|
+
${chunk.css.trim()}` } : chunk);
|
|
3075
|
+
const pageGeometry = pageGeometryCss(opts.printArea);
|
|
3076
|
+
const defaultMargin = defaultPageMarginCss(opts.printArea);
|
|
3077
|
+
return [
|
|
3078
|
+
...core("@layer gp.marker, gp.vocab;"),
|
|
3079
|
+
...core(`/* gutterpress markers */
|
|
3080
|
+
@layer gp.marker {
|
|
3081
|
+
${CORE_MARKERS.layered.trim()}
|
|
3082
|
+
}`),
|
|
3083
|
+
...core(CORE_MARKERS.pages && `/* gutterpress markers: page rules */
|
|
3084
|
+
${CORE_MARKERS.pages}`),
|
|
3085
|
+
...core(`/* gutterpress */
|
|
3086
|
+
@layer gp.vocab {
|
|
3087
|
+
${CORE_VOCAB.layered.trim()}
|
|
3088
|
+
}`),
|
|
3089
|
+
...core(CORE_VOCAB.pages && `/* gutterpress: page rules */
|
|
3090
|
+
${CORE_VOCAB.pages}`),
|
|
3091
|
+
...core(defaultMargin && `/* page margins (default) */
|
|
3092
|
+
${defaultMargin}`),
|
|
3093
|
+
...headed("extension css", opts.extensions),
|
|
3094
|
+
...core(`/* column alignment */
|
|
3095
|
+
${TABLE_ALIGN_CSS.trim()}`),
|
|
3096
|
+
...headed("project css", opts.book),
|
|
3097
|
+
...core(pageGeometry && `/* page geometry (manifest) */
|
|
3098
|
+
${pageGeometry}`)
|
|
3099
|
+
];
|
|
3100
|
+
}
|
|
3031
3101
|
async function assembleBookHtml(opts) {
|
|
3032
3102
|
const title = opts.title ?? "Document";
|
|
3033
3103
|
const projectCss = opts.projectCss ?? "";
|
|
@@ -3066,30 +3136,11 @@ async function assembleBookHtml(opts) {
|
|
|
3066
3136
|
imageRefs.add(ref);
|
|
3067
3137
|
opts.onImageRefs([...imageRefs]);
|
|
3068
3138
|
}
|
|
3069
|
-
const
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
"
|
|
3073
|
-
|
|
3074
|
-
@layer gp.marker {
|
|
3075
|
-
${MARKER_CSS.trim()}
|
|
3076
|
-
${TWO_VERSIONS_CSS.trim()}
|
|
3077
|
-
}`,
|
|
3078
|
-
`/* gutterpress */
|
|
3079
|
-
@layer gp.vocab {
|
|
3080
|
-
${GUTTERPRESS_CSS.trim()}
|
|
3081
|
-
}`,
|
|
3082
|
-
defaultMargin ? `/* page margins (default) */
|
|
3083
|
-
${defaultMargin}` : null,
|
|
3084
|
-
pluginCss ? `/* extension css */
|
|
3085
|
-
${pluginCss.trim()}` : null,
|
|
3086
|
-
`/* column alignment */
|
|
3087
|
-
${TABLE_ALIGN_CSS.trim()}`,
|
|
3088
|
-
projectCss ? `/* project css */
|
|
3089
|
-
${projectCss.trim()}` : null,
|
|
3090
|
-
pageGeometry ? `/* page geometry (manifest) */
|
|
3091
|
-
${pageGeometry}` : null
|
|
3092
|
-
].filter(Boolean).join(`
|
|
3139
|
+
const inlineCss = assembleCssChunks({
|
|
3140
|
+
printArea: opts.printArea,
|
|
3141
|
+
extensions: pluginCss ? [{ origin: { kind: "extension" }, css: pluginCss }] : [],
|
|
3142
|
+
book: projectCss ? [{ origin: { kind: "book" }, css: projectCss }] : []
|
|
3143
|
+
}).map((chunk) => chunk.css).join(`
|
|
3093
3144
|
|
|
3094
3145
|
`);
|
|
3095
3146
|
const preloadTags = (opts.preloadImages ?? []).map((href) => `
|
|
@@ -266,7 +266,8 @@ export interface GutterpressManifest {
|
|
|
266
266
|
* Page margins (pt), the space between the trim and the text on each
|
|
267
267
|
* edge — `inside` is the binding edge, `outside` the other. Setup >
|
|
268
268
|
* Details in the app writes it. When set, the book prints with these
|
|
269
|
-
* margins and any `@page` margin in a stylesheet is overridden
|
|
269
|
+
* margins and any `@page` margin in a stylesheet is overridden, except
|
|
270
|
+
* where a named page sets its own (`@page full { margin: 0 }`); left
|
|
270
271
|
* out, the stylesheets' `@page` margins apply (a look's design), else
|
|
271
272
|
* 1in. All four edges are required together.
|
|
272
273
|
*/
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
isNoChangesError,
|
|
17
17
|
listRevisions,
|
|
18
18
|
listWorkdirChanges,
|
|
19
|
+
nextInHistory,
|
|
19
20
|
providerFor,
|
|
20
21
|
readRevisionRefs,
|
|
21
22
|
resolveGitAuthor,
|
|
@@ -24,10 +25,11 @@ import {
|
|
|
24
25
|
snapshotStagingMarkerPath,
|
|
25
26
|
snapshotWorkingTreeUnlocked,
|
|
26
27
|
stageChanges,
|
|
28
|
+
startHistoryWalk,
|
|
27
29
|
switchBranch,
|
|
28
30
|
whenGitIdle,
|
|
29
31
|
withRepoLock
|
|
30
|
-
} from "./cli-
|
|
32
|
+
} from "./cli-v0evdpdf.js";
|
|
31
33
|
import"./cli-v5mp7a6q.js";
|
|
32
34
|
import"./cli-y28j019d.js";
|
|
33
35
|
import"./cli-37x76zdn.js";
|
|
@@ -35,6 +37,7 @@ export {
|
|
|
35
37
|
withRepoLock,
|
|
36
38
|
whenGitIdle,
|
|
37
39
|
switchBranch,
|
|
40
|
+
startHistoryWalk,
|
|
38
41
|
stageChanges,
|
|
39
42
|
snapshotWorkingTreeUnlocked,
|
|
40
43
|
snapshotStagingMarkerPath,
|
|
@@ -43,6 +46,7 @@ export {
|
|
|
43
46
|
resolveGitAuthor,
|
|
44
47
|
readRevisionRefs,
|
|
45
48
|
providerFor,
|
|
49
|
+
nextInHistory,
|
|
46
50
|
listWorkdirChanges,
|
|
47
51
|
listRevisions,
|
|
48
52
|
isNoChangesError,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
isNoChangesError,
|
|
17
17
|
listRevisions,
|
|
18
18
|
listWorkdirChanges,
|
|
19
|
+
nextInHistory,
|
|
19
20
|
providerFor,
|
|
20
21
|
readRevisionRefs,
|
|
21
22
|
resolveGitAuthor,
|
|
@@ -24,10 +25,11 @@ import {
|
|
|
24
25
|
snapshotStagingMarkerPath,
|
|
25
26
|
snapshotWorkingTreeUnlocked,
|
|
26
27
|
stageChanges,
|
|
28
|
+
startHistoryWalk,
|
|
27
29
|
switchBranch,
|
|
28
30
|
whenGitIdle,
|
|
29
31
|
withRepoLock
|
|
30
|
-
} from "./index-
|
|
32
|
+
} from "./index-7j3hkwya.js";
|
|
31
33
|
import"./index-5x42amh8.js";
|
|
32
34
|
import"./index-v5mp7a6q.js";
|
|
33
35
|
import"./index-37x76zdn.js";
|
|
@@ -35,6 +37,7 @@ export {
|
|
|
35
37
|
withRepoLock,
|
|
36
38
|
whenGitIdle,
|
|
37
39
|
switchBranch,
|
|
40
|
+
startHistoryWalk,
|
|
38
41
|
stageChanges,
|
|
39
42
|
snapshotWorkingTreeUnlocked,
|
|
40
43
|
snapshotStagingMarkerPath,
|
|
@@ -43,6 +46,7 @@ export {
|
|
|
43
46
|
resolveGitAuthor,
|
|
44
47
|
readRevisionRefs,
|
|
45
48
|
providerFor,
|
|
49
|
+
nextInHistory,
|
|
46
50
|
listWorkdirChanges,
|
|
47
51
|
listRevisions,
|
|
48
52
|
isNoChangesError,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The words a writer never sees, as ONE list for every vocabulary test (#448).
|
|
3
|
+
*
|
|
4
|
+
* TEST-ONLY, like testkit.ts. The rules are docs/ux-design-contract.md's
|
|
5
|
+
* "Vocabulary (what an Author reads)"; this is the list the tests hold
|
|
6
|
+
* writer-facing strings to, so a word is banned in one place. Each test keeps
|
|
7
|
+
* its own exceptions (an author's own note, the SSH hint's `git@…` address).
|
|
8
|
+
*/
|
|
9
|
+
/** Matched against lowercased text. */
|
|
10
|
+
export declare const BANNED_TERMS: readonly RegExp[];
|
|
11
|
+
/** The banned terms `text` uses (lowercased); empty when it reads right. */
|
|
12
|
+
export declare function bannedTermsIn(text: string): string[];
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* OWNS
|
|
5
5
|
* `:root` custom properties, and nothing else. The palette, the type scale,
|
|
6
6
|
* the spacing scale, the measure. This is the file to edit to rebrand the
|
|
7
|
-
* look. The desktop app's Book setup lists these tokens
|
|
8
|
-
*
|
|
9
|
-
* to that book's own stylesheet, never to this file.
|
|
7
|
+
* look. The desktop app's Book setup lists these tokens and saves a
|
|
8
|
+
* book's changes to that book's own stylesheet, never to this file.
|
|
10
9
|
*
|
|
11
10
|
* MUST NOT CONTAIN
|
|
12
11
|
* - Any selector other than `:root`. The moment a rule here targets `h1`,
|
|
@@ -18,12 +17,12 @@
|
|
|
18
17
|
* waiting to happen.
|
|
19
18
|
* - Anything a specific book needs. Book-specific values go in book.css.
|
|
20
19
|
*
|
|
21
|
-
* WHAT
|
|
20
|
+
* WHAT BOOK SETUP SHOWS is curated with comments. Right above one
|
|
22
21
|
* declaration: `@label Accent color` (its plain-words name), `@group Paper`
|
|
23
22
|
* (its heading), `@internal` (not shown). Right above a `:root` selector:
|
|
24
23
|
* `@group` or `@internal` for the whole block, which a declaration's own
|
|
25
24
|
* comment overrides. One `@internal` line above a block of component
|
|
26
|
-
* defaults keeps them
|
|
25
|
+
* defaults keeps them out of Book setup.
|
|
27
26
|
*
|
|
28
27
|
* LOADS FIRST, and therefore declares the layer order for the whole stack.
|
|
29
28
|
* ======================================================================== */
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeAndReport
|
|
3
|
-
} from "./cli-
|
|
4
|
-
import"./cli-
|
|
3
|
+
} from "./cli-pnrararp.js";
|
|
4
|
+
import"./cli-0ep11b0q.js";
|
|
5
5
|
import"./cli-ht1bcqdd.js";
|
|
6
|
-
import"./cli-
|
|
6
|
+
import"./cli-pd2cje5b.js";
|
|
7
7
|
import"./cli-5crpmz42.js";
|
|
8
8
|
import"./cli-eyyggect.js";
|
|
9
9
|
import"./cli-asap4t1z.js";
|
|
10
|
-
import"./cli-
|
|
10
|
+
import"./cli-v0evdpdf.js";
|
|
11
11
|
import"./cli-v5mp7a6q.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
12
|
+
import"./cli-88arpdke.js";
|
|
13
|
+
import"./cli-tgnyvra3.js";
|
|
14
14
|
import {
|
|
15
15
|
log
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-9n9kg58f.js";
|
|
17
17
|
import {
|
|
18
18
|
UsageError,
|
|
19
19
|
rejectExtraPositionals,
|
|
20
20
|
rejectUnknownFlags
|
|
21
21
|
} from "./cli-d8xjns66.js";
|
|
22
|
-
import"./cli-
|
|
22
|
+
import"./cli-x7gcdg6w.js";
|
|
23
|
+
import"./cli-65gy8ask.js";
|
|
23
24
|
import {
|
|
24
25
|
BuildError,
|
|
25
26
|
EXIT_CODES
|
package/package.json
CHANGED
package/dist/index-46ycxe6r.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// src/lib/build-error.ts
|
|
2
|
-
var EXIT_CODES = {
|
|
3
|
-
OK: 0,
|
|
4
|
-
FINDINGS: 1,
|
|
5
|
-
USAGE: 2,
|
|
6
|
-
PIPELINE: 3
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
class BuildError extends Error {
|
|
10
|
-
exitCode;
|
|
11
|
-
constructor(message, exitCode = EXIT_CODES.PIPELINE, options) {
|
|
12
|
-
super(message, options);
|
|
13
|
-
this.name = "BuildError";
|
|
14
|
-
this.exitCode = exitCode;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { EXIT_CODES, BuildError };
|