gutterpress 0.10.9 → 0.10.10-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 (58) hide show
  1. package/README.md +66 -5
  2. package/dist/{README-jntqyj1z.md → README-3zk4tgnj.md} +4 -4
  3. package/dist/{README-6c7fda1s.md → README-7x5akcns.md} +5 -4
  4. package/dist/api/index.d.ts +7 -4
  5. package/dist/api/index.js +22 -12
  6. package/dist/{audit-fq7s1gsz.js → audit-wcmbgh39.js} +5 -5
  7. package/dist/{build-dyat3fqd.js → build-c1w6kqpv.js} +6 -6
  8. package/dist/{cli-ypfvnhag.js → cli-2rswy18t.js} +1 -1
  9. package/dist/{cli-w692g6dx.js → cli-4mtf9ajw.js} +127 -1
  10. package/dist/{cli-bzxqtvrk.js → cli-75qkn0k5.js} +1 -1
  11. package/dist/{cli-bx950tb4.js → cli-k8f9eb12.js} +22 -26
  12. package/dist/{cli-8pg731p5.js → cli-n0vgey6x.js} +4914 -4707
  13. package/dist/{cli-rh05byck.js → cli-scqp638v.js} +1 -1
  14. package/dist/cli.js +16 -16
  15. package/dist/{components-0mmswvvm.yaml → components-dhgv2sm7.yaml} +2 -2
  16. package/dist/{doctor-yr85n080.js → doctor-drv36btj.js} +2 -2
  17. package/dist/{engine-d46wgg99.js → engine-pt2acjb5.js} +2 -2
  18. package/dist/{engine-19mshh07.js → engine-qtmvaqt7.js} +1 -1
  19. package/dist/{ext-jrg8c48s.js → ext-xqx26xvy.js} +52 -8
  20. package/dist/{index-mey5vraz.js → index-1he93sjd.js} +918 -796
  21. package/dist/{index-zwcv1njy.js → index-5dgxeevv.js} +22 -26
  22. package/dist/{index-dhgzkhs7.js → index-a0e2253t.js} +1 -1
  23. package/dist/{index-dtrftayr.js → index-y01v2fe0.js} +127 -1
  24. package/dist/index.js +102 -15
  25. package/dist/lib/build-error.d.ts +6 -5
  26. package/dist/lib/build-preflight.d.ts +11 -1
  27. package/dist/lib/build-runner.d.ts +49 -16
  28. package/dist/lib/extension-import.d.ts +4 -4
  29. package/dist/lib/extension-manager.d.ts +3 -3
  30. package/dist/lib/extension-manifest.d.ts +91 -87
  31. package/dist/lib/extension-scaffold.d.ts +1 -1
  32. package/dist/lib/extension-search.d.ts +46 -0
  33. package/dist/lib/host-policy.d.ts +10 -12
  34. package/dist/lib/lint-runner.d.ts +16 -9
  35. package/dist/lib/npm-registry.d.ts +22 -0
  36. package/dist/lib/source-provider.d.ts +71 -0
  37. package/dist/lib/validation-exec.d.ts +11 -0
  38. package/dist/{lint-enasqbqx.js → lint-ejzmx14j.js} +5 -5
  39. package/dist/{new-r9c99wsn.js → new-g3q3h4s5.js} +6 -6
  40. package/dist/package-97gm31sg.json +10 -0
  41. package/dist/{package-rm9d2tht.json → package-9rv69pxm.json} +4 -1
  42. package/dist/package-aenwjew3.json +28 -0
  43. package/dist/package-gag6ykwn.json +10 -0
  44. package/dist/package-nrhkwf2m.json +10 -0
  45. package/dist/{plugin.test.js-npnfhyca.tpl → plugin.test.js-k2r87k04.tpl} +9 -8
  46. package/dist/{preflight-shk7vqbs.js → preflight-w5z2vfhx.js} +5 -5
  47. package/dist/{preview-52918mxk.js → preview-9s22dq77.js} +6 -6
  48. package/dist/{publish-8s60vhx7.js → publish-mt22ewpk.js} +5 -5
  49. package/dist/{source-provider-2j5x2hyw.js → source-provider-51g6mt6y.js} +7 -1
  50. package/dist/{source-provider-kn41jmbs.js → source-provider-jkppq9fc.js} +7 -1
  51. package/dist/{tokens-e4xk3x4v.css → tokens-2sracx1w.css} +1 -1
  52. package/dist/{validate-awccx32r.js → validate-kkn8rmy5.js} +5 -5
  53. package/package.json +1 -1
  54. package/dist/gutterpress-m98e2w2d.json +0 -8
  55. package/dist/gutterpress-x2ycdsb8.json +0 -17
  56. package/dist/theme-etj4gxck.json +0 -9
  57. package/dist/theme-s2rg7xe7.json +0 -9
  58. package/dist/theme-vktedy8q.json +0 -9
