flowsquire 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +258 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +926 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/index.d.ts +36 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +154 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/rule-engine.d.ts +8 -0
- package/dist/core/rule-engine.d.ts.map +1 -0
- package/dist/core/rule-engine.js +289 -0
- package/dist/core/rule-engine.js.map +1 -0
- package/dist/core/screenshot-metadata.d.ts +24 -0
- package/dist/core/screenshot-metadata.d.ts.map +1 -0
- package/dist/core/screenshot-metadata.js +175 -0
- package/dist/core/screenshot-metadata.js.map +1 -0
- package/dist/db/index.d.ts +8 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +87 -0
- package/dist/db/index.js.map +1 -0
- package/dist/types/index.d.ts +62 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/watchers/file-watcher.d.ts +21 -0
- package/dist/watchers/file-watcher.d.ts.map +1 -0
- package/dist/watchers/file-watcher.js +318 -0
- package/dist/watchers/file-watcher.js.map +1 -0
- package/package.json +56 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface FlowSquireConfig {
|
|
2
|
+
paths: {
|
|
3
|
+
downloads: string;
|
|
4
|
+
documents: string;
|
|
5
|
+
desktop: string;
|
|
6
|
+
pictures: string;
|
|
7
|
+
screenshots: string;
|
|
8
|
+
videos: string;
|
|
9
|
+
music: string;
|
|
10
|
+
home: string;
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
};
|
|
13
|
+
settings: {
|
|
14
|
+
downloadsMode: 'nested' | 'system';
|
|
15
|
+
screenshotMode: 'metadata' | 'by-app' | 'by-date';
|
|
16
|
+
};
|
|
17
|
+
version: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function loadConfig(): Promise<FlowSquireConfig>;
|
|
20
|
+
export declare function saveConfig(config: FlowSquireConfig): Promise<void>;
|
|
21
|
+
export declare function getConfigValue(key: string): Promise<string | undefined>;
|
|
22
|
+
export declare function setConfigValue(key: string, value: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Replace template variables in a string with actual paths.
|
|
25
|
+
* Template variables are in the format {variableName}, e.g., {downloads}, {documents}
|
|
26
|
+
*/
|
|
27
|
+
export declare function replaceTemplateVariables(template: string, config: FlowSquireConfig, metadata?: {
|
|
28
|
+
appName?: string;
|
|
29
|
+
domain?: string;
|
|
30
|
+
}): string;
|
|
31
|
+
/**
|
|
32
|
+
* Replace template variables in rule trigger and action configs
|
|
33
|
+
*/
|
|
34
|
+
export declare function replaceVariablesInObject<T extends Record<string, unknown>>(obj: T, config: FlowSquireConfig): T;
|
|
35
|
+
export declare function listConfigPaths(config: FlowSquireConfig): void;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE;QACR,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC;QACnC,cAAc,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD,wBAAsB,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyB5D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7E;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB7I;AAaD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,gBAAgB,GACvB,CAAC,CAcH;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAa9D"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadConfig = loadConfig;
|
|
7
|
+
exports.saveConfig = saveConfig;
|
|
8
|
+
exports.getConfigValue = getConfigValue;
|
|
9
|
+
exports.setConfigValue = setConfigValue;
|
|
10
|
+
exports.replaceTemplateVariables = replaceTemplateVariables;
|
|
11
|
+
exports.replaceVariablesInObject = replaceVariablesInObject;
|
|
12
|
+
exports.listConfigPaths = listConfigPaths;
|
|
13
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const os_1 = __importDefault(require("os"));
|
|
16
|
+
const DB_DIR = '.flowsquire';
|
|
17
|
+
const CONFIG_FILE = path_1.default.join(DB_DIR, 'config.json');
|
|
18
|
+
const DEFAULT_CONFIG = {
|
|
19
|
+
paths: {
|
|
20
|
+
downloads: path_1.default.join(os_1.default.homedir(), 'Downloads'),
|
|
21
|
+
documents: path_1.default.join(os_1.default.homedir(), 'Documents'),
|
|
22
|
+
desktop: path_1.default.join(os_1.default.homedir(), 'Desktop'),
|
|
23
|
+
pictures: path_1.default.join(os_1.default.homedir(), 'Pictures'),
|
|
24
|
+
screenshots: path_1.default.join(os_1.default.homedir(), 'Downloads', 'Screenshots'), // Use Downloads subfolder (avoids Documents FSEvents issue)
|
|
25
|
+
videos: path_1.default.join(os_1.default.homedir(), 'Movies'),
|
|
26
|
+
music: path_1.default.join(os_1.default.homedir(), 'Music'),
|
|
27
|
+
home: os_1.default.homedir(),
|
|
28
|
+
},
|
|
29
|
+
settings: {
|
|
30
|
+
downloadsMode: 'nested',
|
|
31
|
+
screenshotMode: 'metadata',
|
|
32
|
+
},
|
|
33
|
+
version: '1.0.0',
|
|
34
|
+
};
|
|
35
|
+
async function ensureDbDir() {
|
|
36
|
+
try {
|
|
37
|
+
await promises_1.default.mkdir(DB_DIR, { recursive: true });
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Directory already exists
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function loadConfig() {
|
|
44
|
+
await ensureDbDir();
|
|
45
|
+
try {
|
|
46
|
+
const data = await promises_1.default.readFile(CONFIG_FILE, 'utf-8');
|
|
47
|
+
const parsed = JSON.parse(data);
|
|
48
|
+
// Merge with defaults to ensure all required paths and settings exist
|
|
49
|
+
return {
|
|
50
|
+
...DEFAULT_CONFIG,
|
|
51
|
+
...parsed,
|
|
52
|
+
paths: {
|
|
53
|
+
...DEFAULT_CONFIG.paths,
|
|
54
|
+
...parsed.paths,
|
|
55
|
+
},
|
|
56
|
+
settings: {
|
|
57
|
+
...DEFAULT_CONFIG.settings,
|
|
58
|
+
...parsed.settings,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Config doesn't exist, create with defaults
|
|
64
|
+
await saveConfig(DEFAULT_CONFIG);
|
|
65
|
+
return DEFAULT_CONFIG;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function saveConfig(config) {
|
|
69
|
+
await ensureDbDir();
|
|
70
|
+
await promises_1.default.writeFile(CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
71
|
+
}
|
|
72
|
+
async function getConfigValue(key) {
|
|
73
|
+
const config = await loadConfig();
|
|
74
|
+
if (key === 'downloadsMode' || key === 'screenshotMode') {
|
|
75
|
+
return config.settings[key];
|
|
76
|
+
}
|
|
77
|
+
return config.paths[key];
|
|
78
|
+
}
|
|
79
|
+
async function setConfigValue(key, value) {
|
|
80
|
+
const config = await loadConfig();
|
|
81
|
+
// Handle kebab-case to camelCase conversion for CLI args
|
|
82
|
+
const normalizedKey = key === 'downloads-mode' ? 'downloadsMode' :
|
|
83
|
+
key === 'screenshot-mode' ? 'screenshotMode' : key;
|
|
84
|
+
if (normalizedKey === 'downloadsMode') {
|
|
85
|
+
config.settings.downloadsMode = value;
|
|
86
|
+
}
|
|
87
|
+
else if (normalizedKey === 'screenshotMode') {
|
|
88
|
+
config.settings.screenshotMode = value;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
config.paths[normalizedKey] = value;
|
|
92
|
+
}
|
|
93
|
+
await saveConfig(config);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Replace template variables in a string with actual paths.
|
|
97
|
+
* Template variables are in the format {variableName}, e.g., {downloads}, {documents}
|
|
98
|
+
*/
|
|
99
|
+
function replaceTemplateVariables(template, config, metadata) {
|
|
100
|
+
let result = template;
|
|
101
|
+
// Replace path-based template variables first
|
|
102
|
+
for (const [key, value] of Object.entries(config.paths)) {
|
|
103
|
+
const placeholder = `{${key}}`;
|
|
104
|
+
result = result.replaceAll(placeholder, value);
|
|
105
|
+
}
|
|
106
|
+
// Replace metadata-based template variables if metadata is provided
|
|
107
|
+
if (metadata) {
|
|
108
|
+
result = result.replaceAll('{app}', metadata.appName ? sanitizeForPath(metadata.appName) : 'Unknown');
|
|
109
|
+
result = result.replaceAll('{domain}', metadata.domain ? sanitizeForPath(metadata.domain) : 'General');
|
|
110
|
+
}
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Sanitize a string for use in folder/filenames
|
|
115
|
+
*/
|
|
116
|
+
function sanitizeForPath(input) {
|
|
117
|
+
return input
|
|
118
|
+
.replace(/[<>:"\/\\|?*]/g, '-')
|
|
119
|
+
.replace(/\s+/g, ' ')
|
|
120
|
+
.trim()
|
|
121
|
+
.substring(0, 50);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Replace template variables in rule trigger and action configs
|
|
125
|
+
*/
|
|
126
|
+
function replaceVariablesInObject(obj, config) {
|
|
127
|
+
const result = {};
|
|
128
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
129
|
+
if (typeof value === 'string') {
|
|
130
|
+
result[key] = replaceTemplateVariables(value, config);
|
|
131
|
+
}
|
|
132
|
+
else if (typeof value === 'object' && value !== null) {
|
|
133
|
+
result[key] = replaceVariablesInObject(value, config);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
result[key] = value;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
function listConfigPaths(config) {
|
|
142
|
+
console.log('\n📁 Configured Paths:\n');
|
|
143
|
+
for (const [key, value] of Object.entries(config.paths)) {
|
|
144
|
+
console.log(` {${key}}: ${value}`);
|
|
145
|
+
}
|
|
146
|
+
// Show organizer modes
|
|
147
|
+
console.log(`\n📊 Downloads organizer mode: ${config.settings.downloadsMode}`);
|
|
148
|
+
console.log(' (Change with: flowsquire config --downloads-mode nested|system)');
|
|
149
|
+
console.log(`\n📸 Screenshot organizer mode: ${config.settings.screenshotMode}`);
|
|
150
|
+
console.log(' (Change with: flowsquire config --screenshot-mode metadata|by-app|by-date)');
|
|
151
|
+
console.log(' ⚠️ Mode changed? Delete rules and run "flowsquire init" to apply');
|
|
152
|
+
console.log('');
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Rule, Condition, Action, ActionResult } from '../types/index.js';
|
|
2
|
+
export declare function evaluateConditions(conditions: Condition[], filePath: string): boolean;
|
|
3
|
+
export declare function findMatchingRules(rules: Rule[], filePath: string): Rule[];
|
|
4
|
+
export declare function executeActions(actions: Action[], sourcePath: string, dryRun?: boolean, metadata?: {
|
|
5
|
+
appName?: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
}): Promise<ActionResult[]>;
|
|
8
|
+
//# sourceMappingURL=rule-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/core/rule-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAW,MAAM,mBAAmB,CAAC;AAiBnF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErF;AA8DD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,CAKzE;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,OAAe,EACvB,QAAQ,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,YAAY,EAAE,CAAC,CAczB"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.evaluateConditions = evaluateConditions;
|
|
7
|
+
exports.findMatchingRules = findMatchingRules;
|
|
8
|
+
exports.executeActions = executeActions;
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const index_js_1 = require("../config/index.js");
|
|
13
|
+
// Get the appropriate Ghostscript command for the current platform
|
|
14
|
+
function getGhostscriptCommand() {
|
|
15
|
+
const platform = os_1.default.platform();
|
|
16
|
+
if (platform === 'win32') {
|
|
17
|
+
// Windows uses gswin64c (64-bit) or gswin32c (32-bit)
|
|
18
|
+
return 'gswin64c';
|
|
19
|
+
}
|
|
20
|
+
// macOS and Linux use 'gs'
|
|
21
|
+
return 'gs';
|
|
22
|
+
}
|
|
23
|
+
function evaluateConditions(conditions, filePath) {
|
|
24
|
+
return conditions.every(condition => evaluateCondition(condition, filePath));
|
|
25
|
+
}
|
|
26
|
+
function evaluateCondition(condition, filePath) {
|
|
27
|
+
const fileName = path_1.default.basename(filePath);
|
|
28
|
+
const fileNameWithoutExt = path_1.default.basename(filePath, path_1.default.extname(filePath));
|
|
29
|
+
const ext = path_1.default.extname(filePath).toLowerCase();
|
|
30
|
+
const conditionValue = String(condition.value).toLowerCase();
|
|
31
|
+
switch (condition.type) {
|
|
32
|
+
case 'extension':
|
|
33
|
+
// Remove leading dot if present for comparison
|
|
34
|
+
const cleanExt = ext.startsWith('.') ? ext.slice(1) : ext;
|
|
35
|
+
const result = matchValue(cleanExt, condition);
|
|
36
|
+
return result;
|
|
37
|
+
case 'name_pattern':
|
|
38
|
+
return matchValue(fileName, condition);
|
|
39
|
+
case 'name_contains':
|
|
40
|
+
return fileNameWithoutExt.toLowerCase().includes(conditionValue);
|
|
41
|
+
case 'name_starts_with':
|
|
42
|
+
return fileNameWithoutExt.toLowerCase().startsWith(conditionValue);
|
|
43
|
+
case 'name_ends_with':
|
|
44
|
+
return fileNameWithoutExt.toLowerCase().endsWith(conditionValue);
|
|
45
|
+
case 'size_greater_than_mb':
|
|
46
|
+
try {
|
|
47
|
+
const stats = require('fs').statSync(filePath);
|
|
48
|
+
const sizeMB = stats.size / (1024 * 1024);
|
|
49
|
+
return sizeMB > Number(conditionValue);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
case 'path':
|
|
55
|
+
return matchValue(filePath, condition);
|
|
56
|
+
default:
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function matchValue(value, condition) {
|
|
61
|
+
const testValue = value.toLowerCase();
|
|
62
|
+
switch (condition.operator) {
|
|
63
|
+
case 'equals':
|
|
64
|
+
return testValue === String(condition.value).toLowerCase();
|
|
65
|
+
case 'contains':
|
|
66
|
+
return testValue.includes(String(condition.value).toLowerCase());
|
|
67
|
+
case 'matches':
|
|
68
|
+
try {
|
|
69
|
+
const regex = new RegExp(String(condition.value), 'i');
|
|
70
|
+
return regex.test(testValue);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
case 'in':
|
|
76
|
+
if (Array.isArray(condition.value)) {
|
|
77
|
+
return condition.value.some(v => v.toLowerCase() === testValue);
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
default:
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function findMatchingRules(rules, filePath) {
|
|
85
|
+
// Sort by priority (highest first), then filter matching rules
|
|
86
|
+
return rules
|
|
87
|
+
.sort((a, b) => (b.priority || 0) - (a.priority || 0))
|
|
88
|
+
.filter(rule => evaluateConditions(rule.conditions, filePath));
|
|
89
|
+
}
|
|
90
|
+
async function executeActions(actions, sourcePath, dryRun = false, metadata) {
|
|
91
|
+
const results = [];
|
|
92
|
+
let currentPath = sourcePath;
|
|
93
|
+
for (const action of actions) {
|
|
94
|
+
const result = await executeAction(action, currentPath, dryRun, metadata);
|
|
95
|
+
results.push(result);
|
|
96
|
+
if (result.status === 'success' && result.destinationPath) {
|
|
97
|
+
currentPath = result.destinationPath;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return results;
|
|
101
|
+
}
|
|
102
|
+
async function executeAction(action, sourcePath, dryRun, metadata) {
|
|
103
|
+
const fs = await import('fs/promises');
|
|
104
|
+
const path = await import('path');
|
|
105
|
+
try {
|
|
106
|
+
// Load config and replace template variables in destination
|
|
107
|
+
const config = await (0, index_js_1.loadConfig)();
|
|
108
|
+
const fileName = path.basename(sourcePath);
|
|
109
|
+
// Pass metadata to replaceTemplateVariables to handle {app} and {domain}
|
|
110
|
+
let destinationPath = (0, index_js_1.replaceTemplateVariables)(action.config.destination, config, metadata);
|
|
111
|
+
// If destination is a directory (no extension) AND no pattern is provided, append the filename
|
|
112
|
+
// Don't append if pattern is present - applyPattern will handle the full path
|
|
113
|
+
if (!path.extname(destinationPath) && !action.config.pattern) {
|
|
114
|
+
destinationPath = path.join(destinationPath, fileName);
|
|
115
|
+
}
|
|
116
|
+
// Apply pattern if provided (pattern replaces the filename)
|
|
117
|
+
if (action.config.pattern) {
|
|
118
|
+
destinationPath = applyPattern(destinationPath, action.config.pattern, sourcePath, metadata);
|
|
119
|
+
}
|
|
120
|
+
// Ensure destination directory exists
|
|
121
|
+
if (action.config.createDirs !== false) {
|
|
122
|
+
const destDir = path.dirname(destinationPath);
|
|
123
|
+
if (!dryRun) {
|
|
124
|
+
try {
|
|
125
|
+
await fs.mkdir(destDir, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
// Ignore EEXIST errors (directory already exists)
|
|
129
|
+
if (err.code !== 'EEXIST') {
|
|
130
|
+
throw err;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Handle filename collisions
|
|
136
|
+
destinationPath = await resolveCollision(destinationPath, dryRun);
|
|
137
|
+
if (!dryRun) {
|
|
138
|
+
switch (action.type) {
|
|
139
|
+
case 'move':
|
|
140
|
+
await fs.rename(sourcePath, destinationPath);
|
|
141
|
+
break;
|
|
142
|
+
case 'copy':
|
|
143
|
+
await fs.copyFile(sourcePath, destinationPath);
|
|
144
|
+
break;
|
|
145
|
+
case 'rename':
|
|
146
|
+
await fs.rename(sourcePath, destinationPath);
|
|
147
|
+
break;
|
|
148
|
+
case 'compress':
|
|
149
|
+
await compressPdf(sourcePath, destinationPath, action.config.compress?.quality || 'medium');
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
action,
|
|
155
|
+
status: 'success',
|
|
156
|
+
sourcePath,
|
|
157
|
+
destinationPath,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
return {
|
|
162
|
+
action,
|
|
163
|
+
status: 'failed',
|
|
164
|
+
sourcePath,
|
|
165
|
+
error: error instanceof Error ? error.message : String(error),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function applyPattern(destination, pattern, sourcePath, metadata) {
|
|
170
|
+
const path = require('path');
|
|
171
|
+
const now = new Date();
|
|
172
|
+
const originalFileName = path.basename(sourcePath);
|
|
173
|
+
const fileNameWithoutExt = path.basename(sourcePath, path.extname(sourcePath));
|
|
174
|
+
const ext = path.extname(sourcePath);
|
|
175
|
+
// Check if destination is a file path (single segment with extension)
|
|
176
|
+
// vs a directory path (multiple segments like {app}/{domain})
|
|
177
|
+
// This fixes the bug where domains like 'aistudio.google.com' were treated as filenames
|
|
178
|
+
const pathParts = destination.split(path.sep);
|
|
179
|
+
const destHasFilename = pathParts.length === 1 && path.extname(destination).length > 0;
|
|
180
|
+
// Get the directory where the file should go
|
|
181
|
+
// If destination has a filename, get its directory
|
|
182
|
+
// If destination is a directory path, use it as-is
|
|
183
|
+
const destDir = destHasFilename ? path.dirname(destination) : destination;
|
|
184
|
+
const monthNames = [
|
|
185
|
+
'January', 'February', 'March', 'April', 'May', 'June',
|
|
186
|
+
'July', 'August', 'September', 'October', 'November', 'December'
|
|
187
|
+
];
|
|
188
|
+
const placeholders = {
|
|
189
|
+
'{filename}': fileNameWithoutExt,
|
|
190
|
+
'{ext}': ext,
|
|
191
|
+
'{YYYY}': now.getFullYear().toString(),
|
|
192
|
+
'{MM}': String(now.getMonth() + 1).padStart(2, '0'),
|
|
193
|
+
'{Month}': monthNames[now.getMonth()],
|
|
194
|
+
'{DD}': String(now.getDate()).padStart(2, '0'),
|
|
195
|
+
'{HH}': String(now.getHours()).padStart(2, '0'),
|
|
196
|
+
'{mm}': String(now.getMinutes()).padStart(2, '0'),
|
|
197
|
+
'{ss}': String(now.getSeconds()).padStart(2, '0'),
|
|
198
|
+
};
|
|
199
|
+
let result = pattern;
|
|
200
|
+
for (const [key, value] of Object.entries(placeholders)) {
|
|
201
|
+
result = result.replaceAll(key, value);
|
|
202
|
+
}
|
|
203
|
+
// If result already has extension, don't add another one
|
|
204
|
+
if (!result.endsWith(ext)) {
|
|
205
|
+
result = result + ext;
|
|
206
|
+
}
|
|
207
|
+
// Join with the destination directory
|
|
208
|
+
return path.join(destDir, result);
|
|
209
|
+
}
|
|
210
|
+
async function resolveCollision(filePath, dryRun) {
|
|
211
|
+
const fs = await import('fs/promises');
|
|
212
|
+
const path = await import('path');
|
|
213
|
+
if (dryRun) {
|
|
214
|
+
return filePath;
|
|
215
|
+
}
|
|
216
|
+
try {
|
|
217
|
+
await fs.access(filePath);
|
|
218
|
+
// File exists, need to resolve collision
|
|
219
|
+
const dir = path.dirname(filePath);
|
|
220
|
+
const ext = path.extname(filePath);
|
|
221
|
+
const base = path.basename(filePath, ext);
|
|
222
|
+
let counter = 1;
|
|
223
|
+
let newPath = filePath;
|
|
224
|
+
while (true) {
|
|
225
|
+
newPath = path.join(dir, `${base}-${counter}${ext}`);
|
|
226
|
+
try {
|
|
227
|
+
await fs.access(newPath);
|
|
228
|
+
counter++;
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// File doesn't exist, we can use this path
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return newPath;
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// File doesn't exist, use original path
|
|
239
|
+
return filePath;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
async function compressPdf(sourcePath, destinationPath, quality) {
|
|
243
|
+
const fs = await import('fs/promises');
|
|
244
|
+
// Check if source file exists
|
|
245
|
+
try {
|
|
246
|
+
await fs.access(sourcePath);
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
throw new Error(`Source file not found: ${sourcePath}`);
|
|
250
|
+
}
|
|
251
|
+
// Determine quality settings for Ghostscript
|
|
252
|
+
let pdfSettings = '/ebook'; // Medium quality default
|
|
253
|
+
if (quality === 'low') {
|
|
254
|
+
pdfSettings = '/screen'; // Lowest quality, smallest size
|
|
255
|
+
}
|
|
256
|
+
else if (quality === 'high') {
|
|
257
|
+
pdfSettings = '/printer'; // Higher quality
|
|
258
|
+
}
|
|
259
|
+
// Use Ghostscript for compression
|
|
260
|
+
return new Promise((resolve, reject) => {
|
|
261
|
+
const gsCommand = getGhostscriptCommand();
|
|
262
|
+
const gs = (0, child_process_1.spawn)(gsCommand, [
|
|
263
|
+
'-sDEVICE=pdfwrite',
|
|
264
|
+
'-dCompatibilityLevel=1.4',
|
|
265
|
+
`-dPDFSETTINGS=${pdfSettings}`,
|
|
266
|
+
'-dNOPAUSE',
|
|
267
|
+
'-dQUIET',
|
|
268
|
+
'-dBATCH',
|
|
269
|
+
`-sOutputFile=${destinationPath}`,
|
|
270
|
+
sourcePath
|
|
271
|
+
]);
|
|
272
|
+
let errorOutput = '';
|
|
273
|
+
gs.stderr.on('data', (data) => {
|
|
274
|
+
errorOutput += data.toString();
|
|
275
|
+
});
|
|
276
|
+
gs.on('close', (code) => {
|
|
277
|
+
if (code === 0) {
|
|
278
|
+
resolve();
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
reject(new Error(`Ghostscript failed with code ${code}: ${errorOutput}`));
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
gs.on('error', (err) => {
|
|
285
|
+
reject(new Error(`Failed to spawn Ghostscript: ${err.message}. Please install Ghostscript (brew install ghostscript)`));
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=rule-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../src/core/rule-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ScreenshotMetadata {
|
|
2
|
+
appName: string;
|
|
3
|
+
windowTitle: string;
|
|
4
|
+
timestamp: Date;
|
|
5
|
+
domain?: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Capture screenshot metadata by querying macOS for foreground app and window
|
|
10
|
+
*/
|
|
11
|
+
export declare function captureScreenshotMetadata(): Promise<ScreenshotMetadata | null>;
|
|
12
|
+
/**
|
|
13
|
+
* Sanitize a string for use in folder/filenames
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitizeForPath(input: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Generate organized filename from metadata
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateScreenshotFilename(originalFilename: string, metadata: ScreenshotMetadata): string;
|
|
20
|
+
/**
|
|
21
|
+
* Generate folder path from metadata
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateScreenshotFolderPath(metadata: ScreenshotMetadata): string;
|
|
24
|
+
//# sourceMappingURL=screenshot-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-metadata.d.ts","sourceRoot":"","sources":["../../src/core/screenshot-metadata.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA+CpF;AA+FD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAQjF"}
|