@cardmagic/notes 1.1.0 → 1.3.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 +2 -2
- package/dist/applescript.d.ts +28 -0
- package/dist/applescript.d.ts.map +1 -1
- package/dist/applescript.js +114 -40
- package/dist/applescript.js.map +1 -1
- package/dist/applescript.test.d.ts +2 -0
- package/dist/applescript.test.d.ts.map +1 -0
- package/dist/applescript.test.js +88 -0
- package/dist/applescript.test.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +53 -2
- package/dist/cli.js.map +1 -1
- package/dist/formatter.js +4 -4
- package/dist/formatter.js.map +1 -1
- package/dist/formatter.test.d.ts +2 -0
- package/dist/formatter.test.d.ts.map +1 -0
- package/dist/formatter.test.js +206 -0
- package/dist/formatter.test.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/indexer.d.ts +4 -1
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +3 -3
- package/dist/indexer.js.map +1 -1
- package/dist/indexer.test.d.ts +2 -0
- package/dist/indexer.test.d.ts.map +1 -0
- package/dist/indexer.test.js +158 -0
- package/dist/indexer.test.js.map +1 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +62 -1
- package/dist/mcp.js.map +1 -1
- package/dist/searcher.js.map +1 -1
- package/dist/types.test.d.ts +2 -0
- package/dist/types.test.d.ts.map +1 -0
- package/dist/types.test.js +46 -0
- package/dist/types.test.js.map +1 -0
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Install as a plugin to get skills (auto-invoked) and slash commands:
|
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
# Add the marketplace
|
|
35
|
-
claude plugin marketplace add cardmagic/
|
|
35
|
+
claude plugin marketplace add cardmagic/ai-marketplace
|
|
36
36
|
|
|
37
37
|
# Install the plugin
|
|
38
38
|
claude plugin install notes@cardmagic
|
|
@@ -65,7 +65,7 @@ cd notes
|
|
|
65
65
|
make install
|
|
66
66
|
|
|
67
67
|
# Then add as plugin OR MCP server:
|
|
68
|
-
claude plugin marketplace add cardmagic/
|
|
68
|
+
claude plugin marketplace add cardmagic/ai-marketplace
|
|
69
69
|
claude plugin install notes@cardmagic
|
|
70
70
|
# OR
|
|
71
71
|
claude mcp add --transport stdio notes -- notes --mcp
|
package/dist/applescript.d.ts
CHANGED
|
@@ -12,7 +12,35 @@ export interface DeleteNoteResult {
|
|
|
12
12
|
success: boolean;
|
|
13
13
|
name: string;
|
|
14
14
|
}
|
|
15
|
+
export interface EditNoteOptions {
|
|
16
|
+
title: string;
|
|
17
|
+
body: string;
|
|
18
|
+
folder?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface EditNoteResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
name: string;
|
|
23
|
+
folder: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Escapes a string for safe use in AppleScript string literals.
|
|
27
|
+
* Handles backslashes, quotes, newlines, and control characters.
|
|
28
|
+
*/
|
|
29
|
+
export declare function escapeAppleScript(str: string): string;
|
|
30
|
+
export declare function escapeHtml(str: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Builds an AppleScript that finds a note by title and performs an operation on it.
|
|
33
|
+
* Handles folder scoping when provided.
|
|
34
|
+
*
|
|
35
|
+
* @param title - The note title to search for
|
|
36
|
+
* @param operation - AppleScript code to execute on the found note. The note is available
|
|
37
|
+
* as the `targetNote` variable. Should include a `return` statement.
|
|
38
|
+
* Example: `delete targetNote\nreturn "deleted"`
|
|
39
|
+
* @param folder - Optional folder name to scope the search
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildNoteOperationScript(title: string, operation: string, folder?: string): string;
|
|
15
42
|
export declare function createNote(options: CreateNoteOptions): CreateNoteResult;
|
|
16
43
|
export declare function deleteNote(title: string, folder?: string): DeleteNoteResult;
|
|
44
|
+
export declare function editNote(options: EditNoteOptions): EditNoteResult;
|
|
17
45
|
export declare function listNoteFolders(): string[];
|
|
18
46
|
//# sourceMappingURL=applescript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applescript.d.ts","sourceRoot":"","sources":["../src/applescript.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"applescript.d.ts","sourceRoot":"","sources":["../src/applescript.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9C;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CA4BR;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CA8BvE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA2B3E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAmCjE;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAmB1C"}
|
package/dist/applescript.js
CHANGED
|
@@ -1,6 +1,79 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Escapes a string for safe use in AppleScript string literals.
|
|
4
|
+
* Handles backslashes, quotes, newlines, and control characters.
|
|
5
|
+
*/
|
|
6
|
+
export function escapeAppleScript(str) {
|
|
7
|
+
return str
|
|
8
|
+
.replace(/\\/g, '\\\\') // Backslash must be first
|
|
9
|
+
.replace(/"/g, '\\"') // Double quotes
|
|
10
|
+
.replace(/\n/g, '\\n') // Newlines
|
|
11
|
+
.replace(/\r/g, '\\r') // Carriage returns
|
|
12
|
+
.replace(/\t/g, '\\t') // Tabs
|
|
13
|
+
.replace(/[\x00-\x08\x0B-\x0C\x0E-\x1F]/g, ''); // Strip other control chars
|
|
14
|
+
}
|
|
15
|
+
export function escapeHtml(str) {
|
|
16
|
+
return str
|
|
17
|
+
.replace(/&/g, '&')
|
|
18
|
+
.replace(/</g, '<')
|
|
19
|
+
.replace(/>/g, '>')
|
|
20
|
+
.replace(/"/g, '"')
|
|
21
|
+
.replace(/'/g, ''');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Executes an AppleScript by passing it via stdin to avoid shell injection.
|
|
25
|
+
* This is more secure than using -e flag with shell escaping.
|
|
26
|
+
*
|
|
27
|
+
* @param script - The complete AppleScript to execute
|
|
28
|
+
* @returns The output from the script
|
|
29
|
+
* @throws Error if execution fails
|
|
30
|
+
*/
|
|
31
|
+
function executeAppleScript(script) {
|
|
32
|
+
return execSync('osascript -', {
|
|
33
|
+
input: script,
|
|
34
|
+
encoding: 'utf-8',
|
|
35
|
+
timeout: 30000,
|
|
36
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB for large note bodies
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Builds an AppleScript that finds a note by title and performs an operation on it.
|
|
41
|
+
* Handles folder scoping when provided.
|
|
42
|
+
*
|
|
43
|
+
* @param title - The note title to search for
|
|
44
|
+
* @param operation - AppleScript code to execute on the found note. The note is available
|
|
45
|
+
* as the `targetNote` variable. Should include a `return` statement.
|
|
46
|
+
* Example: `delete targetNote\nreturn "deleted"`
|
|
47
|
+
* @param folder - Optional folder name to scope the search
|
|
48
|
+
*/
|
|
49
|
+
export function buildNoteOperationScript(title, operation, folder) {
|
|
50
|
+
const escapedTitle = escapeAppleScript(title);
|
|
51
|
+
if (folder) {
|
|
52
|
+
const escapedFolder = escapeAppleScript(folder);
|
|
53
|
+
return `
|
|
54
|
+
tell application "Notes"
|
|
55
|
+
set targetFolder to folder "${escapedFolder}"
|
|
56
|
+
set matchingNotes to notes of targetFolder whose name is "${escapedTitle}"
|
|
57
|
+
if (count of matchingNotes) is 0 then
|
|
58
|
+
error "Note not found"
|
|
59
|
+
end if
|
|
60
|
+
set targetNote to item 1 of matchingNotes
|
|
61
|
+
${operation}
|
|
62
|
+
end tell
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return `
|
|
67
|
+
tell application "Notes"
|
|
68
|
+
set matchingNotes to notes whose name is "${escapedTitle}"
|
|
69
|
+
if (count of matchingNotes) is 0 then
|
|
70
|
+
error "Note not found"
|
|
71
|
+
end if
|
|
72
|
+
set targetNote to item 1 of matchingNotes
|
|
73
|
+
${operation}
|
|
74
|
+
end tell
|
|
75
|
+
`;
|
|
76
|
+
}
|
|
4
77
|
}
|
|
5
78
|
export function createNote(options) {
|
|
6
79
|
const { title, body, folder = 'Notes' } = options;
|
|
@@ -15,10 +88,7 @@ export function createNote(options) {
|
|
|
15
88
|
end tell
|
|
16
89
|
`;
|
|
17
90
|
try {
|
|
18
|
-
const result =
|
|
19
|
-
encoding: 'utf-8',
|
|
20
|
-
timeout: 30000,
|
|
21
|
-
});
|
|
91
|
+
const result = executeAppleScript(script);
|
|
22
92
|
return {
|
|
23
93
|
success: true,
|
|
24
94
|
name: result.trim(),
|
|
@@ -35,41 +105,48 @@ export function createNote(options) {
|
|
|
35
105
|
}
|
|
36
106
|
export function deleteNote(title, folder) {
|
|
37
107
|
const escapedTitle = escapeAppleScript(title);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return "${escapedTitle}"
|
|
50
|
-
end tell
|
|
51
|
-
`;
|
|
108
|
+
const operation = `
|
|
109
|
+
delete targetNote
|
|
110
|
+
return "${escapedTitle}"
|
|
111
|
+
`;
|
|
112
|
+
const script = buildNoteOperationScript(title, operation, folder);
|
|
113
|
+
try {
|
|
114
|
+
const result = executeAppleScript(script);
|
|
115
|
+
return {
|
|
116
|
+
success: true,
|
|
117
|
+
name: result.trim(),
|
|
118
|
+
};
|
|
52
119
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
`;
|
|
120
|
+
catch (error) {
|
|
121
|
+
const message = error.message;
|
|
122
|
+
if (message.includes('Note not found')) {
|
|
123
|
+
const folderInfo = folder ? ` in folder "${folder}"` : '';
|
|
124
|
+
throw new Error(`Note "${title}" not found${folderInfo}.`);
|
|
125
|
+
}
|
|
126
|
+
if (message.includes('get folder')) {
|
|
127
|
+
throw new Error(`Folder "${folder}" not found. Use 'notes folders' to list available folders.`);
|
|
128
|
+
}
|
|
129
|
+
throw new Error(`Failed to delete note: ${message}`);
|
|
64
130
|
}
|
|
131
|
+
}
|
|
132
|
+
export function editNote(options) {
|
|
133
|
+
const { title, body, folder } = options;
|
|
134
|
+
// Apple Notes uses the first line of the body as the title, so we prepend the title
|
|
135
|
+
// as an HTML heading to preserve it when setting the body
|
|
136
|
+
const fullBody = `<h1>${escapeHtml(title)}</h1><br>${escapeHtml(body)}`;
|
|
137
|
+
const escapedBody = escapeAppleScript(fullBody);
|
|
138
|
+
const targetFolder = folder || 'Notes';
|
|
139
|
+
const operation = `
|
|
140
|
+
set body of targetNote to "${escapedBody}"
|
|
141
|
+
return name of targetNote
|
|
142
|
+
`;
|
|
143
|
+
const script = buildNoteOperationScript(title, operation, folder);
|
|
65
144
|
try {
|
|
66
|
-
const result =
|
|
67
|
-
encoding: 'utf-8',
|
|
68
|
-
timeout: 30000,
|
|
69
|
-
});
|
|
145
|
+
const result = executeAppleScript(script);
|
|
70
146
|
return {
|
|
71
147
|
success: true,
|
|
72
148
|
name: result.trim(),
|
|
149
|
+
folder: targetFolder,
|
|
73
150
|
};
|
|
74
151
|
}
|
|
75
152
|
catch (error) {
|
|
@@ -81,7 +158,7 @@ export function deleteNote(title, folder) {
|
|
|
81
158
|
if (message.includes('get folder')) {
|
|
82
159
|
throw new Error(`Folder "${folder}" not found. Use 'notes folders' to list available folders.`);
|
|
83
160
|
}
|
|
84
|
-
throw new Error(`Failed to
|
|
161
|
+
throw new Error(`Failed to edit note: ${message}`);
|
|
85
162
|
}
|
|
86
163
|
}
|
|
87
164
|
export function listNoteFolders() {
|
|
@@ -96,10 +173,7 @@ export function listNoteFolders() {
|
|
|
96
173
|
end tell
|
|
97
174
|
`;
|
|
98
175
|
try {
|
|
99
|
-
const result =
|
|
100
|
-
encoding: 'utf-8',
|
|
101
|
-
timeout: 30000,
|
|
102
|
-
});
|
|
176
|
+
const result = executeAppleScript(script);
|
|
103
177
|
return result.trim().split('\n').filter(Boolean);
|
|
104
178
|
}
|
|
105
179
|
catch (error) {
|
package/dist/applescript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applescript.js","sourceRoot":"","sources":["../src/applescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"applescript.js","sourceRoot":"","sources":["../src/applescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applescript.test.d.ts","sourceRoot":"","sources":["../src/applescript.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { escapeAppleScript, escapeHtml, buildNoteOperationScript } from './applescript.js';
|
|
3
|
+
describe('escapeAppleScript', () => {
|
|
4
|
+
it('escapes backslashes', () => {
|
|
5
|
+
expect(escapeAppleScript('a\\b')).toBe('a\\\\b');
|
|
6
|
+
});
|
|
7
|
+
it('escapes double quotes', () => {
|
|
8
|
+
expect(escapeAppleScript('say "hello"')).toBe('say \\"hello\\"');
|
|
9
|
+
});
|
|
10
|
+
it('escapes newlines', () => {
|
|
11
|
+
expect(escapeAppleScript('line1\nline2')).toBe('line1\\nline2');
|
|
12
|
+
});
|
|
13
|
+
it('escapes carriage returns', () => {
|
|
14
|
+
expect(escapeAppleScript('line1\rline2')).toBe('line1\\rline2');
|
|
15
|
+
});
|
|
16
|
+
it('escapes tabs', () => {
|
|
17
|
+
expect(escapeAppleScript('col1\tcol2')).toBe('col1\\tcol2');
|
|
18
|
+
});
|
|
19
|
+
it('strips control characters', () => {
|
|
20
|
+
expect(escapeAppleScript('hello\x01\x02world')).toBe('helloworld');
|
|
21
|
+
});
|
|
22
|
+
it('handles combined escaping', () => {
|
|
23
|
+
const input = 'He said "hello\\world"\nEnd';
|
|
24
|
+
const expected = 'He said \\"hello\\\\world\\"\\nEnd';
|
|
25
|
+
expect(escapeAppleScript(input)).toBe(expected);
|
|
26
|
+
});
|
|
27
|
+
it('passes through normal strings unchanged', () => {
|
|
28
|
+
expect(escapeAppleScript('Hello, World!')).toBe('Hello, World!');
|
|
29
|
+
});
|
|
30
|
+
it('handles empty strings', () => {
|
|
31
|
+
expect(escapeAppleScript('')).toBe('');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe('escapeHtml', () => {
|
|
35
|
+
it('escapes ampersands', () => {
|
|
36
|
+
expect(escapeHtml('a&b')).toBe('a&b');
|
|
37
|
+
});
|
|
38
|
+
it('escapes less-than signs', () => {
|
|
39
|
+
expect(escapeHtml('a<b')).toBe('a<b');
|
|
40
|
+
});
|
|
41
|
+
it('escapes greater-than signs', () => {
|
|
42
|
+
expect(escapeHtml('a>b')).toBe('a>b');
|
|
43
|
+
});
|
|
44
|
+
it('escapes double quotes', () => {
|
|
45
|
+
expect(escapeHtml('a"b')).toBe('a"b');
|
|
46
|
+
});
|
|
47
|
+
it('escapes single quotes', () => {
|
|
48
|
+
expect(escapeHtml("a'b")).toBe('a'b');
|
|
49
|
+
});
|
|
50
|
+
it('escapes all HTML entities in a complex string', () => {
|
|
51
|
+
expect(escapeHtml('<script>alert("xss")</script>')).toBe('<script>alert("xss")</script>');
|
|
52
|
+
});
|
|
53
|
+
it('passes through normal strings unchanged', () => {
|
|
54
|
+
expect(escapeHtml('Hello, World!')).toBe('Hello, World!');
|
|
55
|
+
});
|
|
56
|
+
it('handles empty strings', () => {
|
|
57
|
+
expect(escapeHtml('')).toBe('');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('buildNoteOperationScript', () => {
|
|
61
|
+
it('generates script without folder scope', () => {
|
|
62
|
+
const script = buildNoteOperationScript('My Note', 'delete targetNote');
|
|
63
|
+
expect(script).toContain('tell application "Notes"');
|
|
64
|
+
expect(script).toContain('whose name is "My Note"');
|
|
65
|
+
expect(script).toContain('delete targetNote');
|
|
66
|
+
expect(script).not.toContain('set targetFolder');
|
|
67
|
+
});
|
|
68
|
+
it('generates script with folder scope', () => {
|
|
69
|
+
const script = buildNoteOperationScript('My Note', 'delete targetNote', 'Work');
|
|
70
|
+
expect(script).toContain('set targetFolder to folder "Work"');
|
|
71
|
+
expect(script).toContain('notes of targetFolder');
|
|
72
|
+
expect(script).toContain('whose name is "My Note"');
|
|
73
|
+
});
|
|
74
|
+
it('escapes title in the script', () => {
|
|
75
|
+
const script = buildNoteOperationScript('Note "with quotes"', 'delete targetNote');
|
|
76
|
+
expect(script).toContain('whose name is "Note \\"with quotes\\""');
|
|
77
|
+
});
|
|
78
|
+
it('escapes folder name in the script', () => {
|
|
79
|
+
const script = buildNoteOperationScript('Test', 'delete targetNote', 'My "Folder"');
|
|
80
|
+
expect(script).toContain('folder "My \\"Folder\\""');
|
|
81
|
+
});
|
|
82
|
+
it('includes error handling for note not found', () => {
|
|
83
|
+
const script = buildNoteOperationScript('Test', 'delete targetNote');
|
|
84
|
+
expect(script).toContain('count of matchingNotes');
|
|
85
|
+
expect(script).toContain('error "Note not found"');
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=applescript.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applescript.test.js","sourceRoot":"","sources":["../src/applescript.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAyRA,wBAAgB,MAAM,IAAI,IAAI,CAE7B"}
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-
|
|
|
7
7
|
import { buildIndex, updateIndex, indexNeedsRebuild } from './indexer.js';
|
|
8
8
|
import { searchNotes, getRecentNotes, getNoteById, getNotesInFolder, listFolders, getNoteStats, closeConnections, } from './searcher.js';
|
|
9
9
|
import { formatSearchResults, formatNoteList, formatFolderList, formatStats, formatIndexProgress, formatNote, } from './formatter.js';
|
|
10
|
-
import { createNote, deleteNote } from './applescript.js';
|
|
10
|
+
import { createNote, deleteNote, editNote } from './applescript.js';
|
|
11
11
|
const program = new Command();
|
|
12
12
|
program
|
|
13
13
|
.name('notes')
|
|
@@ -55,7 +55,7 @@ program
|
|
|
55
55
|
});
|
|
56
56
|
program
|
|
57
57
|
.command('read <id>')
|
|
58
|
-
.description('Read a note by ID')
|
|
58
|
+
.description('Read a note by ID (shown in search/recent output)')
|
|
59
59
|
.action(async (id) => {
|
|
60
60
|
try {
|
|
61
61
|
const noteId = parseInt(id, 10);
|
|
@@ -208,6 +208,57 @@ program
|
|
|
208
208
|
process.exit(1);
|
|
209
209
|
}
|
|
210
210
|
});
|
|
211
|
+
program
|
|
212
|
+
.command('edit [id]')
|
|
213
|
+
.description('Edit an existing note by ID or title (ID takes precedence if both provided)')
|
|
214
|
+
.option('-t, --title <name>', 'Edit by title instead of ID')
|
|
215
|
+
.option('-b, --body <text>', 'New body content')
|
|
216
|
+
.option('-f, --folder <name>', 'Folder containing the note (for disambiguation)')
|
|
217
|
+
.action(async (id, options) => {
|
|
218
|
+
try {
|
|
219
|
+
if (!options.body) {
|
|
220
|
+
console.error('Error: --body is required');
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
if (!id && !options.title) {
|
|
224
|
+
console.error('Error: Either <id> or --title is required');
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
let title;
|
|
228
|
+
let folder = options.folder;
|
|
229
|
+
// ID takes precedence if both are provided
|
|
230
|
+
if (id) {
|
|
231
|
+
const noteId = parseInt(id, 10);
|
|
232
|
+
if (isNaN(noteId)) {
|
|
233
|
+
console.error('Invalid note ID');
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
const note = await getNoteById(noteId);
|
|
237
|
+
if (!note) {
|
|
238
|
+
console.error('Note not found');
|
|
239
|
+
process.exit(1);
|
|
240
|
+
}
|
|
241
|
+
title = note.title;
|
|
242
|
+
folder = folder || note.folder;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
title = options.title;
|
|
246
|
+
}
|
|
247
|
+
const result = editNote({
|
|
248
|
+
title,
|
|
249
|
+
body: options.body,
|
|
250
|
+
folder,
|
|
251
|
+
});
|
|
252
|
+
console.log(`Updated note "${result.name}" in folder "${result.folder}"`);
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
console.error('Error:', error.message);
|
|
256
|
+
process.exit(1);
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
closeConnections();
|
|
260
|
+
}
|
|
261
|
+
});
|
|
211
262
|
export function runCli() {
|
|
212
263
|
program.parse(process.argv);
|
|
213
264
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/formatter.js
CHANGED
|
@@ -17,8 +17,8 @@ export function formatNote(note, showBody = false) {
|
|
|
17
17
|
const titlePrefix = note.isPinned ? chalk.yellow('📌 ') : '';
|
|
18
18
|
const lockSuffix = note.isLocked ? chalk.red(' 🔒') : '';
|
|
19
19
|
lines.push(titlePrefix + chalk.bold.cyan(note.title || 'Untitled') + lockSuffix);
|
|
20
|
-
// Folder
|
|
21
|
-
lines.push(chalk.dim(`📁 ${note.folder}`));
|
|
20
|
+
// Folder and ID
|
|
21
|
+
lines.push(chalk.dim(`📁 ${note.folder} | ID: ${note.id}`));
|
|
22
22
|
// Snippet
|
|
23
23
|
if (note.snippet) {
|
|
24
24
|
lines.push(chalk.gray(note.snippet));
|
|
@@ -39,8 +39,8 @@ export function formatSearchResult(result, query) {
|
|
|
39
39
|
const lockSuffix = result.isLocked ? chalk.red(' 🔒') : '';
|
|
40
40
|
const highlightedTitle = highlightMatches(result.title || 'Untitled', query);
|
|
41
41
|
lines.push(chalk.green('▶ ') + titlePrefix + chalk.bold.cyan(highlightedTitle) + lockSuffix);
|
|
42
|
-
// Folder
|
|
43
|
-
lines.push(chalk.dim(` 📁 ${result.folder}`));
|
|
42
|
+
// Folder and ID
|
|
43
|
+
lines.push(chalk.dim(` 📁 ${result.folder} | ID: ${result.id}`));
|
|
44
44
|
// Highlighted snippet
|
|
45
45
|
if (result.snippet) {
|
|
46
46
|
const highlightedSnippet = highlightMatches(result.snippet, query);
|
package/dist/formatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,UAAU,UAAU,CAAC,aAAqB;IAC9C,IAAI,CAAC,aAAa,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QAChE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAiB,EAAE,QAAQ,GAAG,KAAK;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;IAEjF,
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.test.d.ts","sourceRoot":"","sources":["../src/formatter.test.ts"],"names":[],"mappings":""}
|