@@ -4,7 +4,7 @@ import {
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "gutterpress",
7
- version: "0.10.9",
7
+ version: "0.10.10-alpha.2",
8
8
  description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
9
9
  author: "itlackey",
10
10
  license: "MPL-2.0",
package/dist/cli.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  previewArgs
4
- } from "./cli-bzxqtvrk.js";
4
+ } from "./cli-75qkn0k5.js";
5
5
  import {
6
6
  UsageError,
7
7
  package_default,
8
8
  rejectUnknownFlags
9
- } from "./cli-rh05byck.js";
9
+ } from "./cli-scqp638v.js";
10
10
  import {
11
11
  EXIT_CODES
12
12
  } from "./cli-46ycxe6r.js";
@@ -18,16 +18,16 @@ import {
18
18
  import { defineCommand, parseArgs, runMain } from "citty";
19
19
  import { statSync } from "node:fs";
20
20
  var SUBCOMMANDS = {
21
- new: () => import("./new-r9c99wsn.js").then((m) => m.default),
22
- preview: () => import("./preview-52918mxk.js").then((m) => m.default),
23
- build: () => import("./build-dyat3fqd.js").then((m) => m.default),
24
- publish: () => import("./publish-8s60vhx7.js").then((m) => m.default),
25
- lint: () => import("./lint-enasqbqx.js").then((m) => m.default),
26
- validate: () => import("./validate-awccx32r.js").then((m) => m.default),
27
- audit: () => import("./audit-fq7s1gsz.js").then((m) => m.default),
28
- preflight: () => import("./preflight-shk7vqbs.js").then((m) => m.default),
29
- doctor: () => import("./doctor-yr85n080.js").then((m) => m.default),
30
- ext: () => import("./ext-jrg8c48s.js").then((m) => m.default)
21
+ new: () => import("./new-g3q3h4s5.js").then((m) => m.default),
22
+ preview: () => import("./preview-9s22dq77.js").then((m) => m.default),
23
+ build: () => import("./build-c1w6kqpv.js").then((m) => m.default),
24
+ publish: () => import("./publish-mt22ewpk.js").then((m) => m.default),
25
+ lint: () => import("./lint-ejzmx14j.js").then((m) => m.default),
26
+ validate: () => import("./validate-kkn8rmy5.js").then((m) => m.default),
27
+ audit: () => import("./audit-wcmbgh39.js").then((m) => m.default),
28
+ preflight: () => import("./preflight-w5z2vfhx.js").then((m) => m.default),
29
+ doctor: () => import("./doctor-drv36btj.js").then((m) => m.default),
30
+ ext: () => import("./ext-xqx26xvy.js").then((m) => m.default)
31
31
  };
32
32
  var VERSION = package_default.version;
33
33
  var main = defineCommand({
@@ -52,7 +52,7 @@ async function preflightRequiredInvocations(rawArgs) {
52
52
  const [command, ...commandArgs] = rawArgs;
53
53
  try {
54
54
  if (command === "new") {
55
- const { newArgs } = await import("./new-r9c99wsn.js");
55
+ const { newArgs } = await import("./new-g3q3h4s5.js");
56
56
  rejectUnknownFlags(commandArgs, newArgs, "new");
57
57
  const parsed = parseArgs(commandArgs, {
58
58
  ...newArgs,
@@ -64,7 +64,7 @@ async function preflightRequiredInvocations(rawArgs) {
64
64
  return;
65
65
  }
66
66
  if (command === "preflight") {
67
- const { preflightArgs } = await import("./preflight-shk7vqbs.js");
67
+ const { preflightArgs } = await import("./preflight-w5z2vfhx.js");
68
68
  rejectUnknownFlags(commandArgs, preflightArgs, "preflight");
69
69
  const parsed = parseArgs(commandArgs, {
70
70
  ...preflightArgs,
@@ -84,11 +84,11 @@ async function preflightRequiredInvocations(rawArgs) {
84
84
  }
85
85
  if (subcommand.startsWith("-"))
86
86
  return;
87
- const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-jrg8c48s.js");
87
+ const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-xqx26xvy.js");
88
88
  if (!EXT_SUBCOMMANDS.includes(subcommand)) {
89
89
  throw new UsageError(`gutterpress ext: unknown command "${subcommand}"`);
90
90
  }
91
- if (subcommand === "list")
91
+ if (subcommand === "list" || subcommand === "search")
92
92
  return;
93
93
  const [positionalKey, positionalLabel, commandArgsDef] = subcommand === "add" ? ["source", "SOURCE", extAddArgs] : subcommand === "remove" ? ["specifier", "SPECIFIER", extRemoveArgs] : subcommand === "enable" ? ["specifier", "SPECIFIER", extEnableArgs] : ["specifier", "SPECIFIER", extDisableArgs];
94
94
  rejectUnknownFlags(subcommandArgs, commandArgsDef, `ext ${subcommand}`);
@@ -5,8 +5,8 @@
5
5
  # is the thing a new author browses, and the thing to check a component
6
6
  # against when you change it.
7
7
  #
8
- # Gutterpress reads this file's PRESENCE today (gutterpress.json's
9
- # `components:` field points here, and a missing file fails at apply time
8
+ # Gutterpress reads this file's PRESENCE today (package.json's
9
+ # `gutterpress.components` field points here, and a missing file fails at apply time
10
10
  # rather than silently at render time). Nothing yet reads the entries — the
11
11
  # registry that will is not built. So treat the shape below as this theme's
12
12
  # own convention, useful to you now, and expect to adjust it when core grows
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getSystemDiagnostics,
3
3
  log
4
- } from "./cli-ypfvnhag.js";
4
+ } from "./cli-2rswy18t.js";
5
5
  import {
6
6
  UsageError,
7
7
  rejectExtraPositionals,
8
8
  rejectUnknownFlags
9
- } from "./cli-rh05byck.js";
9
+ } from "./cli-scqp638v.js";
10
10
  import"./cli-c41yr7he.js";
11
11
  import"./cli-46ycxe6r.js";
12
12
  import"./cli-37x76zdn.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  build
3
- } from "./index-dhgzkhs7.js";
3
+ } from "./index-a0e2253t.js";
4
4
  import {
5
5
  BuildError,
6
6
  RENDER_TIMEOUT_MS,
7
7
  assertMilestone,
8
8
  connectChromium,
9
9
  getBrowser
10
- } from "./index-zwcv1njy.js";
10
+ } from "./index-5dgxeevv.js";
11
11
  import"./index-37x76zdn.js";
12
12
 
13
13
  // src/lib/engine.ts
@@ -4,7 +4,7 @@ import {
4
4
  build,
5
5
  connectChromium,
6
6
  getBrowser
7
- } from "./cli-bx950tb4.js";
7
+ } from "./cli-k8f9eb12.js";
8
8
  import"./cli-c41yr7he.js";
9
9
  import {
10
10
  BuildError
@@ -8,22 +8,23 @@ import {
8
8
  listProjectExtensions,
9
9
  parseExtensionSpecifier,
10
10
  removeExtension,
11
+ searchNpmExtensions,
11
12
  setExtensionEnabled
12
- } from "./cli-8pg731p5.js";
13
- import"./cli-ypfvnhag.js";
13
+ } from "./cli-n0vgey6x.js";
14
+ import"./cli-2rswy18t.js";
14
15
  import {
15
16
  UsageError,
16
17
  exitForUsage,
17
18
  rejectExtraPositionals,
18
19
  rejectUnknownFlags,
19
20
  resolveProjectDir
20
- } from "./cli-rh05byck.js";
21
- import"./cli-bx950tb4.js";
21
+ } from "./cli-scqp638v.js";
22
+ import"./cli-k8f9eb12.js";
22
23
  import"./cli-c41yr7he.js";
23
24
  import {
24
25
  EXIT_CODES
25
26
  } from "./cli-46ycxe6r.js";
26
- import"./cli-w692g6dx.js";
27
+ import"./cli-4mtf9ajw.js";
27
28
  import"./cli-v5mp7a6q.js";
28
29
  import"./cli-37x76zdn.js";
29
30
 
@@ -63,7 +64,14 @@ var extAddArgs = {
63
64
  var extRemoveArgs = { specifier: specifierArg, dir: dirArg };
64
65
  var extEnableArgs = { specifier: specifierArg, dir: dirArg };
65
66
  var extDisableArgs = { specifier: specifierArg, dir: dirArg };
66
- var EXT_SUBCOMMANDS = ["list", "add", "remove", "enable", "disable"];
67
+ var extSearchArgs = {
68
+ query: {
69
+ type: "positional",
70
+ description: "Words to search npm for; omit to list the most relevant tagged packages",
71
+ required: false
72
+ }
73
+ };
74
+ var EXT_SUBCOMMANDS = ["list", "add", "remove", "enable", "disable", "search"];
67
75
  var parentArgs = {};
68
76
  function rejectParentFlags(rawArgs) {
69
77
  const first = rawArgs[0];
@@ -102,6 +110,11 @@ function describeLine(entry) {
102
110
  const label = entry.label !== entry.name ? ` ${entry.label}` : "";
103
111
  return ` ${entry.use}${state} [${entry.kind}; ${carriesLabel(entry)}]${label}`;
104
112
  }
113
+ function describeMatchLine(match) {
114
+ const kind = match.kind === "gutterpress" ? "gutterpress" : "markdown-it plugin";
115
+ const description = match.description ? ` ${match.description}` : "";
116
+ return ` ${match.name}@${match.version} [${kind}]${description}`;
117
+ }
105
118
  function printAdded(entry, projectDir, warnings = []) {
106
119
  if (entry.kind === "npm") {
107
120
  console.log(`Installed ${entry.use}`);
@@ -246,18 +259,49 @@ var disable = specifierCommand("disable", "Turn a configured extension off witho
246
259
  await setExtensionEnabled(projectDir, specifier, false);
247
260
  return `Disabled ${specifier}`;
248
261
  });
262
+ var search = defineCommand({
263
+ meta: {
264
+ name: "search",
265
+ description: "Search npm for extensions (network; not project-scoped)"
266
+ },
267
+ args: extSearchArgs,
268
+ async run({ args, rawArgs }) {
269
+ try {
270
+ rejectUnknownFlags(rawArgs, extSearchArgs, "ext search");
271
+ rejectExtraPositionals(args._, 1, "ext search");
272
+ } catch (error) {
273
+ exitForUsage(error);
274
+ }
275
+ const query = typeof args.query === "string" ? args.query.trim() : "";
276
+ try {
277
+ const { matches, total } = await searchNpmExtensions(query);
278
+ if (matches.length === 0) {
279
+ console.log(query ? `No extensions on npm match "${query}".` : "No extensions found on npm.");
280
+ return;
281
+ }
282
+ const scope = query ? ` matching "${query}"` : "";
283
+ console.log(`Extensions on npm${scope} (showing ${matches.length} of ${total}):`);
284
+ for (const match of matches)
285
+ console.log(describeMatchLine(match));
286
+ console.log("Add one with: gutterpress ext add <name>");
287
+ } catch (error) {
288
+ failPipeline("Could not search npm", error);
289
+ }
290
+ }
291
+ });
249
292
  var ext_default = defineCommand({
250
293
  meta: {
251
294
  name: "ext",
252
- description: "List, add, remove, enable, or disable the project's extensions"
295
+ description: "List, add, remove, enable, disable the project's extensions, or search npm"
253
296
  },
254
297
  args: parentArgs,
255
298
  setup({ rawArgs }) {
256
299
  rejectParentFlags(rawArgs);
257
300
  },
258
- subCommands: { list, add, remove, enable, disable }
301
+ subCommands: { list, add, remove, enable, disable, search }
259
302
  });
260
303
  export {
304
+ extSearchArgs,
261
305
  extRemoveArgs,
262
306
  extListArgs,
263
307
  extEnableArgs,