cc-permissions 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +14 -0
- package/README.md +230 -0
- package/dist/analyze.d.ts +10 -0
- package/dist/analyze.d.ts.map +1 -0
- package/dist/analyze.js +213 -0
- package/dist/analyze.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +348 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/output.d.ts +83 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +178 -0
- package/dist/output.js.map +1 -0
- package/dist/permissions.d.ts +32 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +98 -0
- package/dist/permissions.js.map +1 -0
- package/dist/templates/cache.d.ts +71 -0
- package/dist/templates/cache.d.ts.map +1 -0
- package/dist/templates/cache.js +137 -0
- package/dist/templates/cache.js.map +1 -0
- package/dist/templates/dotnet.d.ts +3 -0
- package/dist/templates/dotnet.d.ts.map +1 -0
- package/dist/templates/dotnet.js +76 -0
- package/dist/templates/dotnet.js.map +1 -0
- package/dist/templates/general.d.ts +3 -0
- package/dist/templates/general.d.ts.map +1 -0
- package/dist/templates/general.js +59 -0
- package/dist/templates/general.js.map +1 -0
- package/dist/templates/index.d.ts +32 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +54 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/loader.d.ts +19 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/loader.js +221 -0
- package/dist/templates/loader.js.map +1 -0
- package/dist/templates/python.d.ts +3 -0
- package/dist/templates/python.d.ts.map +1 -0
- package/dist/templates/python.js +110 -0
- package/dist/templates/python.js.map +1 -0
- package/dist/templates/remote.d.ts +45 -0
- package/dist/templates/remote.d.ts.map +1 -0
- package/dist/templates/remote.js +147 -0
- package/dist/templates/remote.js.map +1 -0
- package/dist/templates/web.d.ts +3 -0
- package/dist/templates/web.d.ts.map +1 -0
- package/dist/templates/web.js +101 -0
- package/dist/templates/web.js.map +1 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +53 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +118 -0
- package/dist/version.js.map +1 -0
- package/package.json +54 -0
- package/templates/android.jsonc +99 -0
- package/templates/aws.jsonc +113 -0
- package/templates/azure.jsonc +103 -0
- package/templates/database.jsonc +133 -0
- package/templates/docker.jsonc +115 -0
- package/templates/dotnet.jsonc +80 -0
- package/templates/flutter.jsonc +106 -0
- package/templates/gcp.jsonc +110 -0
- package/templates/git.jsonc +52 -0
- package/templates/github.jsonc +132 -0
- package/templates/go.jsonc +75 -0
- package/templates/ios.jsonc +98 -0
- package/templates/java.jsonc +93 -0
- package/templates/kubernetes.jsonc +114 -0
- package/templates/nodejs.jsonc +105 -0
- package/templates/php.jsonc +107 -0
- package/templates/python.jsonc +114 -0
- package/templates/ruby.jsonc +99 -0
- package/templates/rust.jsonc +97 -0
- package/templates/shell.jsonc +73 -0
- package/templates/template.schema.json +102 -0
- package/templates/terraform.jsonc +96 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export const webTemplate = {
|
|
2
|
+
name: "web",
|
|
3
|
+
description: "Node.js, npm, and common frontend tooling",
|
|
4
|
+
levels: {
|
|
5
|
+
restrictive: [
|
|
6
|
+
// npm read-only
|
|
7
|
+
{ command: "npm list", description: "List installed packages" },
|
|
8
|
+
{ command: "npm ls", description: "List installed packages (alias)" },
|
|
9
|
+
{ command: "npm outdated", description: "Check for outdated packages" },
|
|
10
|
+
{ command: "npm view", description: "View package info" },
|
|
11
|
+
{ command: "npm info", description: "View package info (alias)" },
|
|
12
|
+
{ command: "npm search", description: "Search npm registry" },
|
|
13
|
+
{ command: "npm help", description: "Get npm help" },
|
|
14
|
+
{ command: "npm config list", description: "List npm config" },
|
|
15
|
+
{ command: "npm audit", description: "Run security audit" },
|
|
16
|
+
// node read-only
|
|
17
|
+
{ command: "node -v", description: "Check Node version" },
|
|
18
|
+
{ command: "node --version", description: "Check Node version" },
|
|
19
|
+
{ command: "node -e", description: "Evaluate Node expression" },
|
|
20
|
+
{ command: "node -p", description: "Print Node evaluation" },
|
|
21
|
+
// npx read-only (for running info commands)
|
|
22
|
+
{ command: "npx -v", description: "Check npx version" },
|
|
23
|
+
// pnpm read-only
|
|
24
|
+
{ command: "pnpm list", description: "List installed packages (pnpm)" },
|
|
25
|
+
{ command: "pnpm ls", description: "List installed packages (pnpm alias)" },
|
|
26
|
+
{ command: "pnpm outdated", description: "Check for outdated packages (pnpm)" },
|
|
27
|
+
// yarn read-only
|
|
28
|
+
{ command: "yarn list", description: "List installed packages (yarn)" },
|
|
29
|
+
{ command: "yarn info", description: "View package info (yarn)" },
|
|
30
|
+
{ command: "yarn outdated", description: "Check for outdated packages (yarn)" },
|
|
31
|
+
// bun read-only
|
|
32
|
+
{ command: "bun --version", description: "Check Bun version" },
|
|
33
|
+
{ command: "bun pm ls", description: "List installed packages (bun)" },
|
|
34
|
+
],
|
|
35
|
+
standard: [
|
|
36
|
+
// npm scripts (no install)
|
|
37
|
+
{ command: "npm run", description: "Run npm scripts" },
|
|
38
|
+
{ command: "npm test", description: "Run tests" },
|
|
39
|
+
{ command: "npm start", description: "Start the application" },
|
|
40
|
+
{ command: "npm build", description: "Build the project" },
|
|
41
|
+
{ command: "npm run build", description: "Build the project" },
|
|
42
|
+
{ command: "npm run dev", description: "Run dev server" },
|
|
43
|
+
{ command: "npm run lint", description: "Run linter" },
|
|
44
|
+
{ command: "npm run format", description: "Run formatter" },
|
|
45
|
+
{ command: "npm run test", description: "Run tests" },
|
|
46
|
+
{ command: "npm run watch", description: "Run in watch mode" },
|
|
47
|
+
{ command: "npm exec", description: "Execute package binary" },
|
|
48
|
+
// npx (execute without install)
|
|
49
|
+
{ command: "npx", description: "Execute npm packages" },
|
|
50
|
+
// pnpm scripts
|
|
51
|
+
{ command: "pnpm run", description: "Run pnpm scripts" },
|
|
52
|
+
{ command: "pnpm test", description: "Run tests (pnpm)" },
|
|
53
|
+
{ command: "pnpm build", description: "Build the project (pnpm)" },
|
|
54
|
+
{ command: "pnpm dev", description: "Run dev server (pnpm)" },
|
|
55
|
+
{ command: "pnpm exec", description: "Execute package binary (pnpm)" },
|
|
56
|
+
{ command: "pnpm dlx", description: "Execute without install (pnpm)" },
|
|
57
|
+
// yarn scripts
|
|
58
|
+
{ command: "yarn run", description: "Run yarn scripts" },
|
|
59
|
+
{ command: "yarn test", description: "Run tests (yarn)" },
|
|
60
|
+
{ command: "yarn build", description: "Build the project (yarn)" },
|
|
61
|
+
{ command: "yarn dev", description: "Run dev server (yarn)" },
|
|
62
|
+
{ command: "yarn dlx", description: "Execute without install (yarn)" },
|
|
63
|
+
// bun scripts
|
|
64
|
+
{ command: "bun run", description: "Run bun scripts" },
|
|
65
|
+
{ command: "bun test", description: "Run tests (bun)" },
|
|
66
|
+
{ command: "bun build", description: "Build the project (bun)" },
|
|
67
|
+
{ command: "bunx", description: "Execute bun packages" },
|
|
68
|
+
// node execution
|
|
69
|
+
{ command: "node", description: "Run Node.js scripts" },
|
|
70
|
+
],
|
|
71
|
+
permissive: [
|
|
72
|
+
// npm install operations
|
|
73
|
+
{ command: "npm install", description: "Install packages" },
|
|
74
|
+
{ command: "npm i", description: "Install packages (alias)" },
|
|
75
|
+
{ command: "npm ci", description: "Clean install" },
|
|
76
|
+
{ command: "npm uninstall", description: "Uninstall packages" },
|
|
77
|
+
{ command: "npm update", description: "Update packages" },
|
|
78
|
+
{ command: "npm link", description: "Link packages locally" },
|
|
79
|
+
{ command: "npm publish", description: "Publish to npm" },
|
|
80
|
+
{ command: "npm init", description: "Initialize new project" },
|
|
81
|
+
{ command: "npm pack", description: "Create package tarball" },
|
|
82
|
+
{ command: "npm cache clean", description: "Clean npm cache" },
|
|
83
|
+
// pnpm install
|
|
84
|
+
{ command: "pnpm install", description: "Install packages (pnpm)" },
|
|
85
|
+
{ command: "pnpm add", description: "Add packages (pnpm)" },
|
|
86
|
+
{ command: "pnpm remove", description: "Remove packages (pnpm)" },
|
|
87
|
+
{ command: "pnpm update", description: "Update packages (pnpm)" },
|
|
88
|
+
// yarn install
|
|
89
|
+
{ command: "yarn install", description: "Install packages (yarn)" },
|
|
90
|
+
{ command: "yarn add", description: "Add packages (yarn)" },
|
|
91
|
+
{ command: "yarn remove", description: "Remove packages (yarn)" },
|
|
92
|
+
{ command: "yarn upgrade", description: "Upgrade packages (yarn)" },
|
|
93
|
+
// bun install
|
|
94
|
+
{ command: "bun install", description: "Install packages (bun)" },
|
|
95
|
+
{ command: "bun add", description: "Add packages (bun)" },
|
|
96
|
+
{ command: "bun remove", description: "Remove packages (bun)" },
|
|
97
|
+
{ command: "bun update", description: "Update packages (bun)" },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/templates/web.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare enum PermissionLevel {
|
|
2
|
+
Restrictive = "restrictive",// Read-only operations
|
|
3
|
+
Standard = "standard",// Dev workflow (read + write, no installs)
|
|
4
|
+
Permissive = "permissive"
|
|
5
|
+
}
|
|
6
|
+
export interface Permission {
|
|
7
|
+
command: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ContentPattern {
|
|
11
|
+
file: string;
|
|
12
|
+
contains: string;
|
|
13
|
+
}
|
|
14
|
+
export interface DetectionRules {
|
|
15
|
+
files?: string[];
|
|
16
|
+
directories?: string[];
|
|
17
|
+
contentPatterns?: ContentPattern[];
|
|
18
|
+
always?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TemplateDefinition {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
category?: string;
|
|
24
|
+
detection?: DetectionRules;
|
|
25
|
+
levels: {
|
|
26
|
+
restrictive: Permission[];
|
|
27
|
+
standard: Permission[];
|
|
28
|
+
permissive: Permission[];
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface ClaudeCodePermissions {
|
|
32
|
+
allow: string[];
|
|
33
|
+
deny: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface AnalysisResult {
|
|
36
|
+
detectedFiles: string[];
|
|
37
|
+
recommendedTemplates: string[];
|
|
38
|
+
suggestedLevel: PermissionLevel;
|
|
39
|
+
suggestedCommand: string;
|
|
40
|
+
}
|
|
41
|
+
export interface TemplateRegistry {
|
|
42
|
+
[name: string]: TemplateDefinition;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,oBAAY,eAAe;IACzB,WAAW,gBAAgB,CAAE,uBAAuB;IACpD,QAAQ,aAAa,CAAE,2CAA2C;IAClE,UAAU,eAAe;CAC1B;AAGD,MAAM,WAAW,UAAU;IAEzB,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,cAAc;IAE7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,MAAM,EAAE;QACN,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,UAAU,EAAE,UAAU,EAAE,CAAC;KAC1B,CAAC;CACH;AAGD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAGD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,eAAe,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACpC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Permission levels - defines HOW MUCH access
|
|
2
|
+
export var PermissionLevel;
|
|
3
|
+
(function (PermissionLevel) {
|
|
4
|
+
PermissionLevel["Restrictive"] = "restrictive";
|
|
5
|
+
PermissionLevel["Standard"] = "standard";
|
|
6
|
+
PermissionLevel["Permissive"] = "permissive";
|
|
7
|
+
})(PermissionLevel || (PermissionLevel = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;AAC3B,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface PackageJson {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
export type BumpType = "major" | "minor" | "patch";
|
|
7
|
+
/**
|
|
8
|
+
* Read and parse package.json.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readPackageJson(packagePath?: string): PackageJson;
|
|
11
|
+
/**
|
|
12
|
+
* Write package.json with updated content.
|
|
13
|
+
*/
|
|
14
|
+
export declare function writePackageJson(pkg: PackageJson, packagePath?: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get the current version from package.json.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getVersion(packagePath?: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Parse a semantic version string into components.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseVersion(version: string): {
|
|
23
|
+
major: number;
|
|
24
|
+
minor: number;
|
|
25
|
+
patch: number;
|
|
26
|
+
} | null;
|
|
27
|
+
/**
|
|
28
|
+
* Validate that a string is a valid semver version.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isValidVersion(version: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Calculate the next version based on bump type.
|
|
33
|
+
*/
|
|
34
|
+
export declare function calculateNextVersion(currentVersion: string, bumpType: BumpType): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* Bump the version in package.json.
|
|
37
|
+
* Returns the new version.
|
|
38
|
+
*/
|
|
39
|
+
export declare function bumpVersion(bumpType: BumpType, packagePath?: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Set a specific version in package.json.
|
|
42
|
+
* Returns the new version.
|
|
43
|
+
*/
|
|
44
|
+
export declare function setVersion(newVersion: string, packagePath?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Parse bump type from string.
|
|
47
|
+
*/
|
|
48
|
+
export declare function parseBumpType(str: string): BumpType | null;
|
|
49
|
+
/**
|
|
50
|
+
* Format version info for display.
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatVersionInfo(version: string, name?: string): string;
|
|
53
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAYnD;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAIjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAG7E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUpG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAc9F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAS3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
/**
|
|
5
|
+
* Get the path to package.json relative to this module.
|
|
6
|
+
*/
|
|
7
|
+
function getPackageJsonPath() {
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
// In dist/, go up one level to find package.json
|
|
10
|
+
// In src/, also go up one level
|
|
11
|
+
return resolve(__dirname, "..", "package.json");
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Read and parse package.json.
|
|
15
|
+
*/
|
|
16
|
+
export function readPackageJson(packagePath) {
|
|
17
|
+
const targetPath = packagePath ?? getPackageJsonPath();
|
|
18
|
+
const content = readFileSync(targetPath, "utf-8");
|
|
19
|
+
return JSON.parse(content);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Write package.json with updated content.
|
|
23
|
+
*/
|
|
24
|
+
export function writePackageJson(pkg, packagePath) {
|
|
25
|
+
const targetPath = packagePath ?? getPackageJsonPath();
|
|
26
|
+
writeFileSync(targetPath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the current version from package.json.
|
|
30
|
+
*/
|
|
31
|
+
export function getVersion(packagePath) {
|
|
32
|
+
const pkg = readPackageJson(packagePath);
|
|
33
|
+
return pkg.version;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse a semantic version string into components.
|
|
37
|
+
*/
|
|
38
|
+
export function parseVersion(version) {
|
|
39
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
40
|
+
if (!match) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
major: parseInt(match[1], 10),
|
|
45
|
+
minor: parseInt(match[2], 10),
|
|
46
|
+
patch: parseInt(match[3], 10),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validate that a string is a valid semver version.
|
|
51
|
+
*/
|
|
52
|
+
export function isValidVersion(version) {
|
|
53
|
+
return parseVersion(version) !== null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Calculate the next version based on bump type.
|
|
57
|
+
*/
|
|
58
|
+
export function calculateNextVersion(currentVersion, bumpType) {
|
|
59
|
+
const parsed = parseVersion(currentVersion);
|
|
60
|
+
if (!parsed) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
switch (bumpType) {
|
|
64
|
+
case "major":
|
|
65
|
+
return `${parsed.major + 1}.0.0`;
|
|
66
|
+
case "minor":
|
|
67
|
+
return `${parsed.major}.${parsed.minor + 1}.0`;
|
|
68
|
+
case "patch":
|
|
69
|
+
return `${parsed.major}.${parsed.minor}.${parsed.patch + 1}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Bump the version in package.json.
|
|
74
|
+
* Returns the new version.
|
|
75
|
+
*/
|
|
76
|
+
export function bumpVersion(bumpType, packagePath) {
|
|
77
|
+
const pkg = readPackageJson(packagePath);
|
|
78
|
+
const newVersion = calculateNextVersion(pkg.version, bumpType);
|
|
79
|
+
if (!newVersion) {
|
|
80
|
+
throw new Error(`Invalid current version: ${pkg.version}`);
|
|
81
|
+
}
|
|
82
|
+
pkg.version = newVersion;
|
|
83
|
+
writePackageJson(pkg, packagePath);
|
|
84
|
+
return newVersion;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set a specific version in package.json.
|
|
88
|
+
* Returns the new version.
|
|
89
|
+
*/
|
|
90
|
+
export function setVersion(newVersion, packagePath) {
|
|
91
|
+
if (!isValidVersion(newVersion)) {
|
|
92
|
+
throw new Error(`Invalid version format: ${newVersion}. Use semver format (e.g., 1.2.3)`);
|
|
93
|
+
}
|
|
94
|
+
const pkg = readPackageJson(packagePath);
|
|
95
|
+
pkg.version = newVersion;
|
|
96
|
+
writePackageJson(pkg, packagePath);
|
|
97
|
+
return newVersion;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Parse bump type from string.
|
|
101
|
+
*/
|
|
102
|
+
export function parseBumpType(str) {
|
|
103
|
+
const normalized = str.toLowerCase().trim();
|
|
104
|
+
if (normalized === "major" || normalized === "minor" || normalized === "patch") {
|
|
105
|
+
return normalized;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Format version info for display.
|
|
111
|
+
*/
|
|
112
|
+
export function formatVersionInfo(version, name) {
|
|
113
|
+
if (name) {
|
|
114
|
+
return `${name} v${version}`;
|
|
115
|
+
}
|
|
116
|
+
return `v${version}`;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cc-permissions",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Generate thoughtful permission configs for Claude Code without the container overhead",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"cc-permissions": "dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"templates"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"start": "node dist/cli.js",
|
|
18
|
+
"test": "node --import tsx --test --test-concurrency=1 test/**/*.test.ts",
|
|
19
|
+
"test:watch": "node --import tsx --test --watch test/**/*.test.ts",
|
|
20
|
+
"test:coverage": "node --import tsx --experimental-test-coverage --test test/**/*.test.ts",
|
|
21
|
+
"check-version": "node scripts/check-version.js",
|
|
22
|
+
"prepublishOnly": "npm run check-version && npm run build",
|
|
23
|
+
"version:show": "node scripts/bump-version.js show",
|
|
24
|
+
"version:bump": "node scripts/bump-version.js bump",
|
|
25
|
+
"version:set": "node scripts/bump-version.js set"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"claude",
|
|
29
|
+
"claude-code",
|
|
30
|
+
"permissions",
|
|
31
|
+
"cli"
|
|
32
|
+
],
|
|
33
|
+
"author": "DanielCarmingham",
|
|
34
|
+
"license": "0BSD",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/DanielCarmingham/cc-permissions.git"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/DanielCarmingham/cc-permissions/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/DanielCarmingham/cc-permissions#readme",
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18.0.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^25.0.9",
|
|
48
|
+
"tsx": "^4.19.0",
|
|
49
|
+
"typescript": "^5.9.3"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"strip-json-comments": "^5.0.3"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../template.schema.json",
|
|
3
|
+
"name": "android",
|
|
4
|
+
"description": "Gradle, ADB, and Android development",
|
|
5
|
+
"category": "Mobile Development",
|
|
6
|
+
"detection": {
|
|
7
|
+
"files": ["AndroidManifest.xml"],
|
|
8
|
+
"contentPatterns": [
|
|
9
|
+
{ "file": "build.gradle", "contains": "com.android" },
|
|
10
|
+
{ "file": "build.gradle.kts", "contains": "com.android" }
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"levels": {
|
|
14
|
+
"restrictive": [
|
|
15
|
+
// gradle info
|
|
16
|
+
{ "command": "gradle --version", "description": "Check Gradle version" },
|
|
17
|
+
{ "command": "./gradlew --version", "description": "Check Gradle wrapper version" },
|
|
18
|
+
{ "command": "gradle tasks", "description": "List Gradle tasks" },
|
|
19
|
+
{ "command": "./gradlew tasks", "description": "List Gradle wrapper tasks" },
|
|
20
|
+
{ "command": "gradle dependencies", "description": "Show dependencies" },
|
|
21
|
+
{ "command": "./gradlew dependencies", "description": "Show dependencies" },
|
|
22
|
+
{ "command": "gradle projects", "description": "List projects" },
|
|
23
|
+
{ "command": "./gradlew projects", "description": "List projects" },
|
|
24
|
+
// adb info
|
|
25
|
+
{ "command": "adb version", "description": "Check ADB version" },
|
|
26
|
+
{ "command": "adb devices", "description": "List connected devices" },
|
|
27
|
+
{ "command": "adb get-state", "description": "Get device state" },
|
|
28
|
+
{ "command": "adb get-serialno", "description": "Get device serial" },
|
|
29
|
+
{ "command": "adb shell getprop", "description": "Get device properties" },
|
|
30
|
+
{ "command": "adb shell pm list packages", "description": "List installed packages" },
|
|
31
|
+
{ "command": "adb shell dumpsys", "description": "Dump system info" },
|
|
32
|
+
// emulator info
|
|
33
|
+
{ "command": "emulator -list-avds", "description": "List AVDs" },
|
|
34
|
+
{ "command": "emulator -version", "description": "Check emulator version" },
|
|
35
|
+
// sdkmanager info
|
|
36
|
+
{ "command": "sdkmanager --list", "description": "List SDK packages" },
|
|
37
|
+
{ "command": "sdkmanager --version", "description": "Check SDK manager version" },
|
|
38
|
+
// android studio
|
|
39
|
+
{ "command": "studio --version", "description": "Check Android Studio version" }
|
|
40
|
+
],
|
|
41
|
+
"standard": [
|
|
42
|
+
// gradle build (debug only)
|
|
43
|
+
{ "command": "gradle assembleDebug", "description": "Build debug APK" },
|
|
44
|
+
{ "command": "./gradlew assembleDebug", "description": "Build debug APK" },
|
|
45
|
+
{ "command": "gradle bundleDebug", "description": "Build debug AAB" },
|
|
46
|
+
{ "command": "./gradlew bundleDebug", "description": "Build debug AAB" },
|
|
47
|
+
// gradle test
|
|
48
|
+
{ "command": "gradle test", "description": "Run unit tests" },
|
|
49
|
+
{ "command": "./gradlew test", "description": "Run unit tests" },
|
|
50
|
+
{ "command": "gradle connectedAndroidTest", "description": "Run instrumented tests" },
|
|
51
|
+
{ "command": "./gradlew connectedAndroidTest", "description": "Run instrumented tests" },
|
|
52
|
+
// gradle lint
|
|
53
|
+
{ "command": "gradle lint", "description": "Run lint" },
|
|
54
|
+
{ "command": "./gradlew lint", "description": "Run lint" },
|
|
55
|
+
{ "command": "gradle lintDebug", "description": "Lint debug build" },
|
|
56
|
+
{ "command": "./gradlew lintDebug", "description": "Lint debug build" },
|
|
57
|
+
// adb logcat (read-only)
|
|
58
|
+
{ "command": "adb logcat", "description": "View device logs" },
|
|
59
|
+
{ "command": "adb bugreport", "description": "Capture bug report" },
|
|
60
|
+
{ "command": "adb shell screencap", "description": "Take screenshot" },
|
|
61
|
+
{ "command": "adb shell screenrecord", "description": "Record screen" },
|
|
62
|
+
// adb shell (read-only queries)
|
|
63
|
+
{ "command": "adb shell am", "description": "Activity manager commands" },
|
|
64
|
+
{ "command": "adb shell pm path", "description": "Get package path" },
|
|
65
|
+
// emulator start
|
|
66
|
+
{ "command": "emulator @", "description": "Start emulator" },
|
|
67
|
+
{ "command": "emulator -avd", "description": "Start specific AVD" }
|
|
68
|
+
],
|
|
69
|
+
"permissive": [
|
|
70
|
+
// gradle release builds
|
|
71
|
+
{ "command": "gradle assembleRelease", "description": "Build release APK" },
|
|
72
|
+
{ "command": "./gradlew assembleRelease", "description": "Build release APK" },
|
|
73
|
+
{ "command": "gradle bundleRelease", "description": "Build release AAB" },
|
|
74
|
+
{ "command": "./gradlew bundleRelease", "description": "Build release AAB" },
|
|
75
|
+
// gradle clean
|
|
76
|
+
{ "command": "gradle clean", "description": "Clean project" },
|
|
77
|
+
{ "command": "./gradlew clean", "description": "Clean project" },
|
|
78
|
+
// adb install/push/pull
|
|
79
|
+
{ "command": "adb install", "description": "Install APK" },
|
|
80
|
+
{ "command": "adb uninstall", "description": "Uninstall app" },
|
|
81
|
+
{ "command": "adb push", "description": "Push file to device" },
|
|
82
|
+
{ "command": "adb pull", "description": "Pull file from device" },
|
|
83
|
+
// adb shell write operations
|
|
84
|
+
{ "command": "adb shell pm clear", "description": "Clear app data" },
|
|
85
|
+
{ "command": "adb shell settings put", "description": "Change settings" },
|
|
86
|
+
// sdkmanager
|
|
87
|
+
{ "command": "sdkmanager", "description": "Manage SDK packages" },
|
|
88
|
+
{ "command": "sdkmanager --install", "description": "Install SDK package" },
|
|
89
|
+
{ "command": "sdkmanager --uninstall", "description": "Uninstall SDK package" },
|
|
90
|
+
{ "command": "sdkmanager --update", "description": "Update SDK packages" },
|
|
91
|
+
// avdmanager
|
|
92
|
+
{ "command": "avdmanager create", "description": "Create AVD" },
|
|
93
|
+
{ "command": "avdmanager delete", "description": "Delete AVD" },
|
|
94
|
+
// adb reboot
|
|
95
|
+
{ "command": "adb reboot", "description": "Reboot device" },
|
|
96
|
+
{ "command": "adb root", "description": "Restart ADB as root" }
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../template.schema.json",
|
|
3
|
+
"name": "aws",
|
|
4
|
+
"description": "AWS CLI, SAM, CDK, Amplify, and Elastic Beanstalk",
|
|
5
|
+
"category": "Cloud Providers",
|
|
6
|
+
"detection": {
|
|
7
|
+
"files": ["cdk.json", "samconfig.toml", "amplify.yml"]
|
|
8
|
+
},
|
|
9
|
+
"levels": {
|
|
10
|
+
"restrictive": [
|
|
11
|
+
// aws cli info
|
|
12
|
+
{ "command": "aws --version", "description": "Check AWS CLI version" },
|
|
13
|
+
{ "command": "aws sts get-caller-identity", "description": "Get current AWS identity" },
|
|
14
|
+
{ "command": "aws configure list", "description": "List AWS configuration" },
|
|
15
|
+
{ "command": "aws configure get", "description": "Get AWS config values" },
|
|
16
|
+
// s3 read-only
|
|
17
|
+
{ "command": "aws s3 ls", "description": "List S3 buckets/objects" },
|
|
18
|
+
{ "command": "aws s3api list-buckets", "description": "List S3 buckets" },
|
|
19
|
+
{ "command": "aws s3api get-bucket-location", "description": "Get bucket location" },
|
|
20
|
+
// ec2 describe
|
|
21
|
+
{ "command": "aws ec2 describe-instances", "description": "Describe EC2 instances" },
|
|
22
|
+
{ "command": "aws ec2 describe-vpcs", "description": "Describe VPCs" },
|
|
23
|
+
{ "command": "aws ec2 describe-security-groups", "description": "Describe security groups" },
|
|
24
|
+
{ "command": "aws ec2 describe-subnets", "description": "Describe subnets" },
|
|
25
|
+
// iam read-only
|
|
26
|
+
{ "command": "aws iam list-users", "description": "List IAM users" },
|
|
27
|
+
{ "command": "aws iam list-roles", "description": "List IAM roles" },
|
|
28
|
+
{ "command": "aws iam list-policies", "description": "List IAM policies" },
|
|
29
|
+
{ "command": "aws iam get-user", "description": "Get IAM user details" },
|
|
30
|
+
{ "command": "aws iam get-role", "description": "Get IAM role details" },
|
|
31
|
+
// lambda read-only
|
|
32
|
+
{ "command": "aws lambda list-functions", "description": "List Lambda functions" },
|
|
33
|
+
{ "command": "aws lambda get-function", "description": "Get Lambda function details" },
|
|
34
|
+
// cloudformation read-only
|
|
35
|
+
{ "command": "aws cloudformation list-stacks", "description": "List CloudFormation stacks" },
|
|
36
|
+
{ "command": "aws cloudformation describe-stacks", "description": "Describe CF stacks" },
|
|
37
|
+
// sam info
|
|
38
|
+
{ "command": "sam --version", "description": "Check SAM CLI version" },
|
|
39
|
+
{ "command": "sam --info", "description": "SAM CLI info" },
|
|
40
|
+
// cdk info
|
|
41
|
+
{ "command": "cdk --version", "description": "Check CDK version" },
|
|
42
|
+
{ "command": "cdk doctor", "description": "CDK environment check" },
|
|
43
|
+
{ "command": "cdk list", "description": "List CDK stacks" },
|
|
44
|
+
// amplify info
|
|
45
|
+
{ "command": "amplify --version", "description": "Check Amplify version" },
|
|
46
|
+
{ "command": "amplify status", "description": "Amplify project status" },
|
|
47
|
+
{ "command": "amplify env list", "description": "List Amplify environments" },
|
|
48
|
+
// eb info
|
|
49
|
+
{ "command": "eb --version", "description": "Check EB CLI version" },
|
|
50
|
+
{ "command": "eb status", "description": "Elastic Beanstalk status" },
|
|
51
|
+
{ "command": "eb list", "description": "List EB environments" }
|
|
52
|
+
],
|
|
53
|
+
"standard": [
|
|
54
|
+
// s3 sync/copy (no delete)
|
|
55
|
+
{ "command": "aws s3 cp", "description": "Copy to/from S3" },
|
|
56
|
+
{ "command": "aws s3 sync", "description": "Sync with S3" },
|
|
57
|
+
{ "command": "aws s3 mv", "description": "Move in S3" },
|
|
58
|
+
{ "command": "aws s3 presign", "description": "Generate presigned URL" },
|
|
59
|
+
// logs
|
|
60
|
+
{ "command": "aws logs describe-log-groups", "description": "Describe log groups" },
|
|
61
|
+
{ "command": "aws logs filter-log-events", "description": "Filter log events" },
|
|
62
|
+
{ "command": "aws logs tail", "description": "Tail log group" },
|
|
63
|
+
// sam local development
|
|
64
|
+
{ "command": "sam build", "description": "Build SAM application" },
|
|
65
|
+
{ "command": "sam local invoke", "description": "Invoke Lambda locally" },
|
|
66
|
+
{ "command": "sam local start-api", "description": "Start local API Gateway" },
|
|
67
|
+
{ "command": "sam local start-lambda", "description": "Start local Lambda" },
|
|
68
|
+
{ "command": "sam validate", "description": "Validate SAM template" },
|
|
69
|
+
// cdk development
|
|
70
|
+
{ "command": "cdk synth", "description": "Synthesize CDK stack" },
|
|
71
|
+
{ "command": "cdk diff", "description": "Diff CDK stack changes" },
|
|
72
|
+
{ "command": "cdk context", "description": "Manage CDK context" },
|
|
73
|
+
// amplify local
|
|
74
|
+
{ "command": "amplify mock", "description": "Mock Amplify locally" },
|
|
75
|
+
{ "command": "amplify codegen", "description": "Generate Amplify code" },
|
|
76
|
+
// eb local
|
|
77
|
+
{ "command": "eb local run", "description": "Run EB locally" },
|
|
78
|
+
{ "command": "eb logs", "description": "View EB logs" },
|
|
79
|
+
{ "command": "eb health", "description": "Check EB health" }
|
|
80
|
+
],
|
|
81
|
+
"permissive": [
|
|
82
|
+
// s3 destructive
|
|
83
|
+
{ "command": "aws s3 rm", "description": "Remove from S3" },
|
|
84
|
+
{ "command": "aws s3 rb", "description": "Remove S3 bucket" },
|
|
85
|
+
{ "command": "aws s3api delete-object", "description": "Delete S3 object" },
|
|
86
|
+
// lambda deploy
|
|
87
|
+
{ "command": "aws lambda update-function-code", "description": "Update Lambda code" },
|
|
88
|
+
{ "command": "aws lambda create-function", "description": "Create Lambda function" },
|
|
89
|
+
{ "command": "aws lambda delete-function", "description": "Delete Lambda function" },
|
|
90
|
+
// sam deploy
|
|
91
|
+
{ "command": "sam deploy", "description": "Deploy SAM application" },
|
|
92
|
+
{ "command": "sam delete", "description": "Delete SAM application" },
|
|
93
|
+
{ "command": "sam package", "description": "Package SAM application" },
|
|
94
|
+
// cdk deploy
|
|
95
|
+
{ "command": "cdk deploy", "description": "Deploy CDK stack" },
|
|
96
|
+
{ "command": "cdk destroy", "description": "Destroy CDK stack" },
|
|
97
|
+
{ "command": "cdk bootstrap", "description": "Bootstrap CDK environment" },
|
|
98
|
+
// amplify deploy
|
|
99
|
+
{ "command": "amplify push", "description": "Push Amplify changes" },
|
|
100
|
+
{ "command": "amplify publish", "description": "Publish Amplify app" },
|
|
101
|
+
{ "command": "amplify delete", "description": "Delete Amplify resources" },
|
|
102
|
+
{ "command": "amplify pull", "description": "Pull Amplify backend" },
|
|
103
|
+
// eb deploy
|
|
104
|
+
{ "command": "eb deploy", "description": "Deploy to Elastic Beanstalk" },
|
|
105
|
+
{ "command": "eb create", "description": "Create EB environment" },
|
|
106
|
+
{ "command": "eb terminate", "description": "Terminate EB environment" },
|
|
107
|
+
// cloudformation
|
|
108
|
+
{ "command": "aws cloudformation create-stack", "description": "Create CF stack" },
|
|
109
|
+
{ "command": "aws cloudformation update-stack", "description": "Update CF stack" },
|
|
110
|
+
{ "command": "aws cloudformation delete-stack", "description": "Delete CF stack" }
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|