claude-settings-cli 1.0.0
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/LICENSE +21 -0
- package/README.md +142 -0
- package/bin/ccc.mjs +2 -0
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +55 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +135 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/io.d.ts +4 -0
- package/dist/commands/io.d.ts.map +1 -0
- package/dist/commands/io.js +69 -0
- package/dist/commands/io.js.map +1 -0
- package/dist/commands/plugin.d.ts +3 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +77 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/preset.d.ts +3 -0
- package/dist/commands/preset.d.ts.map +1 -0
- package/dist/commands/preset.js +118 -0
- package/dist/commands/preset.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +61 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/core/diff.d.ts +3 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/diff.js +45 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/paths.d.ts +12 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +34 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/reader.d.ts +13 -0
- package/dist/core/reader.d.ts.map +1 -0
- package/dist/core/reader.js +65 -0
- package/dist/core/reader.js.map +1 -0
- package/dist/core/switcher.d.ts +12 -0
- package/dist/core/switcher.d.ts.map +1 -0
- package/dist/core/switcher.js +37 -0
- package/dist/core/switcher.js.map +1 -0
- package/dist/core/writer.d.ts +11 -0
- package/dist/core/writer.d.ts.map +1 -0
- package/dist/core/writer.js +34 -0
- package/dist/core/writer.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/plugins.d.ts +70 -0
- package/dist/schema/plugins.d.ts.map +1 -0
- package/dist/schema/plugins.js +15 -0
- package/dist/schema/plugins.js.map +1 -0
- package/dist/schema/project.d.ts +37 -0
- package/dist/schema/project.d.ts.map +1 -0
- package/dist/schema/project.js +16 -0
- package/dist/schema/project.js.map +1 -0
- package/dist/schema/settings.d.ts +37 -0
- package/dist/schema/settings.d.ts.map +1 -0
- package/dist/schema/settings.js +30 -0
- package/dist/schema/settings.js.map +1 -0
- package/dist/types/index.d.ts +37 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/backup.d.ts +6 -0
- package/dist/utils/backup.d.ts.map +1 -0
- package/dist/utils/backup.js +34 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/errors.d.ts +18 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +42 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +18 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/safe-json.d.ts +3 -0
- package/dist/utils/safe-json.d.ts.map +1 -0
- package/dist/utils/safe-json.js +25 -0
- package/dist/utils/safe-json.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const PluginEntrySchema: z.ZodObject<{
|
|
3
|
+
scope: z.ZodString;
|
|
4
|
+
installPath: z.ZodString;
|
|
5
|
+
version: z.ZodString;
|
|
6
|
+
installedAt: z.ZodString;
|
|
7
|
+
lastUpdated: z.ZodString;
|
|
8
|
+
gitCommitSha: z.ZodString;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
scope: string;
|
|
11
|
+
installPath: string;
|
|
12
|
+
version: string;
|
|
13
|
+
installedAt: string;
|
|
14
|
+
lastUpdated: string;
|
|
15
|
+
gitCommitSha: string;
|
|
16
|
+
}, {
|
|
17
|
+
scope: string;
|
|
18
|
+
installPath: string;
|
|
19
|
+
version: string;
|
|
20
|
+
installedAt: string;
|
|
21
|
+
lastUpdated: string;
|
|
22
|
+
gitCommitSha: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const InstalledPluginsSchema: z.ZodObject<{
|
|
25
|
+
version: z.ZodNumber;
|
|
26
|
+
plugins: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
27
|
+
scope: z.ZodString;
|
|
28
|
+
installPath: z.ZodString;
|
|
29
|
+
version: z.ZodString;
|
|
30
|
+
installedAt: z.ZodString;
|
|
31
|
+
lastUpdated: z.ZodString;
|
|
32
|
+
gitCommitSha: z.ZodString;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
scope: string;
|
|
35
|
+
installPath: string;
|
|
36
|
+
version: string;
|
|
37
|
+
installedAt: string;
|
|
38
|
+
lastUpdated: string;
|
|
39
|
+
gitCommitSha: string;
|
|
40
|
+
}, {
|
|
41
|
+
scope: string;
|
|
42
|
+
installPath: string;
|
|
43
|
+
version: string;
|
|
44
|
+
installedAt: string;
|
|
45
|
+
lastUpdated: string;
|
|
46
|
+
gitCommitSha: string;
|
|
47
|
+
}>, "many">>;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
plugins: Record<string, {
|
|
50
|
+
scope: string;
|
|
51
|
+
installPath: string;
|
|
52
|
+
version: string;
|
|
53
|
+
installedAt: string;
|
|
54
|
+
lastUpdated: string;
|
|
55
|
+
gitCommitSha: string;
|
|
56
|
+
}[]>;
|
|
57
|
+
version: number;
|
|
58
|
+
}, {
|
|
59
|
+
plugins: Record<string, {
|
|
60
|
+
scope: string;
|
|
61
|
+
installPath: string;
|
|
62
|
+
version: string;
|
|
63
|
+
installedAt: string;
|
|
64
|
+
lastUpdated: string;
|
|
65
|
+
gitCommitSha: string;
|
|
66
|
+
}[]>;
|
|
67
|
+
version: number;
|
|
68
|
+
}>;
|
|
69
|
+
export declare const BlocklistSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
70
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/schema/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,eAAe,uCAAmC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const PluginEntrySchema = z.object({
|
|
3
|
+
scope: z.string(),
|
|
4
|
+
installPath: z.string(),
|
|
5
|
+
version: z.string(),
|
|
6
|
+
installedAt: z.string(),
|
|
7
|
+
lastUpdated: z.string(),
|
|
8
|
+
gitCommitSha: z.string(),
|
|
9
|
+
});
|
|
10
|
+
export const InstalledPluginsSchema = z.object({
|
|
11
|
+
version: z.number(),
|
|
12
|
+
plugins: z.record(z.string(), z.array(PluginEntrySchema)),
|
|
13
|
+
});
|
|
14
|
+
export const BlocklistSchema = z.record(z.string(), z.string());
|
|
15
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/schema/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
3
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4
|
+
ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
5
|
+
mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6
|
+
permissions: z.ZodOptional<z.ZodObject<{
|
|
7
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["default", "bypassPermissions", "acceptEdits"]>>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
12
|
+
}>>;
|
|
13
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
14
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
17
|
+
permissions: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["default", "bypassPermissions", "acceptEdits"]>>;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
23
|
+
}>>;
|
|
24
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
25
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
27
|
+
mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
28
|
+
permissions: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["default", "bypassPermissions", "acceptEdits"]>>;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
34
|
+
}>>;
|
|
35
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
36
|
+
export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
|
|
37
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAahB,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const ProjectConfigSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
allowedTools: z.array(z.string()).optional(),
|
|
5
|
+
ignorePatterns: z.array(z.string()).optional(),
|
|
6
|
+
mcpServers: z.record(z.string(), z.unknown()).optional(),
|
|
7
|
+
permissions: z
|
|
8
|
+
.object({
|
|
9
|
+
defaultMode: z
|
|
10
|
+
.enum(['default', 'bypassPermissions', 'acceptEdits'])
|
|
11
|
+
.optional(),
|
|
12
|
+
})
|
|
13
|
+
.optional(),
|
|
14
|
+
})
|
|
15
|
+
.passthrough();
|
|
16
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;aACrD,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SENSITIVE_KEYS: string[];
|
|
3
|
+
export declare const SettingsSchema: z.ZodObject<{
|
|
4
|
+
env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
5
|
+
permissions: z.ZodOptional<z.ZodObject<{
|
|
6
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["default", "bypassPermissions", "acceptEdits"]>>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
11
|
+
}>>;
|
|
12
|
+
enabledPlugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
13
|
+
language: z.ZodOptional<z.ZodString>;
|
|
14
|
+
alwaysThinkingEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
skipDangerousModePermissionPrompt: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
env: Record<string, string>;
|
|
18
|
+
permissions?: {
|
|
19
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
20
|
+
} | undefined;
|
|
21
|
+
enabledPlugins?: Record<string, boolean> | undefined;
|
|
22
|
+
language?: string | undefined;
|
|
23
|
+
alwaysThinkingEnabled?: boolean | undefined;
|
|
24
|
+
skipDangerousModePermissionPrompt?: boolean | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
env?: Record<string, string> | undefined;
|
|
27
|
+
permissions?: {
|
|
28
|
+
defaultMode?: "default" | "bypassPermissions" | "acceptEdits" | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
enabledPlugins?: Record<string, boolean> | undefined;
|
|
31
|
+
language?: string | undefined;
|
|
32
|
+
alwaysThinkingEnabled?: boolean | undefined;
|
|
33
|
+
skipDangerousModePermissionPrompt?: boolean | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export type Settings = z.infer<typeof SettingsSchema>;
|
|
36
|
+
export declare function maskValue(key: string, value: string): string;
|
|
37
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/schema/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc,UAK1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAazB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM5D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const SENSITIVE_KEYS = [
|
|
3
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
4
|
+
'ANTHROPIC_API_KEY',
|
|
5
|
+
'API_KEY',
|
|
6
|
+
'SECRET',
|
|
7
|
+
];
|
|
8
|
+
export const SettingsSchema = z.object({
|
|
9
|
+
env: z.record(z.string(), z.string()).default({}),
|
|
10
|
+
permissions: z
|
|
11
|
+
.object({
|
|
12
|
+
defaultMode: z
|
|
13
|
+
.enum(['default', 'bypassPermissions', 'acceptEdits'])
|
|
14
|
+
.optional(),
|
|
15
|
+
})
|
|
16
|
+
.optional(),
|
|
17
|
+
enabledPlugins: z.record(z.string(), z.boolean()).optional(),
|
|
18
|
+
language: z.string().optional(),
|
|
19
|
+
alwaysThinkingEnabled: z.boolean().optional(),
|
|
20
|
+
skipDangerousModePermissionPrompt: z.boolean().optional(),
|
|
21
|
+
});
|
|
22
|
+
export function maskValue(key, value) {
|
|
23
|
+
if (SENSITIVE_KEYS.some((k) => key.toUpperCase().includes(k))) {
|
|
24
|
+
if (value.length <= 8)
|
|
25
|
+
return '****';
|
|
26
|
+
return value.slice(0, 4) + '****';
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/schema/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,sBAAsB;IACtB,mBAAmB;IACnB,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;aACrD,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;IACb,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7C,iCAAiC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAIH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface Settings {
|
|
2
|
+
env: Record<string, string>;
|
|
3
|
+
permissions?: {
|
|
4
|
+
defaultMode?: 'default' | 'bypassPermissions' | 'acceptEdits';
|
|
5
|
+
};
|
|
6
|
+
enabledPlugins?: Record<string, boolean>;
|
|
7
|
+
language?: string;
|
|
8
|
+
alwaysThinkingEnabled?: boolean;
|
|
9
|
+
skipDangerousModePermissionPrompt?: boolean;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface InstalledPlugins {
|
|
13
|
+
version: number;
|
|
14
|
+
plugins: Record<string, PluginEntry[]>;
|
|
15
|
+
}
|
|
16
|
+
export interface PluginEntry {
|
|
17
|
+
scope: string;
|
|
18
|
+
installPath: string;
|
|
19
|
+
version: string;
|
|
20
|
+
installedAt: string;
|
|
21
|
+
lastUpdated: string;
|
|
22
|
+
gitCommitSha: string;
|
|
23
|
+
}
|
|
24
|
+
export interface Blocklist {
|
|
25
|
+
[pluginId: string]: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ExportData {
|
|
28
|
+
version: string;
|
|
29
|
+
exportedAt: string;
|
|
30
|
+
settings: Settings;
|
|
31
|
+
presets: Record<string, Settings>;
|
|
32
|
+
plugins?: {
|
|
33
|
+
installed: InstalledPlugins;
|
|
34
|
+
blocklist: Blocklist;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAC;KAC/D,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,gBAAgB,CAAC;QAC5B,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;WACX,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAenE,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;WAQjB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOlF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { BACKUPS_DIR } from '../core/paths.js';
|
|
4
|
+
export class BackupManager {
|
|
5
|
+
static async createBackup(filePath) {
|
|
6
|
+
if (!(await fs.pathExists(filePath)))
|
|
7
|
+
return null;
|
|
8
|
+
await fs.ensureDir(BACKUPS_DIR);
|
|
9
|
+
const timestamp = new Date()
|
|
10
|
+
.toISOString()
|
|
11
|
+
.replace(/[:.]/g, '-')
|
|
12
|
+
.slice(0, 19);
|
|
13
|
+
const basename = path.basename(filePath, '.json');
|
|
14
|
+
const backupPath = path.join(BACKUPS_DIR, `${basename}_${timestamp}.json`);
|
|
15
|
+
await fs.copy(filePath, backupPath);
|
|
16
|
+
return backupPath;
|
|
17
|
+
}
|
|
18
|
+
static listBackups() {
|
|
19
|
+
try {
|
|
20
|
+
return fs.readdirSync(BACKUPS_DIR).filter((f) => f.endsWith('.json')).sort().reverse();
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static async restoreBackup(backupName, targetPath) {
|
|
27
|
+
const backupPath = path.join(BACKUPS_DIR, backupName);
|
|
28
|
+
if (!(await fs.pathExists(backupPath))) {
|
|
29
|
+
throw new Error(`Backup "${backupName}" not found`);
|
|
30
|
+
}
|
|
31
|
+
await fs.copy(backupPath, targetPath);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE;aACzB,WAAW,EAAE;aACb,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,IAAI,SAAS,OAAO,CAAC,CAAC;QAE3E,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,UAAkB;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,aAAa,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class CccError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(message: string, code: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class PresetNotFoundError extends CccError {
|
|
6
|
+
constructor(name: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class InvalidConfigError extends CccError {
|
|
9
|
+
constructor(filePath: string, message: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class ConfigReadError extends CccError {
|
|
12
|
+
constructor(filePath: string, cause?: Error);
|
|
13
|
+
}
|
|
14
|
+
export declare class ConfigWriteError extends CccError {
|
|
15
|
+
constructor(filePath: string, cause?: Error);
|
|
16
|
+
}
|
|
17
|
+
export declare function handleError(err: unknown): never;
|
|
18
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;aAGf,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,IAAI,EAAE,MAAM;CAMzB;AAED,qBAAa,kBAAmB,SAAQ,QAAQ;gBAClC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG9C;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM5C;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;gBAChC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM5C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAS/C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export class CccError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
constructor(message, code) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.name = 'CccError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export class PresetNotFoundError extends CccError {
|
|
11
|
+
constructor(name) {
|
|
12
|
+
super(`Preset "${name}" not found. Run "ccc preset list" to see available presets.`, 'PRESET_NOT_FOUND');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class InvalidConfigError extends CccError {
|
|
16
|
+
constructor(filePath, message) {
|
|
17
|
+
super(`Invalid config in ${filePath}:\n${message}`, 'INVALID_CONFIG');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class ConfigReadError extends CccError {
|
|
21
|
+
constructor(filePath, cause) {
|
|
22
|
+
super(`Failed to read ${filePath}: ${cause?.message ?? 'unknown error'}`, 'CONFIG_READ_ERROR');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class ConfigWriteError extends CccError {
|
|
26
|
+
constructor(filePath, cause) {
|
|
27
|
+
super(`Failed to write ${filePath}: ${cause?.message ?? 'unknown error'}`, 'CONFIG_WRITE_ERROR');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function handleError(err) {
|
|
31
|
+
if (err instanceof CccError) {
|
|
32
|
+
console.error(chalk.red(`Error: ${err.message}`));
|
|
33
|
+
}
|
|
34
|
+
else if (err instanceof Error) {
|
|
35
|
+
console.error(chalk.red(`Error: ${err.message}`));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.error(chalk.red(`Unknown error: ${String(err)}`));
|
|
39
|
+
}
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,IAAY;QACtB,KAAK,CACH,WAAW,IAAI,8DAA8D,EAC7E,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,QAAgB,EAAE,OAAe;QAC3C,KAAK,CAAC,qBAAqB,QAAQ,MAAM,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACxE,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CACH,kBAAkB,QAAQ,KAAK,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,EAClE,mBAAmB,CACpB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CACH,mBAAmB,QAAQ,KAAK,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,EACnE,oBAAoB,CACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Ora } from 'ora';
|
|
2
|
+
export declare function spinner(text: string): Ora;
|
|
3
|
+
export declare function success(message: string): void;
|
|
4
|
+
export declare function info(message: string): void;
|
|
5
|
+
export declare function warn(message: string): void;
|
|
6
|
+
export declare function error(message: string): void;
|
|
7
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAEzC;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
export function spinner(text) {
|
|
4
|
+
return ora(text).start();
|
|
5
|
+
}
|
|
6
|
+
export function success(message) {
|
|
7
|
+
console.log(chalk.green(`✓ ${message}`));
|
|
8
|
+
}
|
|
9
|
+
export function info(message) {
|
|
10
|
+
console.log(chalk.blue(`ℹ ${message}`));
|
|
11
|
+
}
|
|
12
|
+
export function warn(message) {
|
|
13
|
+
console.log(chalk.yellow(`⚠ ${message}`));
|
|
14
|
+
}
|
|
15
|
+
export function error(message) {
|
|
16
|
+
console.error(chalk.red(`✗ ${message}`));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAiB,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-json.d.ts","sourceRoot":"","sources":["../../src/utils/safe-json.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAS5E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CASjE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import { ConfigReadError } from './errors.js';
|
|
3
|
+
export async function readJsonSafe(filePath) {
|
|
4
|
+
try {
|
|
5
|
+
return (await fs.readJson(filePath));
|
|
6
|
+
}
|
|
7
|
+
catch (err) {
|
|
8
|
+
if (err.code === 'ENOENT') {
|
|
9
|
+
throw new ConfigReadError(filePath, new Error('File not found'));
|
|
10
|
+
}
|
|
11
|
+
throw new ConfigReadError(filePath, err);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function readJsonSafeSync(filePath) {
|
|
15
|
+
try {
|
|
16
|
+
return fs.readJsonSync(filePath);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
if (err.code === 'ENOENT') {
|
|
20
|
+
throw new ConfigReadError(filePath, new Error('File not found'));
|
|
21
|
+
}
|
|
22
|
+
throw new ConfigReadError(filePath, err);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=safe-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-json.js","sourceRoot":"","sources":["../../src/utils/safe-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAc,QAAgB;IAC9D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAM,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,GAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAc,QAAgB;IAC5D,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAM,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,GAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-settings-cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI tool to manage Claude Code configuration presets",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"ccc": "bin/ccc.mjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc -p tsconfig.build.json",
|
|
17
|
+
"dev": "tsx src/index.ts",
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"lint": "eslint src/",
|
|
21
|
+
"format": "prettier --write src/",
|
|
22
|
+
"prepublishOnly": "npm run build"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"claude",
|
|
26
|
+
"claude-code",
|
|
27
|
+
"config",
|
|
28
|
+
"cli",
|
|
29
|
+
"preset"
|
|
30
|
+
],
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=18"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"chalk": "^5.3.0",
|
|
37
|
+
"commander": "^12.0.0",
|
|
38
|
+
"fs-extra": "^11.2.0",
|
|
39
|
+
"inquirer": "^9.0.0",
|
|
40
|
+
"ora": "^8.0.0",
|
|
41
|
+
"zod": "^3.22.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/fs-extra": "^11.0.0",
|
|
45
|
+
"@types/inquirer": "^9.0.9",
|
|
46
|
+
"@types/node": "^20.0.0",
|
|
47
|
+
"prettier": "^3.2.0",
|
|
48
|
+
"tsx": "^4.7.0",
|
|
49
|
+
"typescript": "^5.4.0",
|
|
50
|
+
"vitest": "^1.6.0"
|
|
51
|
+
}
|
|
52
|
+
}
|