@amirdaraee/namewise 0.5.5 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IAEjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACjJ;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;AACpH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7G,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IAEjC,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface NamiwiseFileConfig {
2
+ provider?: 'claude' | 'openai' | 'ollama' | 'lmstudio';
3
+ case?: string;
4
+ template?: string;
5
+ name?: string;
6
+ date?: string;
7
+ maxSize?: number;
8
+ model?: string;
9
+ baseUrl?: string;
10
+ concurrency?: number;
11
+ recursive?: boolean;
12
+ depth?: number;
13
+ output?: string;
14
+ }
15
+ export declare function loadConfig(targetDir: string): Promise<NamiwiseFileConfig>;
16
+ //# sourceMappingURL=config-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAI/E"}
@@ -0,0 +1,25 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ async function readConfigFile(filePath) {
5
+ try {
6
+ const raw = await fs.readFile(filePath, 'utf-8');
7
+ try {
8
+ return JSON.parse(raw);
9
+ }
10
+ catch (parseError) {
11
+ throw new Error(`Invalid JSON in config file ${filePath}: ${parseError.message}`);
12
+ }
13
+ }
14
+ catch (error) {
15
+ if (error.code === 'ENOENT')
16
+ return {};
17
+ throw error;
18
+ }
19
+ }
20
+ export async function loadConfig(targetDir) {
21
+ const userConfig = await readConfigFile(path.join(os.homedir(), '.namewise.json'));
22
+ const projectConfig = await readConfigFile(path.join(path.resolve(targetDir), '.namewise.json'));
23
+ return { ...userConfig, ...projectConfig };
24
+ }
25
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAiBpB,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,CAAC;QAC/C,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,KAAM,UAA0B,CAAC,OAAO,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjG,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface HistoryEntry {
2
+ id: string;
3
+ timestamp: string;
4
+ directory: string;
5
+ dryRun: boolean;
6
+ renames: Array<{
7
+ originalPath: string;
8
+ newPath: string;
9
+ }>;
10
+ }
11
+ export declare function readHistory(): Promise<HistoryEntry[]>;
12
+ export declare function appendHistory(entry: HistoryEntry): Promise<void>;
13
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAKD,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAO3D;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE"}
@@ -0,0 +1,21 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ const HISTORY_DIR = path.join(os.homedir(), '.namewise');
5
+ const HISTORY_FILE = path.join(HISTORY_DIR, 'history.json');
6
+ export async function readHistory() {
7
+ try {
8
+ const raw = await fs.readFile(HISTORY_FILE, 'utf-8');
9
+ return JSON.parse(raw);
10
+ }
11
+ catch {
12
+ return [];
13
+ }
14
+ }
15
+ export async function appendHistory(entry) {
16
+ await fs.mkdir(HISTORY_DIR, { recursive: true });
17
+ const history = await readHistory();
18
+ history.push(entry);
19
+ await fs.writeFile(HISTORY_FILE, JSON.stringify(history, null, 2), 'utf-8');
20
+ }
21
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAUpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AACzD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAmB;IACrD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amirdaraee/namewise",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "bin": {
package/RELEASE.md DELETED
@@ -1,167 +0,0 @@
1
- # Release Process Documentation
2
-
3
- This document explains how to release a new version of the Namewise CLI tool.
4
-
5
- ## Quick Release Commands
6
-
7
- Based on your `package.json` scripts, you can use these commands for automated releases:
8
-
9
- ```bash
10
- npm run release # Patch version (1.0.0 → 1.0.1)
11
- npm run release:minor # Minor version (1.0.0 → 1.1.0)
12
- npm run release:major # Major version (1.0.0 → 2.0.0)
13
- ```
14
-
15
- These commands will:
16
- 1. Run tests and build
17
- 2. Bump the version in `package.json`
18
- 3. Trigger the auto-release workflow
19
-
20
- ## Manual Release Process
21
-
22
- If you prefer to do it manually:
23
-
24
- ### 1. Prepare the Release
25
-
26
- ```bash
27
- # Ensure you're on main branch with latest changes
28
- git checkout main
29
- git pull origin main
30
-
31
- # Run tests and build to ensure everything works
32
- npm run test:run
33
- npm run build
34
- ```
35
-
36
- ### 2. Update Version
37
-
38
- Choose the appropriate version bump:
39
- - **Patch** (bug fixes): `1.0.0 → 1.0.1`
40
- - **Minor** (new features): `1.0.0 → 1.1.0`
41
- - **Major** (breaking changes): `1.0.0 → 2.0.0`
42
-
43
- ```bash
44
- # Update version in package.json
45
- npm version patch # or minor, or major
46
- ```
47
-
48
- ### 3. Push Changes
49
-
50
- ```bash
51
- # Push the version bump commit
52
- git push origin main
53
- ```
54
-
55
- This will trigger the `auto-release.yml` workflow which will:
56
- - Create a Git tag
57
- - Publish to NPM automatically
58
-
59
- ### 4. Create GitHub Release (Optional)
60
-
61
- To also publish to GitHub Packages:
62
-
63
- 1. Go to your GitHub repository
64
- 2. Click "Releases" → "Create a new release"
65
- 3. Choose the tag that was just created (e.g., `v1.0.1`)
66
- 4. Add release notes
67
- 5. Click "Publish release"
68
-
69
- This triggers the `publish.yml` workflow.
70
-
71
- ## GitHub Workflows
72
-
73
- Your project has three separate, independently runnable workflows:
74
-
75
- ### 1. Test Pipeline (`test.yml`)
76
- - **Triggers**: Push to main/develop, PRs, manual dispatch, called by other workflows
77
- - **Purpose**: Run tests and linting across Node.js versions
78
- - **Manual run**: Go to Actions → Test Pipeline → "Run workflow"
79
-
80
- ### 2. Build Pipeline (`build.yml`)
81
- - **Triggers**: Push to main, manual dispatch, or called by other workflows
82
- - **Purpose**: Run tests first, then build the project and create artifacts
83
- - **Dependencies**: Calls Test Pipeline automatically
84
- - **Manual run**: Go to Actions → Build Pipeline → "Run workflow"
85
-
86
- ### 3. Publish Pipeline (`publish.yml`)
87
- - **Triggers**: GitHub releases, manual dispatch
88
- - **Purpose**: Publish to NPM and GitHub Packages using build artifacts
89
- - **Features**:
90
- - Uses artifacts from build pipeline (no rebuilding)
91
- - Can use existing artifacts from previous builds
92
- - Option to specify which artifact to use
93
- - **Manual run**: Go to Actions → Publish Pipeline → "Run workflow"
94
-
95
- ### 4. Auto Release (`auto-release.yml`)
96
- - **Triggers**: Push to main when package.json version changes
97
- - **Purpose**: Automatically create tags and publish when version is bumped
98
-
99
- ## Prerequisites
100
-
101
- ### NPM Token
102
- Add `NPM_TOKEN` to your GitHub repository secrets:
103
- 1. Go to npmjs.com → Access Tokens → Generate New Token
104
- 2. Copy the token
105
- 3. In GitHub: Settings → Secrets → Actions → New repository secret
106
- 4. Name: `NPM_TOKEN`, Value: your token
107
-
108
- ### Production Environment (Optional)
109
- For extra safety, create a production environment:
110
- 1. GitHub → Settings → Environments → New environment
111
- 2. Name: `production`
112
- 3. Add protection rules (require reviews, etc.)
113
-
114
- ## Version Strategy
115
-
116
- Follow [Semantic Versioning](https://semver.org/):
117
-
118
- - **Major** (`X.0.0`): Breaking changes that require user action
119
- - **Minor** (`0.X.0`): New features that are backward compatible
120
- - **Patch** (`0.0.X`): Bug fixes and small improvements
121
-
122
- ## Troubleshooting
123
-
124
- ### Release Failed
125
- - Check the Actions tab for error details
126
- - Ensure NPM_TOKEN is valid
127
- - Verify package.json version was actually changed
128
- - Make sure tests pass: `npm run test:run`
129
-
130
- ### Package Already Published
131
- - NPM doesn't allow republishing the same version
132
- - Bump the version: `npm version patch`
133
- - Push: `git push origin main`
134
-
135
- ### Using Existing Build Artifacts
136
-
137
- You can publish using previously built artifacts:
138
-
139
- 1. **Use latest build**: Go to Actions → Publish Pipeline → Run workflow → Use artifact: `latest`
140
- 2. **Use specific build**: Find the artifact name from a previous build run → Run workflow → Use artifact: `build-artifacts-abc123def`
141
-
142
- ### Manual Publishing
143
- If workflows fail, you can publish manually:
144
- ```bash
145
- npm run build
146
- npm run test:run
147
- npm publish
148
- ```
149
-
150
- ## Example Release Workflow
151
-
152
- Here's a complete example of releasing version 1.2.3:
153
-
154
- ```bash
155
- # 1. Prepare
156
- git checkout main
157
- git pull origin main
158
- npm run test:run
159
-
160
- # 2. Release (this does everything)
161
- npm run release:minor # 1.2.2 → 1.2.3
162
-
163
- # 3. Create GitHub release (optional)
164
- # Go to GitHub → Releases → Create release from v1.2.3 tag
165
- ```
166
-
167
- That's it! The automation handles the rest.