@lkangd/cc-settings-preset 1.1.2 → 1.1.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.
@@ -0,0 +1,119 @@
1
+ import { useCallback, useRef, useState } from 'react';
2
+ import { annotateToggleItems, createProjectLaunchFlowState, formatProjectLaunchSortMode, getActiveProjectLaunchItem, getActiveProjectLaunchState, getPendingDisableRemovals, reduceProjectLaunchFlow, shouldBubbleProjectLaunchEscape, } from '../flows/project-launch-flow.js';
3
+ export function useProjectLaunchBrowserController({ presets, detected, statesByPreset, disableLockSources = [], lastUsedName, moveRightWithL = true, title, help, }) {
4
+ const [state, setState] = useState(() => createProjectLaunchFlowState({
5
+ presets,
6
+ detected,
7
+ statesByPreset,
8
+ disableLockSources,
9
+ ...(lastUsedName ? { lastUsedName } : {}),
10
+ }));
11
+ // Multiple dispatches can happen before React renders; mirror state in refs so each dispatch sees the latest synchronous flow state.
12
+ const stateRef = useRef(state);
13
+ stateRef.current = state;
14
+ const [sortMessage, setSortMessageState] = useState(null);
15
+ const sortMessageRef = useRef(sortMessage);
16
+ sortMessageRef.current = sortMessage;
17
+ const detectedBaseline = state.statesByPreset.Detected ?? detected;
18
+ const activeItem = getActiveProjectLaunchItem(state);
19
+ const activeToggleState = getActiveProjectLaunchState(state);
20
+ const pluginItems = annotateToggleItems(state, detectedBaseline, 'plugins', state.plugins);
21
+ const skillItems = annotateToggleItems(state, detectedBaseline, 'skills', state.skills);
22
+ const mcpItems = annotateToggleItems(state, detectedBaseline, 'mcps', state.mcps);
23
+ const message = state.toggleMessage ?? sortMessage;
24
+ const columnsProps = {
25
+ presetItems: state.presetItems,
26
+ presetCursor: state.presetCursor,
27
+ focus: state.focus,
28
+ plugins: state.plugins,
29
+ pluginItems,
30
+ pluginCursor: state.pluginCursor,
31
+ skills: state.skills,
32
+ skillItems,
33
+ skillCursor: state.skillCursor,
34
+ mcps: state.mcps,
35
+ mcpItems,
36
+ mcpCursor: state.mcpCursor,
37
+ ...(title ? { title } : {}),
38
+ ...(help ? { help } : {}),
39
+ ...(message ? { toggleMessage: message } : {}),
40
+ };
41
+ const updateFlowState = useCallback((updater) => {
42
+ const nextState = updater(stateRef.current);
43
+ stateRef.current = nextState;
44
+ setState(nextState);
45
+ return nextState;
46
+ }, []);
47
+ const reduceCurrentFlow = useCallback((event) => {
48
+ return updateFlowState(current => reduceProjectLaunchFlow(current, event));
49
+ }, [updateFlowState]);
50
+ const updateSortMessage = useCallback((nextMessage) => {
51
+ sortMessageRef.current = nextMessage;
52
+ setSortMessageState(nextMessage);
53
+ }, []);
54
+ const dispatchBrowserKey = useCallback((input, key) => {
55
+ if (stateRef.current.pendingEnableUnlock)
56
+ return { handled: true };
57
+ if (input !== 't' && sortMessageRef.current)
58
+ updateSortMessage(null);
59
+ if (key.leftArrow || input === 'h') {
60
+ reduceCurrentFlow({ type: 'focus-left' });
61
+ return { handled: true };
62
+ }
63
+ if (key.rightArrow || (moveRightWithL && input === 'l' && !key.ctrl && !key.meta)) {
64
+ reduceCurrentFlow({ type: 'focus-right' });
65
+ return { handled: true };
66
+ }
67
+ if (key.upArrow || input === 'k') {
68
+ reduceCurrentFlow({ type: 'up' });
69
+ return { handled: true };
70
+ }
71
+ if (key.downArrow || input === 'j') {
72
+ reduceCurrentFlow({ type: 'down' });
73
+ return { handled: true };
74
+ }
75
+ if (key.escape) {
76
+ if (shouldBubbleProjectLaunchEscape(stateRef.current))
77
+ return { handled: true, bubbledEscape: true };
78
+ reduceCurrentFlow({ type: 'escape' });
79
+ return { handled: true };
80
+ }
81
+ if (input === 't') {
82
+ const nextState = reduceCurrentFlow({ type: 'toggle-sort-mode' });
83
+ updateSortMessage(formatProjectLaunchSortMode(nextState.sortMode));
84
+ return { handled: true };
85
+ }
86
+ if (input === ' ') {
87
+ const toggledDetected = stateRef.current.focus === 'presets' && getActiveProjectLaunchItem(stateRef.current)?.type === 'detected';
88
+ reduceCurrentFlow({ type: 'toggle-current' });
89
+ return { handled: true, ...(toggledDetected ? { toggledDetected } : {}) };
90
+ }
91
+ return { handled: false };
92
+ }, [moveRightWithL, reduceCurrentFlow, updateSortMessage]);
93
+ const confirmEnableUnlock = useCallback(() => {
94
+ reduceCurrentFlow({ type: 'confirm-enable-unlock' });
95
+ }, [reduceCurrentFlow]);
96
+ const cancelEnableUnlock = useCallback(() => {
97
+ reduceCurrentFlow({ type: 'cancel-enable-unlock' });
98
+ }, [reduceCurrentFlow]);
99
+ const disableRemovalsProps = useCallback(() => {
100
+ const pendingDisableRemovals = getPendingDisableRemovals(stateRef.current);
101
+ return pendingDisableRemovals.length > 0 ? { disableRemovals: pendingDisableRemovals } : {};
102
+ }, []);
103
+ const syncPresetState = useCallback((updater) => {
104
+ updateFlowState(updater);
105
+ }, [updateFlowState]);
106
+ return {
107
+ state,
108
+ activeItem,
109
+ activeToggleState,
110
+ sortMessage,
111
+ columnsProps,
112
+ dispatchBrowserKey,
113
+ confirmEnableUnlock,
114
+ cancelEnableUnlock,
115
+ disableRemovalsProps,
116
+ syncPresetState,
117
+ };
118
+ }
119
+ //# sourceMappingURL=use-project-launch-browser-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-project-launch-browser-controller.js","sourceRoot":"","sources":["../../src/ink/use-project-launch-browser-controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type BasePresetMeta, type PresetIndex, type PresetMeta, type Settings } from '../core/schema.js';
1
+ import { type BasePresetMeta, type PresetIndex, type Settings } from '../core/schema.js';
2
2
  export declare const CLAUDE_OFFICIAL_PRESET_NAME = "*Claude Official*";
