pm-presets 2026.6.3 → 2026.6.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,22 @@
1
1
  # Changelog
2
2
 
3
- ## 2026.6.3 - 2026-06-02
3
+ ## 2026.6.4 - 2026-06-04
4
+
5
+ ### Added
6
+
7
+ - Add presets apply --replace, diff --strict, and presets export ([pm-ehaf](https://github.com/unbraind/pm-presets/blob/main/.agents/pm/features/pm-ehaf.toon))
8
+
9
+ ## 2026.06.03-1 - 2026-06-03
10
+
11
+ ### Added
12
+
13
+ - Deepen presets toolset: add show, diff, validate, enrich list ([pm-ruih](https://github.com/unbraind/pm-presets/blob/main/.agents/pm/features/pm-ruih.toon))
14
+
15
+ ### Other
16
+
17
+ - Unit tests + functional test against real workspace + release 2026.6.3 ([pm-q60r](https://github.com/unbraind/pm-presets/blob/main/.agents/pm/tasks/pm-q60r.toon))
18
+
19
+ ## 2026.06.03 - 2026-06-02
4
20
 
5
21
  ### Added
6
22
 
package/README.md CHANGED
@@ -60,9 +60,10 @@ management surface plus a generic `apply`:
60
60
  |---|---|
61
61
  | `pm presets list` | Enumerate every bundled preset and what it configures (governance, built-in + custom item types, templates). |
62
62
  | `pm presets show <id>` | Print the full definition of one preset: the settings patch it merges, every template (with its `pm create` option keys), and any custom item types it registers. |
63
- | `pm presets diff <id>` | Compare the current workspace (`settings.json` + installed templates) against a preset and report what `apply` would add / change, plus which templates are missing. |
63
+ | `pm presets diff <id>` | Compare the current workspace (`settings.json` + installed templates) against a preset and report what `apply` would add / change, plus which templates are missing. Add `--strict` to exit non-zero on drift (CI/compliance). |
64
64
  | `pm presets validate` | Validate that all bundled presets parse and load coherently (governance enums, template names/options, registry↔export agreement). |
65
- | `pm presets apply <id>` | Scaffold a preset into the current workspace (the generic form of the `*-setup` commands). |
65
+ | `pm presets apply <id>` | Scaffold a preset into the current workspace (the generic form of the `*-setup` commands). Add `--replace` for a clean reset of the owned settings trees. |
66
+ | `pm presets export <name>` | Snapshot the **current** workspace's settings + templates as a reusable preset definition (JSON), to stdout or a file. |
66
67
 
67
68
  All of the read-only commands accept `--json` for machine-readable output, and
68
69
  all commands accept `--help`. An unknown preset id exits with code `3`
@@ -72,8 +73,11 @@ all commands accept `--help`. An unknown preset id exits with code `3`
72
73
  pm presets list
73
74
  pm presets show software-sprint --json
74
75
  pm presets diff software-sprint # what would change if I applied it?
76
+ pm presets diff software-sprint --strict # exit 4 if the workspace has drifted
75
77
  pm presets validate
76
78
  pm presets apply software-sprint --dry-run
79
+ pm presets apply software-sprint --replace # clean reset of governance/validation/testing
80
+ pm presets export our-config --output our-config.preset.json
77
81
  ```
78
82
 
79
83
  ### `presets apply` flags
@@ -84,15 +88,53 @@ plus:
84
88
  | Flag | Short | Description |
85
89
  |---|---|---|
86
90
  | `--with-seeds` | `-s` | Also create the preset's starter items after applying it. |
91
+ | `--replace` | | Full-replace the `governance` / `validation` / `testing` trees with the preset's instead of deep-merging them. |
87
92
 
88
93
  **Idempotency & safety.** `apply` is safe to re-run:
89
94
 
90
- - `settings.json` is **deep-merged** — the preset's keys are layered over your
91
- existing settings, so unrelated config (telemetry, locks, etc.) is preserved.
95
+ - `settings.json` is **deep-merged** by default — the preset's keys are layered
96
+ over your existing settings, so unrelated config (telemetry, locks, etc.) is
97
+ preserved.
98
+ - `--replace` instead **swaps the `governance` / `validation` / `testing` trees
99
+ wholesale** with the preset's exact trees — dropping any keys the preset no
100
+ longer sets, for a clean reset. Unrelated top-level settings (`id_prefix`,
101
+ `telemetry`, `locks`, …) are still preserved in both modes.
92
102
  - Templates are **skipped if a file with that name already exists**; pass
93
103
  `--force` to overwrite them.
94
- - `--dry-run` previews every settings merge, template write, and seed item
95
- without touching disk.
104
+ - `--dry-run` previews every settings merge/replace, template write, and seed
105
+ item without touching disk.
106
+
107
+ ### Drift detection: `presets diff --strict`
108
+
109
+ `presets diff <id> --strict` reuses the diff logic but **exits non-zero (code
110
+ `4`)** when the workspace is not in sync with the named preset — settings to
111
+ add/change or templates missing. It prints what drifted (human summary, or the
112
+ full diff with `--json`) before exiting, so CI logs explain the failure. When
113
+ the workspace already matches the preset it exits `0`. Plain `presets diff`
114
+ (without `--strict`) always exits `0` and just reports.
115
+
116
+ ```bash
117
+ # Fail a compliance/CI job if the workspace drifts from the locked preset:
118
+ pm presets diff bug-triage --strict || echo "workspace drifted!"
119
+ ```
120
+
121
+ ### Exporting your own config: `presets export`
122
+
123
+ After you `apply` a preset and customize it, `presets export <name>` captures
124
+ the **live** workspace as a reusable preset definition (`settings.json` plus
125
+ every installed template). Write it to stdout (use `--json` for clean,
126
+ pipeable output) or to a file with `--output`:
127
+
128
+ ```bash
129
+ pm presets apply bug-triage # start from a bundled preset
130
+ # ...customize settings.json and templates by hand...
131
+ pm presets export our-config --output our-config.preset.json --display-name "Our Team Config"
132
+ ```
133
+
134
+ The exported document is `$schema: "pm-presets/exported-preset@1"` and records
135
+ `settings` + `templates`. **Custom item-field _values_ are not captured**:
136
+ custom scalar fields have no `pm create --<field>` setter today (pm-cli #97),
137
+ so the snapshot reconstructs the preset from settings + templates only.
96
138
 
97
139
  **Seeds and custom fields (pm-cli #97).** Starter items created by
98
140
  `--with-seeds` set only **built-in** fields (`type`, `title`, `priority`,
@@ -0,0 +1,56 @@
1
+ /**
2
+ * export.ts — snapshot the CURRENT pm workspace into a preset definition.
3
+ *
4
+ * `presets export <name>` reads the live workspace settings.json + installed
5
+ * templates and emits a self-contained preset definition (JSON) that mirrors
6
+ * the shape of the bundled presets. The intended flow is:
7
+ *
8
+ * 1. apply a bundled preset,
9
+ * 2. customize settings + templates by hand,
10
+ * 3. `presets export our-config` to lock the result as a reusable definition.
11
+ *
12
+ * The interesting logic is pure (`buildExportedPreset`) so it is unit-testable;
13
+ * `readWorkspaceSnapshot` (in diff.ts) is the only filesystem-touching input.
14
+ *
15
+ * MVP scope: settings + templates. Custom item-field VALUES are intentionally
16
+ * out of scope because custom scalar fields have no `pm create --<field>`
17
+ * setter (pm-cli #97), so they cannot be round-tripped through workspace items
18
+ * — the exported definition records only the settings tree and template
19
+ * documents, which fully reconstruct an applied preset.
20
+ */
21
+ import type { CreateTemplateOptions, StoredCreateTemplateDocument } from "./presets/shared.js";
22
+ export interface ExportedTemplate {
23
+ name: string;
24
+ options: CreateTemplateOptions;
25
+ }
26
+ export interface ExportedPreset {
27
+ /** Identifies this as a pm-presets export and pins the shape version. */
28
+ $schema: "pm-presets/exported-preset@1";
29
+ id: string;
30
+ displayName: string;
31
+ /** id_prefix lifted from settings for convenience (mirrors bundled descriptors). */
32
+ idPrefix: string;
33
+ /** The full settings.json the workspace currently has. */
34
+ settings: Record<string, unknown>;
35
+ /** Every user template installed in the workspace, name + options. */
36
+ templates: ExportedTemplate[];
37
+ meta: {
38
+ exportedAt: string;
39
+ /** Honest note about the #97 custom-field limitation. */
40
+ note: string;
41
+ };
42
+ }
43
+ /** Pure: assemble an ExportedPreset from already-read workspace inputs. */
44
+ export declare function buildExportedPreset(input: {
45
+ name: string;
46
+ displayName?: string;
47
+ settings: Record<string, unknown> | undefined;
48
+ templates: ExportedTemplate[];
49
+ now?: Date;
50
+ }): ExportedPreset;
51
+ /** Read every user template document from the workspace `templates/` directory. */
52
+ export declare function readWorkspaceTemplates(pmDir: string): ExportedTemplate[];
53
+ /** Read the workspace settings.json (or `undefined` if absent/unreadable). */
54
+ export declare function readWorkspaceSettings(pmDir: string): Record<string, unknown> | undefined;
55
+ export type { StoredCreateTemplateDocument };
56
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAE/F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,OAAO,EAAE,8BAA8B,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,sEAAsE;IACtE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,yDAAyD;QACzD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAWD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,cAAc,CAoBjB;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA8BxE;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAWxF;AAED,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
package/dist/export.js ADDED
@@ -0,0 +1,95 @@
1
+ /**
2
+ * export.ts — snapshot the CURRENT pm workspace into a preset definition.
3
+ *
4
+ * `presets export <name>` reads the live workspace settings.json + installed
5
+ * templates and emits a self-contained preset definition (JSON) that mirrors
6
+ * the shape of the bundled presets. The intended flow is:
7
+ *
8
+ * 1. apply a bundled preset,
9
+ * 2. customize settings + templates by hand,
10
+ * 3. `presets export our-config` to lock the result as a reusable definition.
11
+ *
12
+ * The interesting logic is pure (`buildExportedPreset`) so it is unit-testable;
13
+ * `readWorkspaceSnapshot` (in diff.ts) is the only filesystem-touching input.
14
+ *
15
+ * MVP scope: settings + templates. Custom item-field VALUES are intentionally
16
+ * out of scope because custom scalar fields have no `pm create --<field>`
17
+ * setter (pm-cli #97), so they cannot be round-tripped through workspace items
18
+ * — the exported definition records only the settings tree and template
19
+ * documents, which fully reconstruct an applied preset.
20
+ */
21
+ import * as fs from "node:fs";
22
+ import * as path from "node:path";
23
+ const EXPORT_NOTE = "Custom item-field values are not captured: custom scalar fields have no " +
24
+ "`pm create --<field>` setter (pm-cli #97). This snapshot reconstructs the " +
25
+ "preset from settings + templates only.";
26
+ function isJsonObject(value) {
27
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28
+ }
29
+ /** Pure: assemble an ExportedPreset from already-read workspace inputs. */
30
+ export function buildExportedPreset(input) {
31
+ const settings = input.settings ?? {};
32
+ const idPrefixRaw = settings["id_prefix"];
33
+ const idPrefix = typeof idPrefixRaw === "string" ? idPrefixRaw : "";
34
+ const now = input.now ?? new Date();
35
+ const templates = [...input.templates].sort((left, right) => left.name.localeCompare(right.name));
36
+ return {
37
+ $schema: "pm-presets/exported-preset@1",
38
+ id: input.name,
39
+ displayName: input.displayName ?? input.name,
40
+ idPrefix,
41
+ settings,
42
+ templates,
43
+ meta: {
44
+ exportedAt: now.toISOString(),
45
+ note: EXPORT_NOTE,
46
+ },
47
+ };
48
+ }
49
+ /** Read every user template document from the workspace `templates/` directory. */
50
+ export function readWorkspaceTemplates(pmDir) {
51
+ const templatesDir = path.join(pmDir, "templates");
52
+ if (!fs.existsSync(templatesDir)) {
53
+ return [];
54
+ }
55
+ const out = [];
56
+ for (const entry of fs.readdirSync(templatesDir)) {
57
+ if (!entry.toLowerCase().endsWith(".json")) {
58
+ continue;
59
+ }
60
+ const filePath = path.join(templatesDir, entry);
61
+ let parsed;
62
+ try {
63
+ parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
64
+ }
65
+ catch {
66
+ continue;
67
+ }
68
+ if (!isJsonObject(parsed)) {
69
+ continue;
70
+ }
71
+ const name = typeof parsed.name === "string" && parsed.name.trim().length > 0
72
+ ? parsed.name
73
+ : entry.slice(0, -".json".length);
74
+ const options = isJsonObject(parsed.options)
75
+ ? parsed.options
76
+ : {};
77
+ out.push({ name, options });
78
+ }
79
+ return out;
80
+ }
81
+ /** Read the workspace settings.json (or `undefined` if absent/unreadable). */
82
+ export function readWorkspaceSettings(pmDir) {
83
+ const settingsPath = path.join(pmDir, "settings.json");
84
+ if (!fs.existsSync(settingsPath)) {
85
+ return undefined;
86
+ }
87
+ try {
88
+ const parsed = JSON.parse(fs.readFileSync(settingsPath, "utf8"));
89
+ return isJsonObject(parsed) ? parsed : undefined;
90
+ }
91
+ catch {
92
+ return undefined;
93
+ }
94
+ }
95
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;AA2FH,wBA2NG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;AAyIH,wBA2SG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -24,13 +24,18 @@ import { runBugTriageSetup } from "./presets/bug-triage/index.js";
24
24
  import { runIndieDevSetup } from "./presets/indie-dev/index.js";
25
25
  import { runKanbanSetup, ITEM_TYPES as kanbanItemTypes } from "./presets/kanban/index.js";
26
26
  import { runOpenSourceSetup } from "./presets/open-source/index.js";
27
- import { resolvePmDir, readBooleanOption, runTemplatesList, runTemplatesShow } from "./presets/shared.js";
27
+ import { resolvePmDir, readBooleanOption, readStringOption, runTemplatesList, runTemplatesShow } from "./presets/shared.js";
28
28
  import { runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
29
29
  import { runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
30
30
  import { PRESET_REGISTRY } from "./registry.js";
31
31
  import { buildListRows, requirePresetDefinition, validateAllPresets, } from "./catalog.js";
32
32
  import { computePresetDiff, readWorkspaceSnapshot } from "./diff.js";
33
+ import { buildExportedPreset, readWorkspaceSettings, readWorkspaceTemplates, } from "./export.js";
33
34
  import { planSeeds, seedPresetItems, seedsForPreset } from "./seeds.js";
35
+ import * as fs from "node:fs";
36
+ // Drift exit code for `presets diff --strict`. Distinct from GENERIC(1)/
37
+ // USAGE(2)/NOT_FOUND(3) so CI can tell "drifted" from "command failed".
38
+ const EXIT_CODE_DRIFT = 4;
34
39
  const defineExtension = ((extension) => extension);
35
40
  // A thrown error only yields a clean non-zero exit (no double-invocation) when
36
41
  // it carries a numeric `exitCode`. Standalone-installed extensions can't import
@@ -78,7 +83,16 @@ const COMMON_FLAGS = [
78
83
  description: "Override the id_prefix written to settings.json.",
79
84
  },
80
85
  ];
81
- // `presets apply` additionally accepts --with-seeds to create starter items.
86
+ // `presets list`/`show`/`diff`/`validate`/`export` are JSON-friendly.
87
+ const JSON_FLAG = [
88
+ {
89
+ long: "--json",
90
+ type: "boolean",
91
+ description: "Emit machine-readable JSON instead of the human summary.",
92
+ },
93
+ ];
94
+ // `presets apply` additionally accepts --with-seeds to create starter items
95
+ // and --replace to full-replace (rather than deep-merge) the owned settings trees.
82
96
  const APPLY_FLAGS = [
83
97
  ...COMMON_FLAGS,
84
98
  {
@@ -87,13 +101,36 @@ const APPLY_FLAGS = [
87
101
  type: "boolean",
88
102
  description: "Also create the preset's starter items (built-in fields only; see #97).",
89
103
  },
104
+ {
105
+ long: "--replace",
106
+ type: "boolean",
107
+ description: "Full-replace the governance/validation/testing settings trees with the preset's (clean reset) instead of deep-merging. Other settings are still preserved.",
108
+ },
90
109
  ];
91
- // `presets list`/`show`/`diff`/`validate` are read-only and JSON-friendly.
92
- const JSON_FLAG = [
110
+ // `presets diff` additionally accepts --strict for CI drift detection.
111
+ const DIFF_FLAGS = [
112
+ ...JSON_FLAG,
93
113
  {
94
- long: "--json",
114
+ long: "--strict",
95
115
  type: "boolean",
96
- description: "Emit machine-readable JSON instead of the human summary.",
116
+ description: "Exit non-zero (4) when the workspace is NOT in sync with the preset (drift detection for CI/compliance).",
117
+ },
118
+ ];
119
+ // `presets export` writes to a file or stdout and can carry a display name.
120
+ const EXPORT_FLAGS = [
121
+ ...JSON_FLAG,
122
+ {
123
+ long: "--output",
124
+ short: "-o",
125
+ value_name: "<file>",
126
+ type: "string",
127
+ description: "Write the exported preset definition to a file instead of stdout.",
128
+ },
129
+ {
130
+ long: "--display-name",
131
+ value_name: "<name>",
132
+ type: "string",
133
+ description: "Human-readable display name for the exported preset (defaults to the id).",
97
134
  },
98
135
  ];
99
136
  export default defineExtension({
@@ -171,15 +208,83 @@ export default defineExtension({
171
208
  name: "presets diff",
172
209
  action: "presets-diff",
173
210
  description: "Compare the current pm workspace (settings + installed templates) against a preset and report differences.",
174
- examples: ["pm presets diff software-sprint", "pm presets diff bug-triage --json"],
211
+ examples: [
212
+ "pm presets diff software-sprint",
213
+ "pm presets diff bug-triage --json",
214
+ "pm presets diff bug-triage --strict",
215
+ ],
175
216
  arguments: [
176
217
  { name: "preset", required: true, description: "Preset id (see `pm presets list`)." },
177
218
  ],
178
- flags: JSON_FLAG,
219
+ flags: DIFF_FLAGS,
179
220
  run: (ctx) => {
180
221
  const definition = requirePresetDefinition(ctx.args?.[0]);
181
222
  const snapshot = readWorkspaceSnapshot(resolvePmDir(ctx));
182
- return computePresetDiff(definition, snapshot);
223
+ const result = computePresetDiff(definition, snapshot);
224
+ const strict = readBooleanOption(ctx.options, "strict");
225
+ if (strict && !result.inSync) {
226
+ // Drift detected. Print the diff (respecting --json) so CI logs show
227
+ // WHAT drifted, then exit non-zero with a dedicated drift code (4).
228
+ const json = readBooleanOption(ctx.options, "json");
229
+ if (json) {
230
+ console.log(JSON.stringify(result, null, 2));
231
+ }
232
+ else {
233
+ const { settingsToAdd, settingsToChange, templatesMissing } = result.summary;
234
+ console.error(`Workspace is NOT in sync with preset '${definition.id}': ` +
235
+ `${settingsToAdd} setting(s) to add, ${settingsToChange} to change, ` +
236
+ `${templatesMissing} template(s) missing.`);
237
+ }
238
+ throw new PresetError(`Workspace drifted from preset '${definition.id}'.`, EXIT_CODE_DRIFT);
239
+ }
240
+ return result;
241
+ },
242
+ });
243
+ api.registerCommand({
244
+ name: "presets export",
245
+ action: "presets-export",
246
+ description: "Snapshot the CURRENT workspace's settings + templates as a reusable preset definition (JSON) to stdout or a file.",
247
+ examples: [
248
+ "pm presets export our-config",
249
+ "pm presets export our-config --output our-config.preset.json",
250
+ 'pm presets export our-config --display-name "Our Team Config"',
251
+ ],
252
+ arguments: [
253
+ {
254
+ name: "name",
255
+ required: true,
256
+ description: "Id for the exported preset definition.",
257
+ },
258
+ ],
259
+ flags: EXPORT_FLAGS,
260
+ run: (ctx) => {
261
+ const name = ctx.args?.[0];
262
+ if (typeof name !== "string" || name.trim().length === 0) {
263
+ throw new PresetError("presets export requires a preset name argument.", 2);
264
+ }
265
+ const pmDir = resolvePmDir(ctx);
266
+ const settings = readWorkspaceSettings(pmDir);
267
+ if (!settings) {
268
+ throw new PresetError(`No readable settings.json in ${pmDir}. Run \`pm init\` (and apply a preset) first.`, 3);
269
+ }
270
+ const templates = readWorkspaceTemplates(pmDir);
271
+ const exported = buildExportedPreset({
272
+ name: name.trim(),
273
+ displayName: readStringOption(ctx.options, "displayName", "display-name"),
274
+ settings,
275
+ templates,
276
+ });
277
+ const output = readStringOption(ctx.options, "output");
278
+ if (output) {
279
+ const serialized = `${JSON.stringify(exported, null, 2)}\n`;
280
+ fs.writeFileSync(output, serialized, "utf8");
281
+ console.log(`Exported preset '${exported.id}' (${exported.templates.length} template(s)) to ${output}`);
282
+ return undefined;
283
+ }
284
+ // No --output: return the definition so pm renders it as the command
285
+ // result. With `--json` pm emits clean, pipeable JSON (no trailing
286
+ // result block); use `--output` for a verbatim file on disk.
287
+ return exported;
183
288
  },
184
289
  });
185
290
  api.registerCommand({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5H,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,eAAe,GAA+B,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,SAAS,CAAQ,CAAC;AAE3F,+EAA+E;AAC/E,gFAAgF;AAChF,kEAAkE;AAClE,MAAM,WAAY,SAAQ,KAAK;IAC7B,QAAQ,CAAS;IACjB,YAAY,OAAe,EAAE,QAAQ,GAAG,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,MAAM,eAAe,GAA0C;IAC7D,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,aAAa,EAAE,kBAAkB;IACjC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,QAAQ,EAAE,cAAc;CACzB,CAAC;AAEF,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,kEAAkE;AAClE,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,2DAA2D;KACzE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,QAAiB;QACvB,WAAW,EAAE,kDAAkD;KAChE;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,0DAA0D;KACxE;CACF,CAAC;AAEF,4EAA4E;AAC5E,mFAAmF;AACnF,MAAM,WAAW,GAAG;IAClB,GAAG,YAAY;IACf;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,yEAAyE;KACvF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAkB;QACxB,WAAW,EACT,4JAA4J;KAC/J;CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,GAAG;IACjB,GAAG,SAAS;IACZ;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAkB;QACxB,WAAW,EACT,0GAA0G;KAC7G;CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,YAAY,GAAG;IACnB,GAAG,SAAS;IACZ;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,QAAiB;QACvB,WAAW,EAAE,mEAAmE;KACjF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,QAAiB;QACvB,WAAW,EAAE,2EAA2E;KACzF;CACF,CAAC;AAEF,eAAe,eAAe,CAAC;IAC7B,QAAQ,CAAC,GAAG;QACV,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,6GAA6G;YAC/G,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,iBAAiB;SACvB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,aAAa;YACnB,WAAW,EACT,mGAAmG;YACrG,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,qGAAqG;YACvG,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,kBAAkB;SACxB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,gGAAgG;YAClG,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CAAC;QAEH,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,6GAA6G;YAC/G,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CAAC;QAEH,2EAA2E;QAC3E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,6GAA6G;YAC/G,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,6EAA6E;QAC7E,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAChD,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,4EAA4E;QAC5E,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,cAAc;YACtB,WAAW,EACT,mGAAmG;YACrG,QAAQ,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;YACvD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACV,OAAO,EAAE,aAAa,EAAE;gBACxB,KAAK,EAAE,eAAe,CAAC,MAAM;aAC9B,CAAC;SACH,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,cAAc;YACtB,WAAW,EACT,4FAA4F;YAC9F,QAAQ,EAAE,CAAC,iCAAiC,EAAE,+BAA+B,CAAC;YAC9E,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE;aACtF;YACD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,CAAC,GAA0B,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC5E,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,cAAc;YACtB,WAAW,EACT,4GAA4G;YAC9G,QAAQ,EAAE;gBACR,iCAAiC;gBACjC,mCAAmC;gBACnC,qCAAqC;aACtC;YACD,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE;aACtF;YACD,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,CAAC,GAA0B,EAAE,EAAE;gBAClC,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,qEAAqE;oBACrE,oEAAoE;oBACpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACpD,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;wBAC7E,OAAO,CAAC,KAAK,CACX,yCAAyC,UAAU,CAAC,EAAE,KAAK;4BACzD,GAAG,aAAa,uBAAuB,gBAAgB,cAAc;4BACrE,GAAG,gBAAgB,uBAAuB,CAC7C,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,WAAW,CACnB,kCAAkC,UAAU,CAAC,EAAE,IAAI,EACnD,eAAe,CAChB,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,gBAAgB;YACxB,WAAW,EACT,mHAAmH;YACrH,QAAQ,EAAE;gBACR,8BAA8B;gBAC9B,8DAA8D;gBAC9D,+DAA+D;aAChE;YACD,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,CAAC,GAA0B,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,WAAW,CAAC,iDAAiD,EAAE,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,WAAW,CACnB,gCAAgC,KAAK,+CAA+C,EACpF,CAAC,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;oBACnC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBACjB,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;oBACzE,QAAQ;oBACR,SAAS;iBACV,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;oBAC5D,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC7C,OAAO,CAAC,GAAG,CACT,oBAAoB,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,oBAAoB,MAAM,EAAE,CAC3F,CAAC;oBACF,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,qEAAqE;gBACrE,mEAAmE;gBACnE,6DAA6D;gBAC7D,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,kBAAkB;YAC1B,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;YAC/D,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;yBACzB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;yBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,MAAM,IAAI,WAAW,CACnB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,sCAAsC,MAAM,CAAC,OAAO,gBAAgB,MAAM,EAAE,EACnG,CAAC,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,eAAe;YACvB,WAAW,EACT,wGAAwG;YAC1G,QAAQ,EAAE;gBACR,yBAAyB;gBACzB,4CAA4C;gBAC5C,0CAA0C;gBAC1C,qCAAqC;aACtC;YACD,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE;aACtF;YACD,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,CAAC,GAA0B,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzB,iEAAiE;gBACjE,MAAM,UAAU,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEb,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,mBAAmB,CAAC,CAAC;oBACrE,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,MAAM,qBAAqB,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC1D,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,WAAW,CACnB,UAAU,UAAU,CAAC,OAAO,gBAAgB,UAAU,CAAC,MAAM,UAAU,EACvE,CAAC,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,oEAAoE;QACpE,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,gBAAgB;YACxB,WAAW,EAAE,uDAAuD;YACpE,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,gBAAgB;YACxB,WAAW,EAAE,uDAAuD;YACpE,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,gBAAgB;YACxB,WAAW,EAAE,wDAAwD;YACrE,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,gBAAgB;iBAC9B;aACF;YACD,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -21,6 +21,7 @@ export declare class CommandError extends Error {
21
21
  exitCode: number;
22
22
  constructor(message: string, exitCode?: number);
23
23
  }
24
+ type JsonObject = Record<string, unknown>;
24
25
  export type TemplateOptionValue = string | string[];
25
26
  export type CreateTemplateOptions = Record<string, TemplateOptionValue>;
26
27
  export interface StoredCreateTemplateDocument {
@@ -74,6 +75,14 @@ export declare function readBooleanOption(options: Record<string, unknown>, ...k
74
75
  export declare function readStringOption(options: Record<string, unknown>, ...keys: string[]): string | undefined;
75
76
  export declare function normalizeTemplateName(rawName: string): string;
76
77
  export declare function storedTemplate(rawName: string, options: CreateTemplateOptions): StoredCreateTemplateDocument;
78
+ /**
79
+ * Merge a preset settings patch, optionally full-replacing the governance /
80
+ * validation / testing trees rather than deep-merging them.
81
+ *
82
+ * Pure and unit-tested. Other top-level keys (e.g. `id_prefix`, unrelated user
83
+ * config) are always deep-merged so unrelated settings are never dropped.
84
+ */
85
+ export declare function mergePresetSettings(existing: JsonObject, patch: JsonObject, replace: boolean): JsonObject;
77
86
  export declare function applyPreset(context: CommandHandlerContext, input: {
78
87
  label: string;
79
88
  settings: PresetSettingsPatch;
@@ -83,4 +92,5 @@ export declare function applyPreset(context: CommandHandlerContext, input: {
83
92
  }): void;
84
93
  export declare function runTemplatesList(context: CommandHandlerContext): TemplatesListResult;
85
94
  export declare function runTemplatesShow(context: CommandHandlerContext): TemplatesShowResult;
95
+ export {};
86
96
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/presets/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAWnE,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;gBACL,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC;CAK1E;AAID,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAExE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACrD,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QACnD,mBAAmB,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;QAC/C,wBAAwB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;QACrD,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;QAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChD,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE;QACX,qBAAqB,EAAE,MAAM,GAAG,cAAc,CAAC;QAC/C,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;QAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,uBAAuB,EAAE,OAAO,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,CAAC;CAChC;AA8CD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAOnE;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAQT;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,GAC7B,4BAA4B,CAQ9B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,IAAI,CAsEN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAmBpF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAsCpF"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/presets/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAWnE,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;gBACL,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC;CAK1E;AAED,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAExE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACrD,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QACnD,mBAAmB,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;QAC/C,wBAAwB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;QACrD,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;QAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChD,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE;QACX,qBAAqB,EAAE,MAAM,GAAG,cAAc,CAAC;QAC/C,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;QAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,uBAAuB,EAAE,OAAO,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,CAAC;CAChC;AA8CD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAOnE;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAQT;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,GAC7B,4BAA4B,CAQ9B;AAWD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,GACf,UAAU,CAeZ;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,IAAI,CA4EN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAmBpF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAsCpF"}
@@ -116,6 +116,38 @@ export function storedTemplate(rawName, options) {
116
116
  options: sortTemplateOptions(options),
117
117
  };
118
118
  }
119
+ /**
120
+ * The settings-patch trees that `--replace` swaps out wholesale instead of
121
+ * deep-merging. These are the governance / validation / testing config trees a
122
+ * preset owns; replacing them gives a clean reset (drops keys the preset no
123
+ * longer sets) while merge layers the preset over whatever is already there.
124
+ * `id_prefix` and any unrelated top-level keys are always merge-preserved.
125
+ */
126
+ const REPLACE_SETTINGS_TREES = ["governance", "validation", "testing"];
127
+ /**
128
+ * Merge a preset settings patch, optionally full-replacing the governance /
129
+ * validation / testing trees rather than deep-merging them.
130
+ *
131
+ * Pure and unit-tested. Other top-level keys (e.g. `id_prefix`, unrelated user
132
+ * config) are always deep-merged so unrelated settings are never dropped.
133
+ */
134
+ export function mergePresetSettings(existing, patch, replace) {
135
+ if (!replace) {
136
+ return deepMergeJson(existing, patch);
137
+ }
138
+ // Deep-merge everything first, then overwrite the owned trees with the
139
+ // preset's exact tree (or remove them if the preset doesn't set them).
140
+ const merged = deepMergeJson(existing, patch);
141
+ for (const tree of REPLACE_SETTINGS_TREES) {
142
+ if (Object.prototype.hasOwnProperty.call(patch, tree)) {
143
+ merged[tree] = patch[tree];
144
+ }
145
+ else {
146
+ delete merged[tree];
147
+ }
148
+ }
149
+ return merged;
150
+ }
119
151
  export function applyPreset(context, input) {
120
152
  const { options } = context;
121
153
  const pmDir = resolvePmDir(context);
@@ -123,6 +155,7 @@ export function applyPreset(context, input) {
123
155
  const templatesDir = templatesDirectory(pmDir);
124
156
  const dryRun = readBooleanOption(options, "dryRun", "dry-run");
125
157
  const force = readBooleanOption(options, "force");
158
+ const replace = readBooleanOption(options, "replace");
126
159
  const prefixOverride = readStringOption(options, "prefix");
127
160
  if (!fs.existsSync(pmDir) || !fs.existsSync(settingsPath)) {
128
161
  throw new CommandError(`pm workspace not found. Expected settings file: ${settingsPath}\n` +
@@ -133,14 +166,15 @@ export function applyPreset(context, input) {
133
166
  ...input.settings,
134
167
  id_prefix: prefixOverride ?? input.settings.id_prefix,
135
168
  };
136
- const mergedSettings = deepMergeJson(existingSettings, effectivePatch);
169
+ const mergedSettings = mergePresetSettings(existingSettings, effectivePatch, replace);
170
+ const verb = replace ? "replace" : "merge";
137
171
  if (dryRun) {
138
- console.log(`[dry-run] Would merge ${input.label} settings into ${settingsPath}:`);
172
+ console.log(`[dry-run] Would ${verb} ${input.label} settings into ${settingsPath}:`);
139
173
  console.log(JSON.stringify(mergedSettings, null, 2));
140
174
  }
141
175
  else {
142
176
  fs.writeFileSync(settingsPath, `${JSON.stringify(mergedSettings, null, 2)}\n`, "utf8");
143
- console.log(`Updated settings.json at ${settingsPath}`);
177
+ console.log(`Updated settings.json at ${settingsPath} (${verb} mode)`);
144
178
  }
145
179
  if (dryRun) {
146
180
  console.log(`[dry-run] Would create directory: ${templatesDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/presets/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/presets/shared.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-presets",
3
- "version": "2026.6.3",
3
+ "version": "2026.6.4",
4
4
  "description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-presets",
3
- "version": "2026.6.3",
3
+ "version": "2026.6.4",
4
4
  "description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,7 +34,7 @@
34
34
  "prepack": "npm run build",
35
35
  "typecheck": "tsc --noEmit",
36
36
  "check": "npm run typecheck",
37
- "test": "node --test --experimental-strip-types tests/registry.test.ts tests/catalog.test.ts tests/diff.test.ts tests/seeds.test.ts",
37
+ "test": "node --test --experimental-strip-types tests/registry.test.ts tests/catalog.test.ts tests/diff.test.ts tests/seeds.test.ts tests/settings.test.ts tests/export.test.ts",
38
38
  "audit:prod": "npm audit --omit=dev",
39
39
  "pack:dry-run": "npm pack --dry-run",
40
40
  "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-presets/blob/main/.agents/pm",