@noteplanco/noteplan-mcp 1.1.6 → 1.1.7
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/dist/noteplan/file-writer.d.ts.map +1 -1
- package/dist/noteplan/file-writer.js +73 -16
- package/dist/noteplan/file-writer.js.map +1 -1
- package/dist/noteplan/file-writer.test.d.ts +2 -0
- package/dist/noteplan/file-writer.test.d.ts.map +1 -0
- package/dist/noteplan/file-writer.test.js +892 -0
- package/dist/noteplan/file-writer.test.js.map +1 -0
- package/dist/noteplan/filter-store.d.ts.map +1 -1
- package/dist/noteplan/filter-store.js +13 -1
- package/dist/noteplan/filter-store.js.map +1 -1
- package/dist/noteplan/frontmatter-parser.d.ts +10 -1
- package/dist/noteplan/frontmatter-parser.d.ts.map +1 -1
- package/dist/noteplan/frontmatter-parser.js +66 -10
- package/dist/noteplan/frontmatter-parser.js.map +1 -1
- package/dist/noteplan/frontmatter-parser.test.js +484 -1
- package/dist/noteplan/frontmatter-parser.test.js.map +1 -1
- package/dist/noteplan/markdown-parser.d.ts +6 -1
- package/dist/noteplan/markdown-parser.d.ts.map +1 -1
- package/dist/noteplan/markdown-parser.js +21 -44
- package/dist/noteplan/markdown-parser.js.map +1 -1
- package/dist/noteplan/markdown-parser.test.d.ts +2 -0
- package/dist/noteplan/markdown-parser.test.d.ts.map +1 -0
- package/dist/noteplan/markdown-parser.test.js +653 -0
- package/dist/noteplan/markdown-parser.test.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +405 -205
- package/dist/server.js.map +1 -1
- package/dist/tools/attachments.d.ts +151 -0
- package/dist/tools/attachments.d.ts.map +1 -0
- package/dist/tools/attachments.js +421 -0
- package/dist/tools/attachments.js.map +1 -0
- package/dist/tools/attachments.test.d.ts +2 -0
- package/dist/tools/attachments.test.d.ts.map +1 -0
- package/dist/tools/attachments.test.js +561 -0
- package/dist/tools/attachments.test.js.map +1 -0
- package/dist/tools/calendar.d.ts +5 -5
- package/dist/tools/notes.d.ts +67 -26
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +124 -33
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/notes.test.d.ts +2 -0
- package/dist/tools/notes.test.d.ts.map +1 -0
- package/dist/tools/notes.test.js +598 -0
- package/dist/tools/notes.test.js.map +1 -0
- package/dist/tools/reminders.d.ts +4 -4
- package/dist/tools/tasks.d.ts +10 -10
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +14 -27
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/templates.d.ts +69 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +145 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/templates.test.d.ts +2 -0
- package/dist/tools/templates.test.d.ts.map +1 -0
- package/dist/tools/templates.test.js +48 -0
- package/dist/tools/templates.test.js.map +1 -0
- package/dist/tools/ui.d.ts +2 -0
- package/dist/tools/ui.d.ts.map +1 -1
- package/dist/tools/ui.js +24 -0
- package/dist/tools/ui.js.map +1 -1
- package/dist/utils/applescript.d.ts.map +1 -1
- package/dist/utils/applescript.js +21 -0
- package/dist/utils/applescript.js.map +1 -1
- package/dist/utils/confirmation-tokens.test.d.ts +2 -0
- package/dist/utils/confirmation-tokens.test.d.ts.map +1 -0
- package/dist/utils/confirmation-tokens.test.js +159 -0
- package/dist/utils/confirmation-tokens.test.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +4 -0
- package/dist/utils/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { insertContentAtPosition } from './frontmatter-parser.js';
|
|
2
|
+
import { insertContentAtPosition, parseNoteContent, serializeFrontmatter, reconstructNote, setFrontmatterProperty, removeFrontmatterProperty, deleteLines, } from './frontmatter-parser.js';
|
|
3
3
|
/**
|
|
4
4
|
* Helper: split result into lines for easier assertions.
|
|
5
5
|
* Line numbers in comments are 1-indexed to match tool convention.
|
|
@@ -109,4 +109,487 @@ describe('insertContentAtPosition – in-section', () => {
|
|
|
109
109
|
expect(resultLines[7]).toBe('**General**');
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// parseNoteContent
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
describe('parseNoteContent', () => {
|
|
116
|
+
it('parses standard frontmatter with multiple properties', () => {
|
|
117
|
+
const content = '---\ntitle: My Note\ntags: work\n---\nBody text here';
|
|
118
|
+
const result = parseNoteContent(content);
|
|
119
|
+
expect(result.frontmatter).toEqual({ title: 'My Note', tags: 'work' });
|
|
120
|
+
expect(result.body).toBe('Body text here');
|
|
121
|
+
expect(result.hasFrontmatter).toBe(true);
|
|
122
|
+
});
|
|
123
|
+
it('returns null frontmatter when no --- markers', () => {
|
|
124
|
+
const content = 'Just a plain note\nwith two lines';
|
|
125
|
+
const result = parseNoteContent(content);
|
|
126
|
+
expect(result.frontmatter).toBeNull();
|
|
127
|
+
expect(result.body).toBe(content);
|
|
128
|
+
expect(result.hasFrontmatter).toBe(false);
|
|
129
|
+
});
|
|
130
|
+
it('returns null when only opening --- with no close', () => {
|
|
131
|
+
const content = '---\ntitle: Oops\nNo closing delimiter';
|
|
132
|
+
const result = parseNoteContent(content);
|
|
133
|
+
expect(result.frontmatter).toBeNull();
|
|
134
|
+
expect(result.body).toBe(content);
|
|
135
|
+
expect(result.hasFrontmatter).toBe(false);
|
|
136
|
+
});
|
|
137
|
+
it('handles empty frontmatter block (just ---\\n---)', () => {
|
|
138
|
+
const content = '---\n---\nBody after empty frontmatter';
|
|
139
|
+
const result = parseNoteContent(content);
|
|
140
|
+
expect(result.frontmatter).toEqual({});
|
|
141
|
+
expect(result.body).toBe('Body after empty frontmatter');
|
|
142
|
+
expect(result.hasFrontmatter).toBe(true);
|
|
143
|
+
});
|
|
144
|
+
it('trims whitespace from values', () => {
|
|
145
|
+
const content = '---\ntitle: spaced out \n---\nBody';
|
|
146
|
+
const result = parseNoteContent(content);
|
|
147
|
+
expect(result.frontmatter.title).toBe('spaced out');
|
|
148
|
+
});
|
|
149
|
+
it('body does not include frontmatter', () => {
|
|
150
|
+
const content = '---\nkey: val\n---\nLine 1\nLine 2';
|
|
151
|
+
const result = parseNoteContent(content);
|
|
152
|
+
expect(result.body).toBe('Line 1\nLine 2');
|
|
153
|
+
expect(result.body).not.toContain('---');
|
|
154
|
+
expect(result.body).not.toContain('key: val');
|
|
155
|
+
});
|
|
156
|
+
it('hasFrontmatter is true when frontmatter exists', () => {
|
|
157
|
+
const withFm = '---\na: b\n---\nbody';
|
|
158
|
+
const withoutFm = 'no frontmatter';
|
|
159
|
+
expect(parseNoteContent(withFm).hasFrontmatter).toBe(true);
|
|
160
|
+
expect(parseNoteContent(withoutFm).hasFrontmatter).toBe(false);
|
|
161
|
+
});
|
|
162
|
+
it('handles content with no body after frontmatter', () => {
|
|
163
|
+
const content = '---\ntitle: Only FM\n---';
|
|
164
|
+
const result = parseNoteContent(content);
|
|
165
|
+
expect(result.frontmatter).toEqual({ title: 'Only FM' });
|
|
166
|
+
expect(result.body).toBe('');
|
|
167
|
+
expect(result.hasFrontmatter).toBe(true);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
// serializeFrontmatter
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
describe('serializeFrontmatter', () => {
|
|
174
|
+
it('serializes key-value pairs with --- delimiters', () => {
|
|
175
|
+
const result = serializeFrontmatter({ title: 'Test' });
|
|
176
|
+
expect(result).toBe('---\ntitle: Test\n---');
|
|
177
|
+
});
|
|
178
|
+
it('handles multiple properties', () => {
|
|
179
|
+
const result = serializeFrontmatter({ title: 'Test', tags: 'work' });
|
|
180
|
+
const resultLines = result.split('\n');
|
|
181
|
+
expect(resultLines[0]).toBe('---');
|
|
182
|
+
expect(resultLines).toContain('title: Test');
|
|
183
|
+
expect(resultLines).toContain('tags: work');
|
|
184
|
+
expect(resultLines[resultLines.length - 1]).toBe('---');
|
|
185
|
+
});
|
|
186
|
+
it('handles empty object', () => {
|
|
187
|
+
const result = serializeFrontmatter({});
|
|
188
|
+
expect(result).toBe('---\n---');
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
// reconstructNote
|
|
193
|
+
// ---------------------------------------------------------------------------
|
|
194
|
+
describe('reconstructNote', () => {
|
|
195
|
+
it('reconstructs note with frontmatter', () => {
|
|
196
|
+
const result = reconstructNote({
|
|
197
|
+
frontmatter: { title: 'Hello' },
|
|
198
|
+
body: 'Some body text',
|
|
199
|
+
hasFrontmatter: true,
|
|
200
|
+
});
|
|
201
|
+
expect(result).toBe('---\ntitle: Hello\n---\nSome body text');
|
|
202
|
+
});
|
|
203
|
+
it('returns body only when frontmatter is null', () => {
|
|
204
|
+
const result = reconstructNote({
|
|
205
|
+
frontmatter: null,
|
|
206
|
+
body: 'Just the body',
|
|
207
|
+
hasFrontmatter: false,
|
|
208
|
+
});
|
|
209
|
+
expect(result).toBe('Just the body');
|
|
210
|
+
});
|
|
211
|
+
it('returns body only when frontmatter is empty object', () => {
|
|
212
|
+
const result = reconstructNote({
|
|
213
|
+
frontmatter: {},
|
|
214
|
+
body: 'Body with empty fm',
|
|
215
|
+
hasFrontmatter: true,
|
|
216
|
+
});
|
|
217
|
+
expect(result).toBe('Body with empty fm');
|
|
218
|
+
});
|
|
219
|
+
it('round-trips: parse then reconstruct preserves content', () => {
|
|
220
|
+
const original = '---\ntitle: Round Trip\ntags: test\n---\n# Heading\n\nBody paragraph.';
|
|
221
|
+
const parsed = parseNoteContent(original);
|
|
222
|
+
const reconstructed = reconstructNote(parsed);
|
|
223
|
+
expect(reconstructed).toBe(original);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
// ---------------------------------------------------------------------------
|
|
227
|
+
// setFrontmatterProperty
|
|
228
|
+
// ---------------------------------------------------------------------------
|
|
229
|
+
describe('setFrontmatterProperty', () => {
|
|
230
|
+
it('sets property on note with existing frontmatter', () => {
|
|
231
|
+
const content = '---\ntitle: Existing\n---\nBody';
|
|
232
|
+
const result = setFrontmatterProperty(content, 'tags', 'work');
|
|
233
|
+
const parsed = parseNoteContent(result);
|
|
234
|
+
expect(parsed.frontmatter.tags).toBe('work');
|
|
235
|
+
expect(parsed.frontmatter.title).toBe('Existing');
|
|
236
|
+
});
|
|
237
|
+
it('creates frontmatter when none exists', () => {
|
|
238
|
+
const content = 'Plain body text';
|
|
239
|
+
const result = setFrontmatterProperty(content, 'title', 'New Title');
|
|
240
|
+
const parsed = parseNoteContent(result);
|
|
241
|
+
expect(parsed.hasFrontmatter).toBe(true);
|
|
242
|
+
expect(parsed.frontmatter.title).toBe('New Title');
|
|
243
|
+
expect(parsed.body).toBe('Plain body text');
|
|
244
|
+
});
|
|
245
|
+
it('overwrites existing property value', () => {
|
|
246
|
+
const content = '---\ntitle: Old\n---\nBody';
|
|
247
|
+
const result = setFrontmatterProperty(content, 'title', 'New');
|
|
248
|
+
const parsed = parseNoteContent(result);
|
|
249
|
+
expect(parsed.frontmatter.title).toBe('New');
|
|
250
|
+
});
|
|
251
|
+
it('preserves other properties when setting a new one', () => {
|
|
252
|
+
const content = '---\ntitle: Keep\nauthor: Alice\n---\nBody';
|
|
253
|
+
const result = setFrontmatterProperty(content, 'tags', 'added');
|
|
254
|
+
const parsed = parseNoteContent(result);
|
|
255
|
+
expect(parsed.frontmatter.title).toBe('Keep');
|
|
256
|
+
expect(parsed.frontmatter.author).toBe('Alice');
|
|
257
|
+
expect(parsed.frontmatter.tags).toBe('added');
|
|
258
|
+
});
|
|
259
|
+
it('preserves the note body', () => {
|
|
260
|
+
const content = '---\ntitle: T\n---\nLine 1\nLine 2';
|
|
261
|
+
const result = setFrontmatterProperty(content, 'key', 'val');
|
|
262
|
+
const parsed = parseNoteContent(result);
|
|
263
|
+
expect(parsed.body).toBe('Line 1\nLine 2');
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
// ---------------------------------------------------------------------------
|
|
267
|
+
// removeFrontmatterProperty
|
|
268
|
+
// ---------------------------------------------------------------------------
|
|
269
|
+
describe('removeFrontmatterProperty', () => {
|
|
270
|
+
it('removes existing property', () => {
|
|
271
|
+
const content = '---\ntitle: Remove Me\ntags: keep\n---\nBody';
|
|
272
|
+
const result = removeFrontmatterProperty(content, 'title');
|
|
273
|
+
const parsed = parseNoteContent(result);
|
|
274
|
+
expect(parsed.frontmatter.title).toBeUndefined();
|
|
275
|
+
expect(parsed.frontmatter.tags).toBe('keep');
|
|
276
|
+
});
|
|
277
|
+
it('returns unchanged content when no frontmatter', () => {
|
|
278
|
+
const content = 'No frontmatter here';
|
|
279
|
+
const result = removeFrontmatterProperty(content, 'title');
|
|
280
|
+
expect(result).toBe(content);
|
|
281
|
+
});
|
|
282
|
+
it('returns unchanged structure when property does not exist', () => {
|
|
283
|
+
const content = '---\ntitle: Keep\n---\nBody';
|
|
284
|
+
const result = removeFrontmatterProperty(content, 'nonexistent');
|
|
285
|
+
const parsed = parseNoteContent(result);
|
|
286
|
+
expect(parsed.frontmatter.title).toBe('Keep');
|
|
287
|
+
});
|
|
288
|
+
it('preserves other properties after removal', () => {
|
|
289
|
+
const content = '---\na: 1\nb: 2\nc: 3\n---\nBody';
|
|
290
|
+
const result = removeFrontmatterProperty(content, 'b');
|
|
291
|
+
const parsed = parseNoteContent(result);
|
|
292
|
+
expect(parsed.frontmatter.a).toBe('1');
|
|
293
|
+
expect(parsed.frontmatter.b).toBeUndefined();
|
|
294
|
+
expect(parsed.frontmatter.c).toBe('3');
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
// ---------------------------------------------------------------------------
|
|
298
|
+
// insertContentAtPosition – start
|
|
299
|
+
// ---------------------------------------------------------------------------
|
|
300
|
+
describe('insertContentAtPosition – start', () => {
|
|
301
|
+
it('inserts at beginning when no frontmatter', () => {
|
|
302
|
+
const content = 'Line 1\nLine 2';
|
|
303
|
+
const result = insertContentAtPosition(content, 'Inserted', {
|
|
304
|
+
position: 'start',
|
|
305
|
+
});
|
|
306
|
+
const resultLines = lines(result);
|
|
307
|
+
expect(resultLines[0]).toBe('Inserted');
|
|
308
|
+
expect(resultLines[1]).toBe('Line 1');
|
|
309
|
+
expect(resultLines[2]).toBe('Line 2');
|
|
310
|
+
});
|
|
311
|
+
it('inserts after frontmatter when present', () => {
|
|
312
|
+
const content = '---\ntitle: Test\n---\nBody line';
|
|
313
|
+
const result = insertContentAtPosition(content, 'After FM', {
|
|
314
|
+
position: 'start',
|
|
315
|
+
});
|
|
316
|
+
const resultLines = lines(result);
|
|
317
|
+
expect(resultLines[0]).toBe('---');
|
|
318
|
+
expect(resultLines[1]).toBe('title: Test');
|
|
319
|
+
expect(resultLines[2]).toBe('---');
|
|
320
|
+
expect(resultLines[3]).toBe('After FM');
|
|
321
|
+
expect(resultLines[4]).toBe('Body line');
|
|
322
|
+
});
|
|
323
|
+
it('works with empty content', () => {
|
|
324
|
+
const result = insertContentAtPosition('', 'First line', {
|
|
325
|
+
position: 'start',
|
|
326
|
+
});
|
|
327
|
+
const resultLines = lines(result);
|
|
328
|
+
expect(resultLines[0]).toBe('First line');
|
|
329
|
+
});
|
|
330
|
+
it('handles multi-line insertion at start', () => {
|
|
331
|
+
const content = 'Existing';
|
|
332
|
+
const result = insertContentAtPosition(content, 'A\nB\nC', {
|
|
333
|
+
position: 'start',
|
|
334
|
+
});
|
|
335
|
+
const resultLines = lines(result);
|
|
336
|
+
expect(resultLines[0]).toBe('A');
|
|
337
|
+
expect(resultLines[1]).toBe('B');
|
|
338
|
+
expect(resultLines[2]).toBe('C');
|
|
339
|
+
expect(resultLines[3]).toBe('Existing');
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
// ---------------------------------------------------------------------------
|
|
343
|
+
// insertContentAtPosition – end
|
|
344
|
+
// ---------------------------------------------------------------------------
|
|
345
|
+
describe('insertContentAtPosition – end', () => {
|
|
346
|
+
it('appends to end of content', () => {
|
|
347
|
+
const content = 'Line 1\nLine 2';
|
|
348
|
+
const result = insertContentAtPosition(content, 'Line 3', {
|
|
349
|
+
position: 'end',
|
|
350
|
+
});
|
|
351
|
+
expect(result).toBe('Line 1\nLine 2\nLine 3');
|
|
352
|
+
});
|
|
353
|
+
it('handles content with trailing newline', () => {
|
|
354
|
+
const content = 'Line 1\n';
|
|
355
|
+
const result = insertContentAtPosition(content, 'Appended', {
|
|
356
|
+
position: 'end',
|
|
357
|
+
});
|
|
358
|
+
expect(result).toBe('Line 1\nAppended');
|
|
359
|
+
});
|
|
360
|
+
it('appends multi-line content', () => {
|
|
361
|
+
const content = 'Start';
|
|
362
|
+
const result = insertContentAtPosition(content, 'A\nB', {
|
|
363
|
+
position: 'end',
|
|
364
|
+
});
|
|
365
|
+
expect(result).toBe('Start\nA\nB');
|
|
366
|
+
});
|
|
367
|
+
it('inserts at end of section when position=end + heading are both provided', () => {
|
|
368
|
+
const content = [
|
|
369
|
+
'# Daily Note',
|
|
370
|
+
'',
|
|
371
|
+
'## Tasks',
|
|
372
|
+
'* Existing task',
|
|
373
|
+
'',
|
|
374
|
+
'## NotePlan',
|
|
375
|
+
'* Existing item',
|
|
376
|
+
'',
|
|
377
|
+
'## Other',
|
|
378
|
+
'* Other item',
|
|
379
|
+
].join('\n');
|
|
380
|
+
const result = insertContentAtPosition(content, '* New item', {
|
|
381
|
+
position: 'end',
|
|
382
|
+
heading: 'NotePlan',
|
|
383
|
+
});
|
|
384
|
+
const resultLines = lines(result);
|
|
385
|
+
// Should be at the end of the NotePlan section, NOT at the end of the note
|
|
386
|
+
const notePlanIdx = resultLines.indexOf('## NotePlan');
|
|
387
|
+
const otherIdx = resultLines.indexOf('## Other');
|
|
388
|
+
const newItemIdx = resultLines.indexOf('* New item');
|
|
389
|
+
expect(newItemIdx).toBeGreaterThan(notePlanIdx);
|
|
390
|
+
expect(newItemIdx).toBeLessThan(otherIdx);
|
|
391
|
+
});
|
|
392
|
+
it('still appends to end of note when position=end with no heading', () => {
|
|
393
|
+
const content = '# Title\n\nSome text';
|
|
394
|
+
const result = insertContentAtPosition(content, '* Bottom', {
|
|
395
|
+
position: 'end',
|
|
396
|
+
});
|
|
397
|
+
expect(result).toBe('# Title\n\nSome text\n* Bottom');
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
// ---------------------------------------------------------------------------
|
|
401
|
+
// insertContentAtPosition – after-heading
|
|
402
|
+
// ---------------------------------------------------------------------------
|
|
403
|
+
describe('insertContentAtPosition – after-heading', () => {
|
|
404
|
+
it('inserts after ATX heading (# Heading)', () => {
|
|
405
|
+
const content = '# Title\n\nSome text';
|
|
406
|
+
const result = insertContentAtPosition(content, 'Inserted', {
|
|
407
|
+
position: 'after-heading',
|
|
408
|
+
heading: 'Title',
|
|
409
|
+
});
|
|
410
|
+
const resultLines = lines(result);
|
|
411
|
+
expect(resultLines[0]).toBe('# Title');
|
|
412
|
+
expect(resultLines[1]).toBe('Inserted');
|
|
413
|
+
expect(resultLines[2]).toBe('');
|
|
414
|
+
expect(resultLines[3]).toBe('Some text');
|
|
415
|
+
});
|
|
416
|
+
it('inserts after bold heading (**Heading**:)', () => {
|
|
417
|
+
const content = '**Tasks**:\n- Task 1';
|
|
418
|
+
const result = insertContentAtPosition(content, '- Task 0', {
|
|
419
|
+
position: 'after-heading',
|
|
420
|
+
heading: 'Tasks',
|
|
421
|
+
});
|
|
422
|
+
const resultLines = lines(result);
|
|
423
|
+
expect(resultLines[0]).toBe('**Tasks**:');
|
|
424
|
+
expect(resultLines[1]).toBe('- Task 0');
|
|
425
|
+
expect(resultLines[2]).toBe('- Task 1');
|
|
426
|
+
});
|
|
427
|
+
it('matches headings case-insensitively', () => {
|
|
428
|
+
const content = '# My Title\nBody';
|
|
429
|
+
const result = insertContentAtPosition(content, 'Inserted', {
|
|
430
|
+
position: 'after-heading',
|
|
431
|
+
heading: 'my title',
|
|
432
|
+
});
|
|
433
|
+
const resultLines = lines(result);
|
|
434
|
+
expect(resultLines[0]).toBe('# My Title');
|
|
435
|
+
expect(resultLines[1]).toBe('Inserted');
|
|
436
|
+
});
|
|
437
|
+
it('throws with suggestions when heading not found', () => {
|
|
438
|
+
const content = '# Alpha\n## Beta\nText';
|
|
439
|
+
expect(() => insertContentAtPosition(content, 'X', {
|
|
440
|
+
position: 'after-heading',
|
|
441
|
+
heading: 'Gamma',
|
|
442
|
+
})).toThrow(/not found/);
|
|
443
|
+
expect(() => insertContentAtPosition(content, 'X', {
|
|
444
|
+
position: 'after-heading',
|
|
445
|
+
heading: 'Gamma',
|
|
446
|
+
})).toThrow(/Available headings/);
|
|
447
|
+
});
|
|
448
|
+
it('inserts after correct heading when multiple headings exist', () => {
|
|
449
|
+
const content = '# First\nFirst body\n## Second\nSecond body';
|
|
450
|
+
const result = insertContentAtPosition(content, 'After Second', {
|
|
451
|
+
position: 'after-heading',
|
|
452
|
+
heading: 'Second',
|
|
453
|
+
});
|
|
454
|
+
const resultLines = lines(result);
|
|
455
|
+
expect(resultLines[2]).toBe('## Second');
|
|
456
|
+
expect(resultLines[3]).toBe('After Second');
|
|
457
|
+
expect(resultLines[4]).toBe('Second body');
|
|
458
|
+
});
|
|
459
|
+
});
|
|
460
|
+
// ---------------------------------------------------------------------------
|
|
461
|
+
// deleteLines
|
|
462
|
+
// ---------------------------------------------------------------------------
|
|
463
|
+
describe('deleteLines', () => {
|
|
464
|
+
const fiveLines = 'Line 1\nLine 2\nLine 3\nLine 4\nLine 5';
|
|
465
|
+
it('deletes a single line', () => {
|
|
466
|
+
const result = deleteLines(fiveLines, 3, 3);
|
|
467
|
+
const resultLines = lines(result);
|
|
468
|
+
expect(resultLines).toEqual(['Line 1', 'Line 2', 'Line 4', 'Line 5']);
|
|
469
|
+
});
|
|
470
|
+
it('deletes a range of lines', () => {
|
|
471
|
+
const result = deleteLines(fiveLines, 2, 4);
|
|
472
|
+
const resultLines = lines(result);
|
|
473
|
+
expect(resultLines).toEqual(['Line 1', 'Line 5']);
|
|
474
|
+
});
|
|
475
|
+
it('throws when startLine < 1', () => {
|
|
476
|
+
expect(() => deleteLines(fiveLines, 0, 2)).toThrow(/Invalid line range/);
|
|
477
|
+
});
|
|
478
|
+
it('throws when startLine > endLine', () => {
|
|
479
|
+
expect(() => deleteLines(fiveLines, 3, 1)).toThrow(/Invalid line range/);
|
|
480
|
+
});
|
|
481
|
+
it('throws when startLine exceeds content length', () => {
|
|
482
|
+
expect(() => deleteLines(fiveLines, 10, 12)).toThrow(/exceeds content length/);
|
|
483
|
+
});
|
|
484
|
+
it('clamps endLine to content length', () => {
|
|
485
|
+
const result = deleteLines(fiveLines, 4, 100);
|
|
486
|
+
const resultLines = lines(result);
|
|
487
|
+
expect(resultLines).toEqual(['Line 1', 'Line 2', 'Line 3']);
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
// ── Issue A: position "start" + heading should insert after the heading ──
|
|
491
|
+
describe('insertContentAtPosition – start + heading (Issue A)', () => {
|
|
492
|
+
const noteWithFM = [
|
|
493
|
+
'---',
|
|
494
|
+
'bg-color: amber-50',
|
|
495
|
+
'---',
|
|
496
|
+
'# Daily Note',
|
|
497
|
+
'',
|
|
498
|
+
'## Tasks',
|
|
499
|
+
'* Existing task',
|
|
500
|
+
'',
|
|
501
|
+
'## NotePlan',
|
|
502
|
+
'* Existing item',
|
|
503
|
+
].join('\n');
|
|
504
|
+
it('inserts after the heading when position=start + heading are both provided', () => {
|
|
505
|
+
// The AI agent expected position="start" + heading="NotePlan" to insert
|
|
506
|
+
// under ## NotePlan. Instead it went to start-of-note (after frontmatter).
|
|
507
|
+
const result = insertContentAtPosition(noteWithFM, '* New item', {
|
|
508
|
+
position: 'start',
|
|
509
|
+
heading: 'NotePlan',
|
|
510
|
+
});
|
|
511
|
+
const resultLines = lines(result);
|
|
512
|
+
// Should be right after ## NotePlan, NOT after frontmatter
|
|
513
|
+
const headingIdx = resultLines.indexOf('## NotePlan');
|
|
514
|
+
expect(headingIdx).toBeGreaterThan(-1);
|
|
515
|
+
expect(resultLines[headingIdx + 1]).toBe('* New item');
|
|
516
|
+
});
|
|
517
|
+
it('still inserts after frontmatter when position=start with no heading', () => {
|
|
518
|
+
// Existing behavior should be preserved when no heading is given
|
|
519
|
+
const result = insertContentAtPosition(noteWithFM, '* Top item', {
|
|
520
|
+
position: 'start',
|
|
521
|
+
});
|
|
522
|
+
const resultLines = lines(result);
|
|
523
|
+
// Should go right after the frontmatter closing ---
|
|
524
|
+
expect(resultLines[3]).toBe('* Top item');
|
|
525
|
+
expect(resultLines[4]).toBe('# Daily Note');
|
|
526
|
+
});
|
|
527
|
+
});
|
|
528
|
+
// ── Issue B: Fragile frontmatter parsing with thematic breaks ──
|
|
529
|
+
describe('insertContentAtPosition – broken frontmatter with thematic break (Issue B)', () => {
|
|
530
|
+
// Scenario: the closing --- of frontmatter was accidentally deleted,
|
|
531
|
+
// but a thematic break --- exists later in the note body.
|
|
532
|
+
const brokenFM = [
|
|
533
|
+
'---',
|
|
534
|
+
'bg-color: amber-50',
|
|
535
|
+
'bg-pattern: dotted',
|
|
536
|
+
// Missing closing ---
|
|
537
|
+
'',
|
|
538
|
+
'## Today\'s Goals',
|
|
539
|
+
'* Goal 1',
|
|
540
|
+
'',
|
|
541
|
+
'---', // This is a thematic break, NOT frontmatter
|
|
542
|
+
'',
|
|
543
|
+
'## Other Section',
|
|
544
|
+
'* Item A',
|
|
545
|
+
].join('\n');
|
|
546
|
+
it('does not treat a thematic break as a frontmatter closer', () => {
|
|
547
|
+
// position=start should insert at the top of the note (since frontmatter is broken/unclosed)
|
|
548
|
+
// NOT after the thematic break on line 9
|
|
549
|
+
const result = insertContentAtPosition(brokenFM, '* Inserted', {
|
|
550
|
+
position: 'start',
|
|
551
|
+
});
|
|
552
|
+
const resultLines = lines(result);
|
|
553
|
+
// The inserted content should be near the top, not after the thematic break
|
|
554
|
+
const insertedIdx = resultLines.indexOf('* Inserted');
|
|
555
|
+
const thematicBreakIdx = resultLines.indexOf('---', 1); // skip first ---
|
|
556
|
+
expect(insertedIdx).toBeLessThan(thematicBreakIdx);
|
|
557
|
+
});
|
|
558
|
+
it('correctly inserts at start when frontmatter has no closing delimiter', () => {
|
|
559
|
+
const unclosedFM = [
|
|
560
|
+
'---',
|
|
561
|
+
'title: My Note',
|
|
562
|
+
'',
|
|
563
|
+
'# Content',
|
|
564
|
+
'Some text',
|
|
565
|
+
].join('\n');
|
|
566
|
+
// No closing --- at all. Should treat as no valid frontmatter,
|
|
567
|
+
// insert at the very top.
|
|
568
|
+
const result = insertContentAtPosition(unclosedFM, '* Top', {
|
|
569
|
+
position: 'start',
|
|
570
|
+
});
|
|
571
|
+
const resultLines = lines(result);
|
|
572
|
+
expect(resultLines[0]).toBe('* Top');
|
|
573
|
+
});
|
|
574
|
+
it('only treats --- as frontmatter closer when it has valid YAML content between delimiters', () => {
|
|
575
|
+
// Frontmatter with valid YAML, then a thematic break later
|
|
576
|
+
const validFMWithBreak = [
|
|
577
|
+
'---',
|
|
578
|
+
'title: Note',
|
|
579
|
+
'---',
|
|
580
|
+
'# Content',
|
|
581
|
+
'',
|
|
582
|
+
'---', // thematic break
|
|
583
|
+
'',
|
|
584
|
+
'## Section 2',
|
|
585
|
+
].join('\n');
|
|
586
|
+
const result = insertContentAtPosition(validFMWithBreak, '* Inserted', {
|
|
587
|
+
position: 'start',
|
|
588
|
+
});
|
|
589
|
+
const resultLines = lines(result);
|
|
590
|
+
// Should insert after the real frontmatter (line 3), not after thematic break
|
|
591
|
+
expect(resultLines[3]).toBe('* Inserted');
|
|
592
|
+
expect(resultLines[4]).toBe('# Content');
|
|
593
|
+
});
|
|
594
|
+
});
|
|
112
595
|
//# sourceMappingURL=frontmatter-parser.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-parser.test.js","sourceRoot":"","sources":["../../src/noteplan/frontmatter-parser.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontmatter-parser.test.js","sourceRoot":"","sources":["../../src/noteplan/frontmatter-parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ export declare function updateTaskContent(content: string, lineIndex: number, ne
|
|
|
51
51
|
* Add a task to note content
|
|
52
52
|
* Uses user's configured task marker format from NotePlan preferences
|
|
53
53
|
*/
|
|
54
|
-
export declare function addTask(content: string, taskContent: string, position?: 'start' | 'end' | 'after-heading', heading?: string, options?: {
|
|
54
|
+
export declare function addTask(content: string, taskContent: string, position?: 'start' | 'end' | 'after-heading' | 'in-section', heading?: string, options?: {
|
|
55
55
|
status?: TaskStatus;
|
|
56
56
|
priority?: number;
|
|
57
57
|
indentLevel?: number;
|
|
@@ -73,6 +73,11 @@ export declare function parseParagraphLine(line: string, lineIndex: number, isFi
|
|
|
73
73
|
* Build a properly formatted markdown line from structured input.
|
|
74
74
|
* Uses user preferences for task marker style.
|
|
75
75
|
*/
|
|
76
|
+
/**
|
|
77
|
+
* Strip raw task/checklist/bullet markers that an LLM may have included in content.
|
|
78
|
+
* E.g. "- [ ] Buy groceries" → "Buy groceries", "* [x] Done thing" → "Done thing"
|
|
79
|
+
*/
|
|
80
|
+
export declare function stripRawMarkers(content: string): string;
|
|
76
81
|
export declare function buildParagraphLine(content: string, type: ParagraphType, options?: {
|
|
77
82
|
headingLevel?: number;
|
|
78
83
|
taskStatus?: TaskStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../src/noteplan/markdown-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAqC,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../src/noteplan/markdown-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAqC,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAInH;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,CAalD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAqD1E;AA0FD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKzD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,MAAM,CA8BlG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAuBpG;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,OAAO,GAAG,KAAK,GAAG,eAAe,GAAG,YAAoB,EAClE,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAgBrG;AAqBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAwH3G;AAED;;;GAGG;AACH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,MAAM,CA0CR;AASD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAK7F"}
|