kodu 2.1.3 → 3.0.1
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/README.md +24 -3
- package/bin/kodu.js +23 -0
- package/package.json +11 -67
- package/scripts/postinstall.js +69 -0
- package/AGENTS.md +0 -214
- package/__tests__/core/fs/fs.service.test.ts +0 -72
- package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
- package/__tests__/shared/git/git.service.test.ts +0 -84
- package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
- package/biome.json +0 -50
- package/dist/package.json +0 -96
- package/dist/src/app.module.d.ts +0 -2
- package/dist/src/app.module.js +0 -36
- package/dist/src/app.module.js.map +0 -1
- package/dist/src/commands/clean/clean.command.d.ts +0 -37
- package/dist/src/commands/clean/clean.command.js +0 -240
- package/dist/src/commands/clean/clean.command.js.map +0 -1
- package/dist/src/commands/clean/clean.module.d.ts +0 -2
- package/dist/src/commands/clean/clean.module.js +0 -26
- package/dist/src/commands/clean/clean.module.js.map +0 -1
- package/dist/src/commands/init/init.command.d.ts +0 -10
- package/dist/src/commands/init/init.command.js +0 -96
- package/dist/src/commands/init/init.command.js.map +0 -1
- package/dist/src/commands/init/init.module.d.ts +0 -2
- package/dist/src/commands/init/init.module.js +0 -22
- package/dist/src/commands/init/init.module.js.map +0 -1
- package/dist/src/commands/pack/pack.command.d.ts +0 -51
- package/dist/src/commands/pack/pack.command.js +0 -355
- package/dist/src/commands/pack/pack.command.js.map +0 -1
- package/dist/src/commands/pack/pack.module.d.ts +0 -2
- package/dist/src/commands/pack/pack.module.js +0 -27
- package/dist/src/commands/pack/pack.module.js.map +0 -1
- package/dist/src/core/config/config.module.d.ts +0 -2
- package/dist/src/core/config/config.module.js +0 -23
- package/dist/src/core/config/config.module.js.map +0 -1
- package/dist/src/core/config/config.schema.d.ts +0 -19
- package/dist/src/core/config/config.schema.js +0 -56
- package/dist/src/core/config/config.schema.js.map +0 -1
- package/dist/src/core/config/config.service.d.ts +0 -7
- package/dist/src/core/config/config.service.js +0 -49
- package/dist/src/core/config/config.service.js.map +0 -1
- package/dist/src/core/config/prompt.service.d.ts +0 -10
- package/dist/src/core/config/prompt.service.js +0 -80
- package/dist/src/core/config/prompt.service.js.map +0 -1
- package/dist/src/core/file-system/fs.module.d.ts +0 -2
- package/dist/src/core/file-system/fs.module.js +0 -21
- package/dist/src/core/file-system/fs.module.js.map +0 -1
- package/dist/src/core/file-system/fs.service.d.ts +0 -27
- package/dist/src/core/file-system/fs.service.js +0 -203
- package/dist/src/core/file-system/fs.service.js.map +0 -1
- package/dist/src/core/ui/ui.module.d.ts +0 -2
- package/dist/src/core/ui/ui.module.js +0 -22
- package/dist/src/core/ui/ui.module.js.map +0 -1
- package/dist/src/core/ui/ui.service.d.ts +0 -22
- package/dist/src/core/ui/ui.service.js +0 -43
- package/dist/src/core/ui/ui.service.js.map +0 -1
- package/dist/src/main.d.ts +0 -2
- package/dist/src/main.js +0 -16
- package/dist/src/main.js.map +0 -1
- package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
- package/dist/src/shared/cleaner/cleaner.service.js +0 -223
- package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
- package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
- package/dist/src/shared/cleaner/cleaner.types.js +0 -3
- package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
- package/dist/src/shared/constants.d.ts +0 -4
- package/dist/src/shared/constants.js +0 -113
- package/dist/src/shared/constants.js.map +0 -1
- package/dist/src/shared/deps/deps.module.d.ts +0 -2
- package/dist/src/shared/deps/deps.module.js +0 -21
- package/dist/src/shared/deps/deps.module.js.map +0 -1
- package/dist/src/shared/deps/deps.service.d.ts +0 -15
- package/dist/src/shared/deps/deps.service.js +0 -114
- package/dist/src/shared/deps/deps.service.js.map +0 -1
- package/dist/src/shared/git/git.module.d.ts +0 -2
- package/dist/src/shared/git/git.module.js +0 -21
- package/dist/src/shared/git/git.module.js.map +0 -1
- package/dist/src/shared/git/git.service.d.ts +0 -5
- package/dist/src/shared/git/git.service.js +0 -56
- package/dist/src/shared/git/git.service.js.map +0 -1
- package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
- package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
- package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
- package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
- package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
- package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/docs/todo.md +0 -7
- package/knip.json +0 -10
- package/kodu.json +0 -63
- package/kodu.schema.json +0 -100
- package/lefthook.yml +0 -11
- package/nest-cli.json +0 -8
- package/scripts/generate-json-schema.ts +0 -18
- package/skills/doc-gen/SKILL.md +0 -490
- package/skills/doc-gen/scripts/doc_gen.py +0 -911
- package/skills/implement-project/SKILL.md +0 -409
- package/skills/liteend-init/SKILL.md +0 -84
- package/skills/litefront-init/SKILL.md +0 -96
- package/skills/litefront-prototype/SKILL.md +0 -484
- package/skills/project-setup-standardizer/SKILL.md +0 -285
- package/skills/start/SKILL.md +0 -319
- package/skills/tech-blueprint/SKILL.md +0 -890
- package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
- package/src/app.module.ts +0 -23
- package/src/commands/clean/clean.command.ts +0 -235
- package/src/commands/clean/clean.module.ts +0 -13
- package/src/commands/init/init.command.ts +0 -92
- package/src/commands/init/init.module.ts +0 -9
- package/src/commands/pack/pack.command.ts +0 -347
- package/src/commands/pack/pack.module.ts +0 -14
- package/src/core/config/config.module.ts +0 -10
- package/src/core/config/config.schema.ts +0 -58
- package/src/core/config/config.service.ts +0 -43
- package/src/core/config/prompt.service.ts +0 -80
- package/src/core/file-system/fs.module.ts +0 -8
- package/src/core/file-system/fs.service.ts +0 -248
- package/src/core/ui/ui.module.ts +0 -9
- package/src/core/ui/ui.service.ts +0 -39
- package/src/main.ts +0 -12
- package/src/shared/cleaner/cleaner.service.ts +0 -289
- package/src/shared/cleaner/cleaner.types.ts +0 -23
- package/src/shared/constants.ts +0 -118
- package/src/shared/deps/deps.module.ts +0 -8
- package/src/shared/deps/deps.service.ts +0 -175
- package/src/shared/git/git.module.ts +0 -8
- package/src/shared/git/git.service.ts +0 -47
- package/src/shared/tokenizer/tokenizer.module.ts +0 -8
- package/src/shared/tokenizer/tokenizer.service.ts +0 -30
- package/tsconfig.build.json +0 -7
- package/tsconfig.json +0 -28
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { execa } from 'execa';
|
|
2
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import { GitService } from '../../../src/shared/git/git.service';
|
|
4
|
-
|
|
5
|
-
vi.mock('execa');
|
|
6
|
-
|
|
7
|
-
const mockExeca = vi.mocked(execa);
|
|
8
|
-
|
|
9
|
-
describe('GitService', () => {
|
|
10
|
-
let gitService: GitService;
|
|
11
|
-
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
vi.clearAllMocks();
|
|
14
|
-
gitService = new GitService();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
afterEach(() => {
|
|
18
|
-
vi.resetAllMocks();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
describe('ensureRepo', () => {
|
|
22
|
-
it('should resolve when inside git repo', async () => {
|
|
23
|
-
mockExeca.mockResolvedValue({ stdout: '' } as never);
|
|
24
|
-
|
|
25
|
-
await expect(gitService.ensureRepo()).resolves.not.toThrow();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should reject when not in git repo', async () => {
|
|
29
|
-
mockExeca.mockRejectedValue(new Error('fatal: not a git repository'));
|
|
30
|
-
|
|
31
|
-
await expect(gitService.ensureRepo()).rejects.toThrow();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('getChangedFiles', () => {
|
|
36
|
-
it('should return empty array when no changes', async () => {
|
|
37
|
-
mockExeca.mockResolvedValue({ stdout: '' } as never);
|
|
38
|
-
|
|
39
|
-
const files = await gitService.getChangedFiles();
|
|
40
|
-
|
|
41
|
-
expect(files).toEqual([]);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('should return changed files from all sources', async () => {
|
|
45
|
-
const mockCalls = [
|
|
46
|
-
{ stdout: '' }, // ensureRepo
|
|
47
|
-
{ stdout: 'src/a.ts\nsrc/b.ts' }, // diff
|
|
48
|
-
{ stdout: '' }, // diff --staged
|
|
49
|
-
{ stdout: '' }, // ls-files
|
|
50
|
-
];
|
|
51
|
-
mockExeca
|
|
52
|
-
.mockResolvedValueOnce(mockCalls[0] as never)
|
|
53
|
-
.mockResolvedValueOnce(mockCalls[1] as never)
|
|
54
|
-
.mockResolvedValueOnce(mockCalls[2] as never)
|
|
55
|
-
.mockResolvedValueOnce(mockCalls[3] as never);
|
|
56
|
-
|
|
57
|
-
const files = await gitService.getChangedFiles();
|
|
58
|
-
|
|
59
|
-
expect(files).toEqual(['src/a.ts', 'src/b.ts']);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
describe('getStagedFiles', () => {
|
|
64
|
-
it('should return empty array when no staged files', async () => {
|
|
65
|
-
mockExeca
|
|
66
|
-
.mockResolvedValueOnce({ stdout: '' } as never)
|
|
67
|
-
.mockResolvedValueOnce({ stdout: '' } as never);
|
|
68
|
-
|
|
69
|
-
const files = await gitService.getStagedFiles();
|
|
70
|
-
|
|
71
|
-
expect(files).toEqual([]);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('should return staged files', async () => {
|
|
75
|
-
mockExeca
|
|
76
|
-
.mockResolvedValueOnce({ stdout: '' } as never)
|
|
77
|
-
.mockResolvedValueOnce({ stdout: 'src/new.ts' } as never);
|
|
78
|
-
|
|
79
|
-
const files = await gitService.getStagedFiles();
|
|
80
|
-
|
|
81
|
-
expect(files).toEqual(['src/new.ts']);
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
-
|
|
3
|
-
describe('TokenizerService', () => {
|
|
4
|
-
let tokenizer: {
|
|
5
|
-
count: (text: string) => { tokens: number; usdEstimate: number };
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
beforeEach(async () => {
|
|
9
|
-
const { TokenizerService } = await import(
|
|
10
|
-
'../../../src/shared/tokenizer/tokenizer.service'
|
|
11
|
-
);
|
|
12
|
-
tokenizer = new TokenizerService();
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('should count tokens for empty string', () => {
|
|
16
|
-
const result = tokenizer.count('');
|
|
17
|
-
|
|
18
|
-
expect(result.tokens).toBe(0);
|
|
19
|
-
expect(result.usdEstimate).toBe(0);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('should count tokens for simple text', () => {
|
|
23
|
-
const result = tokenizer.count('hello world');
|
|
24
|
-
|
|
25
|
-
expect(result.tokens).toBeGreaterThan(0);
|
|
26
|
-
expect(result.usdEstimate).toBeGreaterThan(0);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should estimate cost correctly based on DEFAULT_PRICE_PER_MILLION', () => {
|
|
30
|
-
const result = tokenizer.count('a'.repeat(1000));
|
|
31
|
-
|
|
32
|
-
expect(result.tokens).toBeGreaterThan(0);
|
|
33
|
-
// DEFAULT_PRICE_PER_MILLION = 5 means $5 per 1M tokens
|
|
34
|
-
const expectedCost = (result.tokens / 1_000_000) * 5;
|
|
35
|
-
expect(result.usdEstimate).toBe(expectedCost);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should handle large text', () => {
|
|
39
|
-
const longText = 'test '.repeat(10000);
|
|
40
|
-
const result = tokenizer.count(longText);
|
|
41
|
-
|
|
42
|
-
expect(result.tokens).toBeGreaterThan(10000);
|
|
43
|
-
expect(result.usdEstimate).toBeGreaterThan(0);
|
|
44
|
-
});
|
|
45
|
-
});
|
package/biome.json
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
3
|
-
"assist": {
|
|
4
|
-
"actions": {
|
|
5
|
-
"source": {
|
|
6
|
-
"organizeImports": "on"
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
"files": {
|
|
11
|
-
"ignoreUnknown": false,
|
|
12
|
-
"includes": ["**", "!**/node_modules", "!**/dist"]
|
|
13
|
-
},
|
|
14
|
-
"formatter": {
|
|
15
|
-
"enabled": true,
|
|
16
|
-
"indentStyle": "space",
|
|
17
|
-
"lineEnding": "lf"
|
|
18
|
-
},
|
|
19
|
-
"javascript": {
|
|
20
|
-
"formatter": {
|
|
21
|
-
"quoteStyle": "single"
|
|
22
|
-
},
|
|
23
|
-
"parser": {
|
|
24
|
-
"unsafeParameterDecoratorsEnabled": true
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"linter": {
|
|
28
|
-
"enabled": true,
|
|
29
|
-
"rules": {
|
|
30
|
-
"correctness": {
|
|
31
|
-
"noUnusedFunctionParameters": "error",
|
|
32
|
-
"noUnusedImports": "error",
|
|
33
|
-
"noUnusedVariables": "error"
|
|
34
|
-
},
|
|
35
|
-
"recommended": true,
|
|
36
|
-
"style": {
|
|
37
|
-
"noNonNullAssertion": "off",
|
|
38
|
-
"useImportType": "off"
|
|
39
|
-
},
|
|
40
|
-
"suspicious": {
|
|
41
|
-
"noPrototypeBuiltins": "off"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"vcs": {
|
|
46
|
-
"clientKind": "git",
|
|
47
|
-
"enabled": true,
|
|
48
|
-
"useIgnoreFile": true
|
|
49
|
-
}
|
|
50
|
-
}
|
package/dist/package.json
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "kodu",
|
|
3
|
-
"version": "2.1.3",
|
|
4
|
-
"description": "High-performance CLI to prepare codebase for LLMs, automate reviews, and draft commits.",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/uxname/kodu.git"
|
|
8
|
-
},
|
|
9
|
-
"bugs": {
|
|
10
|
-
"url": "https://github.com/uxname/kodu/issues"
|
|
11
|
-
},
|
|
12
|
-
"homepage": "https://github.com/uxname/kodu#readme",
|
|
13
|
-
"keywords": [
|
|
14
|
-
"cli",
|
|
15
|
-
"ai",
|
|
16
|
-
"llm",
|
|
17
|
-
"developer-tools",
|
|
18
|
-
"productivity",
|
|
19
|
-
"typescript",
|
|
20
|
-
"openai",
|
|
21
|
-
"automation",
|
|
22
|
-
"code-review",
|
|
23
|
-
"context-window",
|
|
24
|
-
"git-tools"
|
|
25
|
-
],
|
|
26
|
-
"private": false,
|
|
27
|
-
"license": "MIT",
|
|
28
|
-
"bin": {
|
|
29
|
-
"kodu": "dist/src/main.js"
|
|
30
|
-
},
|
|
31
|
-
"scripts": {
|
|
32
|
-
"________________ BUILD AND RUN ________________": "",
|
|
33
|
-
"build": "nest build && chmod +x dist/src/main.js",
|
|
34
|
-
"generate:schema": "ts-node scripts/generate-json-schema.ts",
|
|
35
|
-
"postbuild": "npm run generate:schema",
|
|
36
|
-
"start:prod": "node dist/main.js",
|
|
37
|
-
"start:dev": "nest start --watch",
|
|
38
|
-
"new:command": "nest g -c nest-commander-schematics command",
|
|
39
|
-
"new:question": "nest g -c nest-commander-schematics question",
|
|
40
|
-
"________________ FORMAT AND LINT ________________": "",
|
|
41
|
-
"lint": "biome check",
|
|
42
|
-
"lint:fix": "biome check --write",
|
|
43
|
-
"lint:fix:unsafe": "biome check --write --unsafe",
|
|
44
|
-
"ts:check": "tsc --noEmit",
|
|
45
|
-
"knip": "knip --production",
|
|
46
|
-
"check": "run-p ts:check lint:fix knip",
|
|
47
|
-
"________________ TEST ________________": "",
|
|
48
|
-
"test": "vitest run",
|
|
49
|
-
"test:watch": "vitest",
|
|
50
|
-
"test:cov": "vitest run --coverage",
|
|
51
|
-
"________________ OTHER ________________": "",
|
|
52
|
-
"prepare": "is-ci || lefthook install",
|
|
53
|
-
"update": "npx npm-check-updates -u && rimraf node_modules package-lock.json && npm i",
|
|
54
|
-
"postupdate": "npm run lint:fix && npm run check"
|
|
55
|
-
},
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"@inquirer/confirm": "^6.0.4",
|
|
58
|
-
"@inquirer/input": "^5.0.4",
|
|
59
|
-
"@inquirer/select": "^5.0.4",
|
|
60
|
-
"@nestjs/common": "^11.0.1",
|
|
61
|
-
"@nestjs/core": "^11.0.1",
|
|
62
|
-
"clipboardy": "^5.0.2",
|
|
63
|
-
"execa": "^9.6.1",
|
|
64
|
-
"ignore": "^7.0.5",
|
|
65
|
-
"js-tiktoken": "^1.0.21",
|
|
66
|
-
"lilconfig": "^3.1.3",
|
|
67
|
-
"nest-commander": "^3.20.1",
|
|
68
|
-
"picocolors": "^1.1.1",
|
|
69
|
-
"reflect-metadata": "^0.2.2",
|
|
70
|
-
"rxjs": "^7.8.1",
|
|
71
|
-
"source-map-support": "^0.5.21",
|
|
72
|
-
"tinyglobby": "^0.2.15",
|
|
73
|
-
"ts-morph": "^24.0.0",
|
|
74
|
-
"yocto-spinner": "^1.0.0",
|
|
75
|
-
"zod": "^4.3.6"
|
|
76
|
-
},
|
|
77
|
-
"devDependencies": {
|
|
78
|
-
"@biomejs/biome": "^2.3.12",
|
|
79
|
-
"@nestjs/cli": "^11.0.0",
|
|
80
|
-
"@nestjs/schematics": "^11.0.0",
|
|
81
|
-
"@nestjs/testing": "^11.0.1",
|
|
82
|
-
"@types/node": "^22.10.7",
|
|
83
|
-
"is-ci": "^4.1.0",
|
|
84
|
-
"knip": "^5.82.1",
|
|
85
|
-
"lefthook": "^2.0.15",
|
|
86
|
-
"nest-commander-schematics": "^3.2.0",
|
|
87
|
-
"npm-check-updates": "^18.3.1",
|
|
88
|
-
"npm-run-all": "^4.1.5",
|
|
89
|
-
"rimraf": "^6.1.3",
|
|
90
|
-
"ts-loader": "^9.5.2",
|
|
91
|
-
"ts-node": "^10.9.2",
|
|
92
|
-
"tsconfig-paths": "^4.2.0",
|
|
93
|
-
"typescript": "^5.7.3",
|
|
94
|
-
"vitest": "^3.2.4"
|
|
95
|
-
}
|
|
96
|
-
}
|
package/dist/src/app.module.d.ts
DELETED
package/dist/src/app.module.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AppModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const clean_module_1 = require("./commands/clean/clean.module");
|
|
12
|
-
const init_module_1 = require("./commands/init/init.module");
|
|
13
|
-
const pack_module_1 = require("./commands/pack/pack.module");
|
|
14
|
-
const config_module_1 = require("./core/config/config.module");
|
|
15
|
-
const fs_module_1 = require("./core/file-system/fs.module");
|
|
16
|
-
const ui_module_1 = require("./core/ui/ui.module");
|
|
17
|
-
const git_module_1 = require("./shared/git/git.module");
|
|
18
|
-
const tokenizer_module_1 = require("./shared/tokenizer/tokenizer.module");
|
|
19
|
-
let AppModule = class AppModule {
|
|
20
|
-
};
|
|
21
|
-
exports.AppModule = AppModule;
|
|
22
|
-
exports.AppModule = AppModule = __decorate([
|
|
23
|
-
(0, common_1.Module)({
|
|
24
|
-
imports: [
|
|
25
|
-
config_module_1.ConfigModule,
|
|
26
|
-
ui_module_1.UiModule,
|
|
27
|
-
fs_module_1.FsModule,
|
|
28
|
-
git_module_1.GitModule,
|
|
29
|
-
tokenizer_module_1.TokenizerModule,
|
|
30
|
-
init_module_1.InitModule,
|
|
31
|
-
pack_module_1.PackModule,
|
|
32
|
-
clean_module_1.CleanModule,
|
|
33
|
-
],
|
|
34
|
-
})
|
|
35
|
-
], AppModule);
|
|
36
|
-
//# sourceMappingURL=app.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,gEAA4D;AAC5D,6DAAyD;AACzD,6DAAyD;AACzD,+DAA2D;AAC3D,4DAAwD;AACxD,mDAA+C;AAC/C,wDAAoD;AACpD,0EAAsE;AAc/D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAZrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,4BAAY;YACZ,oBAAQ;YACR,oBAAQ;YACR,sBAAS;YACT,kCAAe;YACf,wBAAU;YACV,wBAAU;YACV,0BAAW;SACZ;KACF,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { CommandRunner } from 'nest-commander';
|
|
2
|
-
import { ConfigService } from '../../core/config/config.service';
|
|
3
|
-
import { FsService } from '../../core/file-system/fs.service';
|
|
4
|
-
import { UiService } from '../../core/ui/ui.service';
|
|
5
|
-
import { CleanerService } from '../../shared/cleaner/cleaner.service';
|
|
6
|
-
import { GitService } from '../../shared/git/git.service';
|
|
7
|
-
type CleanOptions = {
|
|
8
|
-
dryRun?: boolean;
|
|
9
|
-
changed?: boolean;
|
|
10
|
-
staged?: boolean;
|
|
11
|
-
backup?: boolean;
|
|
12
|
-
noJsdoc?: boolean;
|
|
13
|
-
verbose?: boolean;
|
|
14
|
-
stdin?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export declare class CleanCommand extends CommandRunner {
|
|
17
|
-
private readonly ui;
|
|
18
|
-
private readonly fsService;
|
|
19
|
-
private readonly cleaner;
|
|
20
|
-
private readonly config;
|
|
21
|
-
private readonly git;
|
|
22
|
-
constructor(ui: UiService, fsService: FsService, cleaner: CleanerService, config: ConfigService, git: GitService);
|
|
23
|
-
parseDryRun(): boolean;
|
|
24
|
-
parseChanged(): boolean;
|
|
25
|
-
parseStaged(): boolean;
|
|
26
|
-
parseBackup(): boolean;
|
|
27
|
-
parseNoJsdoc(): boolean;
|
|
28
|
-
parseVerbose(): boolean;
|
|
29
|
-
parseStdin(): boolean;
|
|
30
|
-
run(inputs: string[], options?: CleanOptions): Promise<void>;
|
|
31
|
-
private runStdin;
|
|
32
|
-
private readStdin;
|
|
33
|
-
private buildSpinnerText;
|
|
34
|
-
private noFilesMessage;
|
|
35
|
-
private collectTargets;
|
|
36
|
-
}
|
|
37
|
-
export {};
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CleanCommand = void 0;
|
|
13
|
-
const node_fs_1 = require("node:fs");
|
|
14
|
-
const nest_commander_1 = require("nest-commander");
|
|
15
|
-
const config_service_1 = require("../../core/config/config.service");
|
|
16
|
-
const fs_service_1 = require("../../core/file-system/fs.service");
|
|
17
|
-
const ui_service_1 = require("../../core/ui/ui.service");
|
|
18
|
-
const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
|
|
19
|
-
const git_service_1 = require("../../shared/git/git.service");
|
|
20
|
-
const SUPPORTED_EXTENSIONS = /\.(ts|tsx|js|jsx|mjs|cjs|html|htm)$/i;
|
|
21
|
-
let CleanCommand = class CleanCommand extends nest_commander_1.CommandRunner {
|
|
22
|
-
ui;
|
|
23
|
-
fsService;
|
|
24
|
-
cleaner;
|
|
25
|
-
config;
|
|
26
|
-
git;
|
|
27
|
-
constructor(ui, fsService, cleaner, config, git) {
|
|
28
|
-
super();
|
|
29
|
-
this.ui = ui;
|
|
30
|
-
this.fsService = fsService;
|
|
31
|
-
this.cleaner = cleaner;
|
|
32
|
-
this.config = config;
|
|
33
|
-
this.git = git;
|
|
34
|
-
}
|
|
35
|
-
parseDryRun() {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
parseChanged() {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
parseStaged() {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
parseBackup() {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
parseNoJsdoc() {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
parseVerbose() {
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
parseStdin() {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
async run(inputs, options = {}) {
|
|
57
|
-
if (options.stdin) {
|
|
58
|
-
await this.runStdin(options);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const spinner = this.ui
|
|
62
|
-
.createSpinner({ text: this.buildSpinnerText(options) })
|
|
63
|
-
.start();
|
|
64
|
-
try {
|
|
65
|
-
const { cleaner: cleanerConfig, packer } = this.config.getConfig();
|
|
66
|
-
const ignorePatterns = [
|
|
67
|
-
...(packer.ignore ?? []),
|
|
68
|
-
...(cleanerConfig.ignore ?? []),
|
|
69
|
-
];
|
|
70
|
-
const allFiles = await this.fsService.findProjectFiles({
|
|
71
|
-
useGitignore: cleanerConfig.useGitignore,
|
|
72
|
-
ignore: ignorePatterns,
|
|
73
|
-
});
|
|
74
|
-
const targets = await this.collectTargets(allFiles, inputs, options);
|
|
75
|
-
if (targets.length === 0) {
|
|
76
|
-
const msg = this.noFilesMessage(options);
|
|
77
|
-
spinner.stop(msg);
|
|
78
|
-
this.ui.log.warn(msg);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const summary = await this.cleaner.cleanFiles(targets, {
|
|
82
|
-
dryRun: options.dryRun,
|
|
83
|
-
backup: options.backup,
|
|
84
|
-
keepJSDoc: options.noJsdoc ? false : undefined,
|
|
85
|
-
onProgress: (current, total) => {
|
|
86
|
-
spinner.text = `${this.buildSpinnerText(options)} (${current}/${total})`;
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
spinner.success(options.dryRun ? 'Analysis complete' : 'Cleaning complete');
|
|
90
|
-
const bytesSaved = summary.bytesBefore - summary.bytesAfter;
|
|
91
|
-
const tokensSaved = Math.round(bytesSaved / 4);
|
|
92
|
-
if (options.dryRun) {
|
|
93
|
-
this.ui.log.info(`Files affected: ${summary.filesChanged}/${summary.filesProcessed}, comments: ${summary.commentsRemoved}`);
|
|
94
|
-
this.ui.log.info(`Bytes saved: ${bytesSaved} (~${tokensSaved} tokens)`);
|
|
95
|
-
const limit = options.verbose ? Number.POSITIVE_INFINITY : 3;
|
|
96
|
-
for (const report of summary.reports.filter((r) => r.removed > 0)) {
|
|
97
|
-
const previews = options.verbose
|
|
98
|
-
? report.previews
|
|
99
|
-
: report.previews.slice(0, limit);
|
|
100
|
-
const more = !options.verbose && report.previews.length > limit
|
|
101
|
-
? ` +${report.previews.length - limit} more`
|
|
102
|
-
: '';
|
|
103
|
-
this.ui.log.info(` ${report.file} (${report.removed}): ${previews.map((p) => `"${p}"`).join(', ')}${more}`);
|
|
104
|
-
}
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
this.ui.log.success(`Files cleaned: ${summary.filesChanged}, comments removed: ${summary.commentsRemoved}`);
|
|
108
|
-
this.ui.log.info(`Bytes saved: ${bytesSaved} (~${tokensSaved} tokens)`);
|
|
109
|
-
if (options.backup && summary.filesChanged > 0) {
|
|
110
|
-
this.ui.log.info('Originals backed up to .kodu/backup/');
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
spinner.error('Error during cleaning');
|
|
115
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
116
|
-
this.ui.log.error(message);
|
|
117
|
-
process.exitCode = 1;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
async runStdin(options) {
|
|
121
|
-
try {
|
|
122
|
-
const input = await this.readStdin();
|
|
123
|
-
const cleaned = this.cleaner.cleanContent('stdin.ts', input, options.noJsdoc ? false : undefined);
|
|
124
|
-
process.stdout.write(cleaned);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
128
|
-
this.ui.log.error(message);
|
|
129
|
-
process.exitCode = 1;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
readStdin() {
|
|
133
|
-
return new Promise((resolve, reject) => {
|
|
134
|
-
const chunks = [];
|
|
135
|
-
const stream = (0, node_fs_1.createReadStream)('/dev/stdin');
|
|
136
|
-
stream.on('data', (chunk) => chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk));
|
|
137
|
-
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
138
|
-
stream.on('error', reject);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
buildSpinnerText(options) {
|
|
142
|
-
if (options.staged)
|
|
143
|
-
return 'Cleaning staged files...';
|
|
144
|
-
if (options.changed)
|
|
145
|
-
return 'Cleaning changed files...';
|
|
146
|
-
return options.dryRun ? 'Analysing...' : 'Cleaning...';
|
|
147
|
-
}
|
|
148
|
-
noFilesMessage(options) {
|
|
149
|
-
if (options.staged)
|
|
150
|
-
return 'No staged files to clean.';
|
|
151
|
-
if (options.changed)
|
|
152
|
-
return 'No changed files to clean.';
|
|
153
|
-
return 'No files to clean.';
|
|
154
|
-
}
|
|
155
|
-
async collectTargets(allFiles, inputs, options) {
|
|
156
|
-
const supported = allFiles.filter((f) => SUPPORTED_EXTENSIONS.test(f));
|
|
157
|
-
if (inputs.length > 0) {
|
|
158
|
-
return supported.filter((f) => inputs.some((i) => f === i || f.startsWith(`${i.replace(/\/$/, '')}/`)));
|
|
159
|
-
}
|
|
160
|
-
if (options.staged) {
|
|
161
|
-
const staged = new Set(await this.git.getStagedFiles());
|
|
162
|
-
return supported.filter((f) => staged.has(f));
|
|
163
|
-
}
|
|
164
|
-
if (options.changed) {
|
|
165
|
-
const changed = new Set(await this.git.getChangedFiles());
|
|
166
|
-
return supported.filter((f) => changed.has(f));
|
|
167
|
-
}
|
|
168
|
-
return supported;
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
exports.CleanCommand = CleanCommand;
|
|
172
|
-
__decorate([
|
|
173
|
-
(0, nest_commander_1.Option)({ flags: '-d, --dry-run', description: 'Show what will be removed' }),
|
|
174
|
-
__metadata("design:type", Function),
|
|
175
|
-
__metadata("design:paramtypes", []),
|
|
176
|
-
__metadata("design:returntype", Boolean)
|
|
177
|
-
], CleanCommand.prototype, "parseDryRun", null);
|
|
178
|
-
__decorate([
|
|
179
|
-
(0, nest_commander_1.Option)({
|
|
180
|
-
flags: '-c, --changed',
|
|
181
|
-
description: 'Clean only git-changed files (staged + unstaged + untracked)',
|
|
182
|
-
}),
|
|
183
|
-
__metadata("design:type", Function),
|
|
184
|
-
__metadata("design:paramtypes", []),
|
|
185
|
-
__metadata("design:returntype", Boolean)
|
|
186
|
-
], CleanCommand.prototype, "parseChanged", null);
|
|
187
|
-
__decorate([
|
|
188
|
-
(0, nest_commander_1.Option)({
|
|
189
|
-
flags: '-s, --staged',
|
|
190
|
-
description: 'Clean only git-staged files',
|
|
191
|
-
}),
|
|
192
|
-
__metadata("design:type", Function),
|
|
193
|
-
__metadata("design:paramtypes", []),
|
|
194
|
-
__metadata("design:returntype", Boolean)
|
|
195
|
-
], CleanCommand.prototype, "parseStaged", null);
|
|
196
|
-
__decorate([
|
|
197
|
-
(0, nest_commander_1.Option)({
|
|
198
|
-
flags: '-b, --backup',
|
|
199
|
-
description: 'Save originals to .kodu/backup/ before modifying',
|
|
200
|
-
}),
|
|
201
|
-
__metadata("design:type", Function),
|
|
202
|
-
__metadata("design:paramtypes", []),
|
|
203
|
-
__metadata("design:returntype", Boolean)
|
|
204
|
-
], CleanCommand.prototype, "parseBackup", null);
|
|
205
|
-
__decorate([
|
|
206
|
-
(0, nest_commander_1.Option)({
|
|
207
|
-
flags: '-n, --no-jsdoc',
|
|
208
|
-
description: 'Remove JSDoc comments (overrides config keepJSDoc)',
|
|
209
|
-
}),
|
|
210
|
-
__metadata("design:type", Function),
|
|
211
|
-
__metadata("design:paramtypes", []),
|
|
212
|
-
__metadata("design:returntype", Boolean)
|
|
213
|
-
], CleanCommand.prototype, "parseNoJsdoc", null);
|
|
214
|
-
__decorate([
|
|
215
|
-
(0, nest_commander_1.Option)({
|
|
216
|
-
flags: '-v, --verbose',
|
|
217
|
-
description: 'Show all removed comments in dry-run (not just first 3)',
|
|
218
|
-
}),
|
|
219
|
-
__metadata("design:type", Function),
|
|
220
|
-
__metadata("design:paramtypes", []),
|
|
221
|
-
__metadata("design:returntype", Boolean)
|
|
222
|
-
], CleanCommand.prototype, "parseVerbose", null);
|
|
223
|
-
__decorate([
|
|
224
|
-
(0, nest_commander_1.Option)({
|
|
225
|
-
flags: '--stdin',
|
|
226
|
-
description: 'Read from stdin, write cleaned result to stdout',
|
|
227
|
-
}),
|
|
228
|
-
__metadata("design:type", Function),
|
|
229
|
-
__metadata("design:paramtypes", []),
|
|
230
|
-
__metadata("design:returntype", Boolean)
|
|
231
|
-
], CleanCommand.prototype, "parseStdin", null);
|
|
232
|
-
exports.CleanCommand = CleanCommand = __decorate([
|
|
233
|
-
(0, nest_commander_1.Command)({ name: 'clean', description: 'Remove comments from code' }),
|
|
234
|
-
__metadata("design:paramtypes", [ui_service_1.UiService,
|
|
235
|
-
fs_service_1.FsService,
|
|
236
|
-
cleaner_service_1.CleanerService,
|
|
237
|
-
config_service_1.ConfigService,
|
|
238
|
-
git_service_1.GitService])
|
|
239
|
-
], CleanCommand);
|
|
240
|
-
//# sourceMappingURL=clean.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clean.command.js","sourceRoot":"","sources":["../../../../src/commands/clean/clean.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.CleanModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const config_module_1 = require("../../core/config/config.module");
|
|
12
|
-
const fs_module_1 = require("../../core/file-system/fs.module");
|
|
13
|
-
const ui_module_1 = require("../../core/ui/ui.module");
|
|
14
|
-
const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
|
|
15
|
-
const git_module_1 = require("../../shared/git/git.module");
|
|
16
|
-
const clean_command_1 = require("./clean.command");
|
|
17
|
-
let CleanModule = class CleanModule {
|
|
18
|
-
};
|
|
19
|
-
exports.CleanModule = CleanModule;
|
|
20
|
-
exports.CleanModule = CleanModule = __decorate([
|
|
21
|
-
(0, common_1.Module)({
|
|
22
|
-
imports: [fs_module_1.FsModule, ui_module_1.UiModule, config_module_1.ConfigModule, git_module_1.GitModule],
|
|
23
|
-
providers: [clean_command_1.CleanCommand, cleaner_service_1.CleanerService],
|
|
24
|
-
})
|
|
25
|
-
], CleanModule);
|
|
26
|
-
//# sourceMappingURL=clean.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clean.module.js","sourceRoot":"","sources":["../../../../src/commands/clean/clean.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,0EAAsE;AACtE,4DAAwD;AACxD,mDAA+C;AAMxC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAJvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oBAAQ,EAAE,oBAAQ,EAAE,4BAAY,EAAE,sBAAS,CAAC;QACtD,SAAS,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;KAC1C,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CommandRunner } from 'nest-commander';
|
|
2
|
-
import { UiService } from '../../core/ui/ui.service';
|
|
3
|
-
export declare class InitCommand extends CommandRunner {
|
|
4
|
-
private readonly ui;
|
|
5
|
-
constructor(ui: UiService);
|
|
6
|
-
run(): Promise<void>;
|
|
7
|
-
private ensureKoduJson;
|
|
8
|
-
private updateGitignore;
|
|
9
|
-
private exists;
|
|
10
|
-
}
|