3
3
  export type ClaudeOfficialPresetItem = {
4
4
  name: string;
@@ -7,14 +7,14 @@ export type ClaudeOfficialPresetItem = {
7
7
  temporary: true;
8
8
  };
9
9
  export declare function createPresetService(globalRoot: string): {
10
- getPresetPath(name: string): Promise<string>;
10
+ getPresetPath(nameInput: string): Promise<string>;
11
11
  readIndex(): Promise<PresetIndex>;
12
- listPresets(): Promise<PresetMeta[]>;
13
- readPresetSettings(name: string): Promise<Settings>;
12
+ listPresets(): Promise<BasePresetMeta[]>;
13
+ readPresetSettings(nameInput: string): Promise<Settings>;
14
14
  createBasePreset(nameInput: string, settingsInput: unknown): Promise<BasePresetMeta>;
15
15
  writeBasePreset(nameInput: string, settingsInput: unknown): Promise<BasePresetMeta>;
16
- writePresetSettingsByName(nameInput: string, settingsInput: unknown): Promise<PresetMeta>;
17
- renamePreset(nameInput: string, newNameInput: string): Promise<PresetMeta>;
16
+ writePresetSettingsByName(nameInput: string, settingsInput: unknown): Promise<BasePresetMeta>;
17
+ renamePreset(nameInput: string, newNameInput: string): Promise<BasePresetMeta>;
18
18
  deletePreset(nameInput: string): Promise<void>;
19
19
  importExistingSettingsFile(filePath: string, nameInput?: string): Promise<BasePresetMeta>;
20
20
  buildClaudeOfficialItem(settingsPath: string): Promise<ClaudeOfficialPresetItem>;
@@ -1,146 +1,237 @@
1
1
  import { promises as fs } from 'node:fs';
2
2
  import { CliError } from '../core/errors.js';
3
3
  import { pathExists, readJsonFile, writeJsonFile } from '../core/json.js';
4
- import { buildSettingsFileName, derivePresetNameFromSettingsPath, normalizePresetName, resolvePresetIndexKey } from '../core/name.js';
5
- import { resolveIndexPath, resolvePresetPath } from '../core/paths.js';
6
- import { createEmptyIndex, indexSchema, parseSettings, } from '../core/schema.js';
4
+ import { buildSettingsFileName, derivePresetNameFromSettingsPath, normalizePresetName, parseSettingsFileName, resolvePresetIndexKey, } from '../core/name.js';
5
+ import { resolvePresetMetadataPath, resolvePresetPath, resolveSettingsDir } from '../core/paths.js';
6
+ import { parseSettings, presetIndexSchema, } from '../core/schema.js';
7
7
  export const CLAUDE_OFFICIAL_PRESET_NAME = '*Claude Official*';
8
- function nowIso() {
9
- return new Date().toISOString();
8
+ function nowIso(date = new Date()) {
9
+ return date.toISOString();
10
+ }
11
+ function createEmptyMetadataState() {
12
+ return { version: 1, presets: {} };
13
+ }
14
+ function sanitizePresetMeta(meta) {
15
+ return {
16
+ type: 'base',
17
+ name: meta.name,
18
+ fileName: meta.fileName,
19
+ createdAt: meta.createdAt,
20
+ updatedAt: meta.updatedAt,
21
+ };
22
+ }
23
+ function buildLookup(presets) {
24
+ const list = [...presets].sort((a, b) => a.name.localeCompare(b.name));
25
+ return {
26
+ list,
27
+ byName: Object.fromEntries(list.map(preset => [preset.name, preset])),
28
+ };
10
29
  }
11
30
  export function createPresetService(globalRoot) {
12
- const indexPath = resolveIndexPath(globalRoot);
31
+ const settingsDir = resolveSettingsDir(globalRoot);
32
+ const metadataPath = resolvePresetMetadataPath(globalRoot);
33
+ async function readStoredMetadata() {
34
+ if (!(await pathExists(metadataPath)))
35
+ return createEmptyMetadataState();
36
+ const raw = await readJsonFile(metadataPath);
37
+ const parsed = presetIndexSchema.safeParse(raw);
38
+ if (!parsed.success)
39
+ return createEmptyMetadataState();
40
+ const version = parsed.data.version;
41
+ const rawPresets = parsed.data.presets;
42
+ const presets = Object.fromEntries(Object.entries(rawPresets).flatMap(([key, value]) => {
43
+ if (!value || typeof value !== 'object' || Array.isArray(value))
44
+ return [];
45
+ const preset = value;
46
+ if (preset.type !== 'base')
47
+ return [];
48
+ if (typeof preset.name !== 'string' || typeof preset.fileName !== 'string')
49
+ return [];
50
+ if (typeof preset.createdAt !== 'string' || typeof preset.updatedAt !== 'string')
51
+ return [];
52
+ return [[key, sanitizePresetMeta(preset)]];
53
+ }));
54
+ return { version, presets };
55
+ }
56
+ async function writeStoredMetadata(state) {
57
+ await writeJsonFile(metadataPath, {
58
+ version: 1,
59
+ presets: Object.fromEntries(Object.entries(state.presets).map(([key, meta]) => [key, sanitizePresetMeta(meta)])),
60
+ });
61
+ }
62
+ async function readPresetLookup() {
63
+ let entries;
64
+ try {
65
+ entries = await fs.readdir(settingsDir, { withFileTypes: true, encoding: 'utf8' });
66
+ }
67
+ catch (error) {
68
+ if (error.code === 'ENOENT')
69
+ return buildLookup([]);
70
+ throw error;
71
+ }
72
+ const stored = await readStoredMetadata();
73
+ const discovered = [];
74
+ let metadataChanged = false;
75
+ const liveNames = new Set();
76
+ for (const entry of entries) {
77
+ if (!entry.isFile() && !entry.isSymbolicLink())
78
+ continue;
79
+ const parsed = parseSettingsFileName(entry.name);
80
+ if (!parsed)
81
+ continue;
82
+ const filePath = resolvePresetPath(globalRoot, entry.name);
83
+ let stats;
84
+ try {
85
+ stats = await fs.stat(filePath);
86
+ }
87
+ catch (error) {
88
+ if (error.code === 'ENOENT')
89
+ continue;
90
+ throw error;
91
+ }
92
+ const existing = stored.presets[parsed.name];
93
+ const updatedAt = nowIso(stats.mtime);
94
+ const meta = sanitizePresetMeta({
95
+ type: 'base',
96
+ name: parsed.name,
97
+ fileName: entry.name,
98
+ createdAt: existing?.fileName === entry.name ? existing.createdAt : updatedAt,
99
+ updatedAt: existing?.fileName === entry.name ? existing.updatedAt : updatedAt,
100
+ });
101
+ if (!existing || existing.fileName !== meta.fileName) {
102
+ stored.presets[meta.name] = meta;
103
+ metadataChanged = true;
104
+ }
105
+ liveNames.add(meta.name);
106
+ discovered.push(stored.presets[meta.name] ?? meta);
107
+ }
108
+ for (const name of Object.keys(stored.presets)) {
109
+ if (liveNames.has(name))
110
+ continue;
111
+ delete stored.presets[name];
112
+ metadataChanged = true;
113
+ }
114
+ if (metadataChanged) {
115
+ await writeStoredMetadata(stored);
116
+ }
117
+ return buildLookup(discovered.map(meta => stored.presets[meta.name] ?? meta));
118
+ }
13
119
  async function readIndex() {
14
- if (!(await pathExists(indexPath)))
15
- return createEmptyIndex();
16
- return indexSchema.parse(await readJsonFile(indexPath));
120
+ const lookup = await readPresetLookup();
121
+ return {
122
+ version: 1,
123
+ presets: lookup.byName,
124
+ };
125
+ }
126
+ function getPresetPath(fileName) {
127
+ return resolvePresetPath(globalRoot, fileName);
128
+ }
129
+ async function readPresetMeta(nameInput) {
130
+ const lookup = await readPresetLookup();
131
+ const name = resolvePresetIndexKey(lookup.byName, nameInput);
132
+ return name ? lookup.byName[name] : undefined;
17
133
  }
18
- async function writeIndex(index) {
19
- await writeJsonFile(indexPath, indexSchema.parse(index));
134
+ async function writeBasePresetMetadata(meta) {
135
+ const state = await readStoredMetadata();
136
+ state.presets[meta.name] = sanitizePresetMeta(meta);
137
+ await writeStoredMetadata(state);
138
+ return state.presets[meta.name];
20
139
  }
21
- function getPresetPath(meta) {
22
- return resolvePresetPath(globalRoot, meta.fileName);
140
+ async function deleteBasePresetMetadata(nameInput) {
141
+ const state = await readStoredMetadata();
142
+ const name = resolvePresetIndexKey(state.presets, nameInput);
143
+ if (!name)
144
+ return;
145
+ delete state.presets[name];
146
+ await writeStoredMetadata(state);
23
147
  }
24
- async function readPresetSettings(name) {
25
- const index = await readIndex();
26
- const meta = index.presets[name];
27
- if (!meta)
28
- throw new CliError(`Preset not found: ${name}`);
29
- return parseSettings(await readJsonFile(getPresetPath(meta)));
148
+ async function writePresetSettings(fileName, settings) {
149
+ await writeJsonFile(getPresetPath(fileName), parseSettings(settings));
30
150
  }
31
- async function writePresetSettings(meta, settings) {
32
- await writeJsonFile(getPresetPath(meta), parseSettings(settings));
151
+ async function updateBasePreset(nameInput, settingsInput, notFoundMessage) {
152
+ const settings = parseSettings(settingsInput);
153
+ const existing = await readPresetMeta(nameInput);
154
+ if (!existing)
155
+ throw new CliError(notFoundMessage(nameInput));
156
+ await writePresetSettings(existing.fileName, settings);
157
+ const updated = sanitizePresetMeta({ ...existing, updatedAt: nowIso() });
158
+ return writeBasePresetMetadata(updated);
33
159
  }
34
160
  const service = {
35
- async getPresetPath(name) {
36
- const index = await readIndex();
37
- const meta = index.presets[name];
161
+ async getPresetPath(nameInput) {
162
+ const meta = await readPresetMeta(nameInput);
38
163
  if (!meta)
39
- throw new CliError(`Preset not found: ${name}`);
40
- return getPresetPath(meta);
164
+ throw new CliError(`Preset not found: ${nameInput}`);
165
+ return getPresetPath(meta.fileName);
41
166
  },
42
167
  async readIndex() {
43
168
  return readIndex();
44
169
  },
45
170
  async listPresets() {
46
- const index = await readIndex();
47
- return Object.values(index.presets)
48
- .filter((preset) => preset.type === 'base')
49
- .sort((a, b) => a.name.localeCompare(b.name));
171
+ return (await readPresetLookup()).list;
50
172
  },
51
- async readPresetSettings(name) {
52
- return readPresetSettings(name);
173
+ async readPresetSettings(nameInput) {
174
+ const meta = await readPresetMeta(nameInput);
175
+ if (!meta)
176
+ throw new CliError(`Preset not found: ${nameInput}`);
177
+ return parseSettings(await readJsonFile(getPresetPath(meta.fileName)));
53
178
  },
54
179
  async createBasePreset(nameInput, settingsInput) {
55
180
  const settings = parseSettings(settingsInput);
56
181
  const name = normalizePresetName(nameInput);
57
- const index = await readIndex();
58
- if (index.presets[name])
182
+ if (await readPresetMeta(name))
59
183
  throw new CliError(`Preset already exists: ${name}`, 1, 'preset_already_exists');
60
184
  const timestamp = nowIso();
61
- const meta = {
185
+ const meta = await writeBasePresetMetadata({
62
186
  type: 'base',
63
187
  name,
64
188
  fileName: buildSettingsFileName(name),
65
189
  createdAt: timestamp,
66
190
  updatedAt: timestamp,
67
- };
68
- index.presets[name] = meta;
69
- await writePresetSettings(meta, settings);
70
- await writeIndex(index);
191
+ });
192
+ await writePresetSettings(meta.fileName, settings);
71
193
  return meta;
72
194
  },
73
195
  async writeBasePreset(nameInput, settingsInput) {
74
- const settings = parseSettings(settingsInput);
75
- const index = await readIndex();
76
- const name = resolvePresetIndexKey(index.presets, nameInput);
77
- if (!name)
78
- throw new CliError(`Base preset not found: ${nameInput}`);
79
- const existing = index.presets[name];
80
- if (!existing || existing.type !== 'base')
81
- throw new CliError(`Base preset not found: ${nameInput}`);
82
- const updated = { ...existing, updatedAt: nowIso() };
83
- index.presets[name] = updated;
84
- await writePresetSettings(updated, settings);
85
- await writeIndex(index);
86
- return updated;
196
+ return updateBasePreset(nameInput, settingsInput, name => `Base preset not found: ${name}`);
87
197
  },
88
198
  async writePresetSettingsByName(nameInput, settingsInput) {
89
- const settings = parseSettings(settingsInput);
90
- const index = await readIndex();
91
- const name = resolvePresetIndexKey(index.presets, nameInput);
92
- if (!name)
93
- throw new CliError(`Preset not found: ${nameInput}`);
94
- const existing = index.presets[name];
95
- if (!existing)
96
- throw new CliError(`Preset not found: ${nameInput}`);
97
- const updated = { ...existing, updatedAt: nowIso() };
98
- index.presets[name] = updated;
99
- await writePresetSettings(updated, settings);
100
- await writeIndex(index);
101
- return updated;
199
+ return updateBasePreset(nameInput, settingsInput, name => `Preset not found: ${name}`);
102
200
  },
103
201
  async renamePreset(nameInput, newNameInput) {
104
202
  const requestedName = normalizePresetName(newNameInput, { preserveCase: true });
105
- const index = await readIndex();
106
- const name = resolvePresetIndexKey(index.presets, nameInput);
107
- if (!name)
108
- throw new CliError(`Preset not found: ${nameInput}`);
109
- const meta = index.presets[name];
110
- if (!meta)
203
+ const existing = await readPresetMeta(nameInput);
204
+ if (!existing)
111
205
  throw new CliError(`Preset not found: ${nameInput}`);
112
- if (meta.type !== 'base')
113
- throw new CliError(`Base preset not found: ${nameInput}`);
114
- const newName = requestedName;
115
- if (newName === name) {
116
- return { ...meta, updatedAt: nowIso() };
206
+ if (requestedName === existing.name) {
207
+ return existing;
117
208
  }
118
- if (index.presets[newName])
119
- throw new CliError(`Preset already exists: ${newName}`, 1, 'preset_already_exists');
120
- const updated = { ...meta, name: newName, fileName: buildSettingsFileName(newName, { preserveCase: true }), updatedAt: nowIso() };
121
- await fs.rename(getPresetPath(meta), resolvePresetPath(globalRoot, updated.fileName));
122
- delete index.presets[name];
123
- index.presets[newName] = updated;
124
- await writeIndex(index);
125
- return updated;
209
+ const conflicting = await readPresetMeta(requestedName);
210
+ if (conflicting && conflicting.name !== existing.name) {
211
+ throw new CliError(`Preset already exists: ${requestedName}`, 1, 'preset_already_exists');
212
+ }
213
+ const updated = sanitizePresetMeta({
214
+ ...existing,
215
+ name: requestedName,
216
+ fileName: buildSettingsFileName(requestedName, { preserveCase: true }),
217
+ updatedAt: nowIso(),
218
+ });
219
+ await fs.rename(getPresetPath(existing.fileName), getPresetPath(updated.fileName));
220
+ await deleteBasePresetMetadata(existing.name);
221
+ return writeBasePresetMetadata(updated);
126
222
  },
127
223
  async deletePreset(nameInput) {
128
- const index = await readIndex();
129
- const name = resolvePresetIndexKey(index.presets, nameInput);
130
- if (!name)
131
- return;
132
- const meta = index.presets[name];
133
- if (!meta)
224
+ const existing = await readPresetMeta(nameInput);
225
+ if (!existing)
134
226
  return;
135
227
  try {
136
- await fs.unlink(getPresetPath(meta));
228
+ await fs.unlink(getPresetPath(existing.fileName));
137
229
  }
138
230
  catch (error) {
139
231
  if (error.code !== 'ENOENT')
140
232
  throw error;
141
233
  }
142
- delete index.presets[name];
143
- await writeIndex(index);
234
+ await deleteBasePresetMetadata(existing.name);
144
235
  },
145
236
  async importExistingSettingsFile(filePath, nameInput) {
146
237
  const settings = parseSettings(await readJsonFile(filePath));
@@ -1 +1 @@
1
- {"version":3,"file":"preset-service.js","sourceRoot":"","sources":["../../src/services/preset-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-service.js","sourceRoot":"","sources":["../../src/services/preset-service.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.1.2";
1
+ export declare const VERSION = "1.1.4";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-version.mjs. Do not edit.
2
- export const VERSION = "1.1.2";
2
+ export const VERSION = "1.1.4";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lkangd/cc-settings-preset",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "A switchable, reusable runtime settings preset selector for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -54,7 +54,7 @@
54
54
  "postbuild": "chmod +x dist/cli.js",
55
55
  "prepack": "pnpm run build",
56
56
  "dev": "tsx src/cli.ts",
57
- "test": "vitest run",
57
+ "test": "vitest run --reporter=dot --silent=passed-only",
58
58
  "check": "pnpm run typecheck && pnpm run build && pnpm run test",
59
59
  "test:coverage": "vitest run --coverage"
60
60
  },