@amirdaraee/namewise 0.5.5 → 0.6.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/CHANGELOG.md +70 -182
- package/README.md +135 -120
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +46 -27
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/rename.d.ts +3 -0
- package/dist/cli/rename.d.ts.map +1 -1
- package/dist/cli/rename.js +73 -30
- package/dist/cli/rename.js.map +1 -1
- package/dist/cli/undo.d.ts +4 -0
- package/dist/cli/undo.d.ts.map +1 -0
- package/dist/cli/undo.js +66 -0
- package/dist/cli/undo.js.map +1 -0
- package/dist/parsers/factory.d.ts.map +1 -1
- package/dist/parsers/factory.js +2 -11
- package/dist/parsers/factory.js.map +1 -1
- package/dist/services/ai-factory.js +2 -2
- package/dist/services/ai-factory.js.map +1 -1
- package/dist/services/claude-service.d.ts +2 -1
- package/dist/services/claude-service.d.ts.map +1 -1
- package/dist/services/claude-service.js +6 -6
- package/dist/services/claude-service.js.map +1 -1
- package/dist/services/file-renamer.d.ts +1 -1
- package/dist/services/file-renamer.d.ts.map +1 -1
- package/dist/services/file-renamer.js +61 -31
- package/dist/services/file-renamer.js.map +1 -1
- package/dist/services/openai-service.d.ts +2 -1
- package/dist/services/openai-service.d.ts.map +1 -1
- package/dist/services/openai-service.js +6 -6
- package/dist/services/openai-service.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/ai-prompts.js +2 -2
- package/dist/utils/config-loader.d.ts +16 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +25 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/file-templates.d.ts +1 -1
- package/dist/utils/file-templates.d.ts.map +1 -1
- package/dist/utils/file-templates.js +25 -11
- package/dist/utils/file-templates.js.map +1 -1
- package/dist/utils/history.d.ts +13 -0
- package/dist/utils/history.d.ts.map +1 -0
- package/dist/utils/history.js +21 -0
- package/dist/utils/history.js.map +1 -0
- package/package.json +1 -1
- package/RELEASE.md +0 -167
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-service.d.ts","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-service.d.ts","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAKpC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAqB,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAgF1K,OAAO,CAAC,gBAAgB;CAuBzB"}
|
|
@@ -4,10 +4,10 @@ import { buildFileNamePrompt } from '../utils/ai-prompts.js';
|
|
|
4
4
|
export class OpenAIService {
|
|
5
5
|
name = 'OpenAI';
|
|
6
6
|
client;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
model;
|
|
8
|
+
constructor(apiKey, model) {
|
|
9
|
+
this.client = new OpenAI({ apiKey });
|
|
10
|
+
this.model = model ?? 'gpt-4o';
|
|
11
11
|
}
|
|
12
12
|
async generateFileName(content, originalName, namingConvention = 'kebab-case', category = 'general', fileInfo) {
|
|
13
13
|
const convention = namingConvention;
|
|
@@ -30,7 +30,7 @@ export class OpenAIService {
|
|
|
30
30
|
fileInfo
|
|
31
31
|
});
|
|
32
32
|
response = await this.client.chat.completions.create({
|
|
33
|
-
model:
|
|
33
|
+
model: this.model,
|
|
34
34
|
messages: [
|
|
35
35
|
{
|
|
36
36
|
role: 'user',
|
|
@@ -62,7 +62,7 @@ export class OpenAIService {
|
|
|
62
62
|
fileInfo
|
|
63
63
|
});
|
|
64
64
|
response = await this.client.chat.completions.create({
|
|
65
|
-
model:
|
|
65
|
+
model: this.model,
|
|
66
66
|
messages: [
|
|
67
67
|
{
|
|
68
68
|
role: 'user',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-service.js","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gCAAgC,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,OAAO,aAAa;IACxB,IAAI,GAAG,QAAQ,CAAC;IACR,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-service.js","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ai-prompts.js
CHANGED
|
@@ -57,8 +57,8 @@ Document Properties:`;
|
|
|
57
57
|
|
|
58
58
|
${metadataContext}
|
|
59
59
|
|
|
60
|
-
Document content (first
|
|
61
|
-
${content.substring(0,
|
|
60
|
+
Document content (first 5000 characters):
|
|
61
|
+
${content.substring(0, 5000)}
|
|
62
62
|
|
|
63
63
|
Important: If this document is specifically for or about a particular person mentioned in the content, start the filename with their name. Otherwise, focus on the document's main purpose and content.
|
|
64
64
|
|
|
@@ -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"}
|
|
@@ -13,6 +13,6 @@ export interface FileTemplate {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const FILE_TEMPLATES: Record<Exclude<FileCategory, 'auto'>, FileTemplate>;
|
|
15
15
|
export declare function categorizeFile(filePath: string, content?: string, fileInfo?: FileInfo): FileCategory;
|
|
16
|
-
export declare function applyTemplate(aiGeneratedName: string, category: FileCategory, templateOptions: TemplateOptions, namingConvention: NamingConvention): string;
|
|
16
|
+
export declare function applyTemplate(aiGeneratedName: string, category: FileCategory, templateOptions: TemplateOptions, namingConvention: NamingConvention, fileInfo?: FileInfo): string;
|
|
17
17
|
export declare function getTemplateInstructions(category: FileCategory): string;
|
|
18
18
|
//# sourceMappingURL=file-templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-templates.d.ts","sourceRoot":"","sources":["../../src/utils/file-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,YAAY,CAuE9E,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAiHpG;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"file-templates.d.ts","sourceRoot":"","sources":["../../src/utils/file-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,YAAY,CAuE9E,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAiHpG;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CA4BR;AA8BD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAoBtE"}
|
|
@@ -12,8 +12,8 @@ export const FILE_TEMPLATES = {
|
|
|
12
12
|
},
|
|
13
13
|
movie: {
|
|
14
14
|
category: 'movie',
|
|
15
|
-
pattern: '{content}
|
|
16
|
-
description: 'Movies
|
|
15
|
+
pattern: '{content}',
|
|
16
|
+
description: 'Movies — include release year in the name',
|
|
17
17
|
examples: [
|
|
18
18
|
'the-dark-knight-2008.mkv',
|
|
19
19
|
'inception-2010.mp4',
|
|
@@ -22,8 +22,8 @@ export const FILE_TEMPLATES = {
|
|
|
22
22
|
},
|
|
23
23
|
music: {
|
|
24
24
|
category: 'music',
|
|
25
|
-
pattern: '{
|
|
26
|
-
description: 'Music files
|
|
25
|
+
pattern: '{content}',
|
|
26
|
+
description: 'Music files — include artist name at the start',
|
|
27
27
|
examples: [
|
|
28
28
|
'the-beatles-hey-jude.mp3',
|
|
29
29
|
'queen-bohemian-rhapsody.flac',
|
|
@@ -32,8 +32,8 @@ export const FILE_TEMPLATES = {
|
|
|
32
32
|
},
|
|
33
33
|
series: {
|
|
34
34
|
category: 'series',
|
|
35
|
-
pattern: '{content}
|
|
36
|
-
description: 'TV series
|
|
35
|
+
pattern: '{content}',
|
|
36
|
+
description: 'TV series — include show name, season, and episode number',
|
|
37
37
|
examples: [
|
|
38
38
|
'breaking-bad-s01e01.mkv',
|
|
39
39
|
'game-of-thrones-s04e09.mp4',
|
|
@@ -52,8 +52,8 @@ export const FILE_TEMPLATES = {
|
|
|
52
52
|
},
|
|
53
53
|
book: {
|
|
54
54
|
category: 'book',
|
|
55
|
-
pattern: '{
|
|
56
|
-
description: 'Books
|
|
55
|
+
pattern: '{content}',
|
|
56
|
+
description: 'Books — include author name at the start',
|
|
57
57
|
examples: [
|
|
58
58
|
'george-orwell-1984.pdf',
|
|
59
59
|
'j-k-rowling-harry-potter-philosophers-stone.epub',
|
|
@@ -176,7 +176,7 @@ export function categorizeFile(filePath, content, fileInfo) {
|
|
|
176
176
|
return 'book';
|
|
177
177
|
return 'general';
|
|
178
178
|
}
|
|
179
|
-
export function applyTemplate(aiGeneratedName, category, templateOptions, namingConvention) {
|
|
179
|
+
export function applyTemplate(aiGeneratedName, category, templateOptions, namingConvention, fileInfo) {
|
|
180
180
|
if (category === 'auto') {
|
|
181
181
|
throw new Error('Cannot apply template for "auto" category. Category should be resolved before calling applyTemplate.');
|
|
182
182
|
}
|
|
@@ -188,7 +188,8 @@ export function applyTemplate(aiGeneratedName, category, templateOptions, naming
|
|
|
188
188
|
result = result.replace('{personalName}', templateOptions.personalName);
|
|
189
189
|
}
|
|
190
190
|
if (templateOptions.dateFormat && templateOptions.dateFormat !== 'none') {
|
|
191
|
-
const
|
|
191
|
+
const dateToUse = fileInfo?.documentMetadata?.creationDate ?? new Date();
|
|
192
|
+
const date = formatDate(dateToUse, templateOptions.dateFormat);
|
|
192
193
|
result = result.replace('{date}', date);
|
|
193
194
|
}
|
|
194
195
|
// Clean up any remaining unreplaced variables
|
|
@@ -227,6 +228,19 @@ export function getTemplateInstructions(category) {
|
|
|
227
228
|
return 'Generate appropriate filename based on detected file type and content.';
|
|
228
229
|
}
|
|
229
230
|
const template = FILE_TEMPLATES[category];
|
|
230
|
-
|
|
231
|
+
const baseInstruction = `Generate filename for ${category} type files. ${template.description}.`;
|
|
232
|
+
const exampleInstruction = `Examples (without extension): ${template.examples.map(e => e.replace(/\.[^.]+$/, '')).join(', ')}`;
|
|
233
|
+
switch (category) {
|
|
234
|
+
case 'movie':
|
|
235
|
+
return `${baseInstruction} The complete name must include the release year at the end. ${exampleInstruction}`;
|
|
236
|
+
case 'music':
|
|
237
|
+
return `${baseInstruction} The complete name must start with the artist name followed by the track title. ${exampleInstruction}`;
|
|
238
|
+
case 'series':
|
|
239
|
+
return `${baseInstruction} The complete name must include the season and episode numbers (e.g. s01e01). ${exampleInstruction}`;
|
|
240
|
+
case 'book':
|
|
241
|
+
return `${baseInstruction} The complete name must start with the author name followed by the book title. ${exampleInstruction}`;
|
|
242
|
+
default:
|
|
243
|
+
return `${baseInstruction} ${exampleInstruction}`;
|
|
244
|
+
}
|
|
231
245
|
}
|
|
232
246
|
//# sourceMappingURL=file-templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-templates.js","sourceRoot":"","sources":["../../src/utils/file-templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAiBhE,MAAM,CAAC,MAAM,cAAc,GAAwD;IACjF,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE;YACR,0CAA0C;YAC1C,sDAAsD;YACtD,uCAAuC;SACxC;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"file-templates.js","sourceRoot":"","sources":["../../src/utils/file-templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAiBhE,MAAM,CAAC,MAAM,cAAc,GAAwD;IACjF,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE;YACR,0CAA0C;YAC1C,sDAAsD;YACtD,uCAAuC;SACxC;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE;YACR,0BAA0B;YAC1B,oBAAoB;YACpB,uBAAuB;SACxB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE;YACR,0BAA0B;YAC1B,8BAA8B;YAC9B,mCAAmC;SACpC;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE;YACR,yBAAyB;YACzB,4BAA4B;YAC5B,uBAAuB;SACxB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE;YACR,kCAAkC;YAClC,qCAAqC;YACrC,mCAAmC;SACpC;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE;YACR,wBAAwB;YACxB,kDAAkD;YAClD,+BAA+B;SAChC;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE;YACR,2BAA2B;YAC3B,2BAA2B;YAC3B,uBAAuB;SACxB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAgB,EAAE,QAAmB;IACpF,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAElD,2CAA2C;IAC3C,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,IAAI,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,QAAQ;YAAE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,+CAA+C;IAC/C,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtF,iBAAiB;IACjB,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEzK,cAAc;IACd,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7H,0BAA0B;IAC1B,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEvG,gBAAgB;IAChB,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAErG,mBAAmB;IACnB,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtF,iBAAiB;IACjB,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE7G,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAErE,8CAA8C;IAC9C,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChF,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IAEpF,yCAAyC;IACzC,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CACzC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC3D,EAAE,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,uBAAuB;QACvB,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACnG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,2CAA2C;QAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,UAAU,CAAC,CAAC,kCAAkC;IACvD,CAAC;IAED,gCAAgC;IAChC,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,+BAA+B;IACjD,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,eAAuB,EACvB,QAAsB,EACtB,eAAgC,EAChC,gBAAkC,EAClC,QAAmB;IAEnB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAyC,CAAC,CAAC;IAC3E,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE9B,6BAA6B;IAC7B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAEtD,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,eAAe,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACxE,MAAM,SAAS,GAAG,QAAQ,EAAE,gBAAgB,EAAE,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,8CAA8C;IAC9C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE1C,gDAAgD;IAChD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE1D,0BAA0B;IAC1B,OAAO,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,MAA0C;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;QACjC;YACE,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;AAC9D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAsB;IAC5D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,wEAAwE,CAAC;IAClF,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAyC,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,yBAAyB,QAAQ,gBAAgB,QAAQ,CAAC,WAAW,GAAG,CAAC;IACjG,MAAM,kBAAkB,GAAG,iCAAiC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE/H,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,GAAG,eAAe,gEAAgE,kBAAkB,EAAE,CAAC;QAChH,KAAK,OAAO;YACV,OAAO,GAAG,eAAe,mFAAmF,kBAAkB,EAAE,CAAC;QACnI,KAAK,QAAQ;YACX,OAAO,GAAG,eAAe,iFAAiF,kBAAkB,EAAE,CAAC;QACjI,KAAK,MAAM;YACT,OAAO,GAAG,eAAe,kFAAkF,kBAAkB,EAAE,CAAC;QAClI;YACE,OAAO,GAAG,eAAe,IAAI,kBAAkB,EAAE,CAAC;IACtD,CAAC;AACH,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
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.
|