@todu/engine 0.1.1 → 0.2.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/dist/habits.d.ts +1 -1
- package/dist/habits.d.ts.map +1 -1
- package/dist/habits.js +1 -1
- package/dist/habits.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -20
- package/dist/index.js.map +1 -1
- package/dist/notes.d.ts.map +1 -1
- package/dist/notes.js +248 -49
- package/dist/notes.js.map +1 -1
- package/dist/scheduling.d.ts +6 -10
- package/dist/scheduling.d.ts.map +1 -1
- package/dist/scheduling.js +8 -10
- package/dist/scheduling.js.map +1 -1
- package/dist/storage.d.ts +42 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +169 -26
- package/dist/storage.js.map +1 -1
- package/dist/sync-client.d.ts +14 -0
- package/dist/sync-client.d.ts.map +1 -1
- package/dist/sync-client.js +74 -0
- package/dist/sync-client.js.map +1 -1
- package/dist/todu.d.ts +33 -1
- package/dist/todu.d.ts.map +1 -1
- package/dist/todu.js +2 -0
- package/dist/todu.js.map +1 -1
- package/package.json +1 -1
package/dist/notes.js
CHANGED
|
@@ -1,28 +1,188 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import { createNoteId, createNotesDocument, err, notFound, ok, validateCreateNoteInput, validateUpdateNoteInput, } from "@todu/core";
|
|
3
|
+
const NOTES_DIAGNOSTICS_ENV = "TODU_NOTES_DIAGNOSTICS";
|
|
3
4
|
// ============================================================================
|
|
4
|
-
// Note namespace — CRUD on NotesDocument
|
|
5
|
+
// Note namespace — CRUD on partitioned NotesDocument buckets
|
|
5
6
|
// ============================================================================
|
|
6
7
|
export function createNoteNamespace(catalog, repo) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
function diagnosticsEnabled() {
|
|
9
|
+
const value = process.env[NOTES_DIAGNOSTICS_ENV];
|
|
10
|
+
return value === "1" || value?.toLowerCase() === "true";
|
|
11
|
+
}
|
|
12
|
+
function emitDiagnostic(event, payload) {
|
|
13
|
+
if (!diagnosticsEnabled())
|
|
14
|
+
return;
|
|
15
|
+
console.info(`[notes] ${event} ${JSON.stringify(payload)}`);
|
|
16
|
+
}
|
|
17
|
+
function noteBucketKeyForNote(note) {
|
|
18
|
+
if (note.entityType && note.entityId) {
|
|
19
|
+
return `entity:${note.entityType}:${note.entityId}`;
|
|
15
20
|
}
|
|
21
|
+
// Standalone notes partition by month (YYYY-MM)
|
|
22
|
+
return `journal:${note.createdAt.slice(0, 7)}`;
|
|
23
|
+
}
|
|
24
|
+
function noteBucketKeyForFilter(filter) {
|
|
25
|
+
if (filter.entityType && filter.entityId) {
|
|
26
|
+
return `entity:${filter.entityType}:${filter.entityId}`;
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
async function getBucketHandle(bucketKey) {
|
|
31
|
+
const catalogDoc = catalog.doc();
|
|
32
|
+
const docId = catalogDoc?.notesBucketDocIds?.[bucketKey];
|
|
33
|
+
if (!docId)
|
|
34
|
+
return null;
|
|
35
|
+
return repo.find(docId);
|
|
36
|
+
}
|
|
37
|
+
async function getOrCreateBucketHandle(bucketKey) {
|
|
38
|
+
const existing = await getBucketHandle(bucketKey);
|
|
39
|
+
if (existing)
|
|
40
|
+
return existing;
|
|
16
41
|
const handle = repo.create();
|
|
17
42
|
const template = createNotesDocument();
|
|
18
43
|
handle.change((doc) => {
|
|
19
44
|
doc.notes = template.notes;
|
|
20
45
|
});
|
|
21
46
|
catalog.change((doc) => {
|
|
22
|
-
doc.
|
|
47
|
+
if (doc.notesBucketDocIds === undefined || doc.notesBucketDocIds === null) {
|
|
48
|
+
doc.notesBucketDocIds = {};
|
|
49
|
+
}
|
|
50
|
+
doc.notesBucketDocIds[bucketKey] = handle.documentId;
|
|
23
51
|
});
|
|
24
52
|
return handle;
|
|
25
53
|
}
|
|
54
|
+
function appendNotesWithoutDuplicates(handle, notes) {
|
|
55
|
+
handle.change((doc) => {
|
|
56
|
+
const existingIds = new Set(doc.notes.map((note) => note.id));
|
|
57
|
+
for (const note of notes) {
|
|
58
|
+
if (!existingIds.has(note.id)) {
|
|
59
|
+
doc.notes.push(toStorageNote(note));
|
|
60
|
+
existingIds.add(note.id);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function migrateLegacyGlobalNotesDoc() {
|
|
66
|
+
const catalogDoc = catalog.doc();
|
|
67
|
+
if (!catalogDoc?.notesDocId)
|
|
68
|
+
return;
|
|
69
|
+
const legacyHandle = await repo.find(catalogDoc.notesDocId);
|
|
70
|
+
const legacyDoc = legacyHandle.doc();
|
|
71
|
+
const notesToMigrate = legacyDoc?.notes.map(cloneNote) ?? [];
|
|
72
|
+
if (notesToMigrate.length === 0) {
|
|
73
|
+
catalog.change((doc) => {
|
|
74
|
+
delete doc.notesDocId;
|
|
75
|
+
});
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const byBucket = new Map();
|
|
79
|
+
for (const note of notesToMigrate) {
|
|
80
|
+
const bucketKey = noteBucketKeyForNote(note);
|
|
81
|
+
const bucketNotes = byBucket.get(bucketKey);
|
|
82
|
+
if (bucketNotes) {
|
|
83
|
+
bucketNotes.push(note);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
byBucket.set(bucketKey, [note]);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
for (const [bucketKey, notes] of byBucket) {
|
|
90
|
+
const bucketHandle = await getOrCreateBucketHandle(bucketKey);
|
|
91
|
+
appendNotesWithoutDuplicates(bucketHandle, notes);
|
|
92
|
+
}
|
|
93
|
+
catalog.change((doc) => {
|
|
94
|
+
if (doc.noteBucketByNoteId === undefined || doc.noteBucketByNoteId === null) {
|
|
95
|
+
doc.noteBucketByNoteId = {};
|
|
96
|
+
}
|
|
97
|
+
for (const note of notesToMigrate) {
|
|
98
|
+
doc.noteBucketByNoteId[note.id] = noteBucketKeyForNote(note);
|
|
99
|
+
}
|
|
100
|
+
delete doc.notesDocId;
|
|
101
|
+
});
|
|
102
|
+
// Remove migrated entries from legacy doc to avoid future duplicate migrations.
|
|
103
|
+
legacyHandle.change((doc) => {
|
|
104
|
+
doc.notes.splice(0, doc.notes.length);
|
|
105
|
+
});
|
|
106
|
+
emitDiagnostic("legacy-migration", {
|
|
107
|
+
migratedNoteCount: notesToMigrate.length,
|
|
108
|
+
targetBucketCount: byBucket.size,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async function ensurePartitionModelReady() {
|
|
112
|
+
const catalogDoc = catalog.doc();
|
|
113
|
+
if (!catalogDoc)
|
|
114
|
+
return;
|
|
115
|
+
if (catalogDoc.notesBucketDocIds === undefined ||
|
|
116
|
+
catalogDoc.notesBucketDocIds === null ||
|
|
117
|
+
catalogDoc.noteBucketByNoteId === undefined ||
|
|
118
|
+
catalogDoc.noteBucketByNoteId === null) {
|
|
119
|
+
catalog.change((doc) => {
|
|
120
|
+
if (doc.notesBucketDocIds === undefined || doc.notesBucketDocIds === null) {
|
|
121
|
+
doc.notesBucketDocIds = {};
|
|
122
|
+
}
|
|
123
|
+
if (doc.noteBucketByNoteId === undefined || doc.noteBucketByNoteId === null) {
|
|
124
|
+
doc.noteBucketByNoteId = {};
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
await migrateLegacyGlobalNotesDoc();
|
|
129
|
+
}
|
|
130
|
+
async function findNoteLocation(id) {
|
|
131
|
+
const catalogDoc = catalog.doc();
|
|
132
|
+
if (!catalogDoc)
|
|
133
|
+
return null;
|
|
134
|
+
const indexedBucketKey = catalogDoc.noteBucketByNoteId?.[id];
|
|
135
|
+
if (indexedBucketKey) {
|
|
136
|
+
const handle = await getBucketHandle(indexedBucketKey);
|
|
137
|
+
const notesDoc = handle?.doc();
|
|
138
|
+
if (handle && notesDoc) {
|
|
139
|
+
const index = notesDoc.notes.findIndex((n) => n.id === id);
|
|
140
|
+
if (index !== -1) {
|
|
141
|
+
return { bucketKey: indexedBucketKey, handle, index };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Repair stale index entry.
|
|
145
|
+
catalog.change((doc) => {
|
|
146
|
+
if (!doc.noteBucketByNoteId)
|
|
147
|
+
return;
|
|
148
|
+
delete doc.noteBucketByNoteId[id];
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
for (const [bucketKey, docId] of Object.entries(catalogDoc.notesBucketDocIds ?? {})) {
|
|
152
|
+
const handle = await repo.find(docId);
|
|
153
|
+
const notesDoc = handle.doc();
|
|
154
|
+
if (!notesDoc)
|
|
155
|
+
continue;
|
|
156
|
+
const index = notesDoc.notes.findIndex((n) => n.id === id);
|
|
157
|
+
if (index === -1)
|
|
158
|
+
continue;
|
|
159
|
+
catalog.change((doc) => {
|
|
160
|
+
if (doc.noteBucketByNoteId === undefined || doc.noteBucketByNoteId === null) {
|
|
161
|
+
doc.noteBucketByNoteId = {};
|
|
162
|
+
}
|
|
163
|
+
doc.noteBucketByNoteId[id] = bucketKey;
|
|
164
|
+
});
|
|
165
|
+
return { bucketKey, handle, index };
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
function listBucketKeys(filter) {
|
|
170
|
+
const catalogDoc = catalog.doc();
|
|
171
|
+
if (!catalogDoc?.notesBucketDocIds)
|
|
172
|
+
return [];
|
|
173
|
+
const allBucketKeys = Object.keys(catalogDoc.notesBucketDocIds);
|
|
174
|
+
if (!filter)
|
|
175
|
+
return allBucketKeys;
|
|
176
|
+
const exactEntityBucketKey = noteBucketKeyForFilter(filter);
|
|
177
|
+
if (exactEntityBucketKey) {
|
|
178
|
+
return catalogDoc.notesBucketDocIds[exactEntityBucketKey] ? [exactEntityBucketKey] : [];
|
|
179
|
+
}
|
|
180
|
+
if (filter.entityType) {
|
|
181
|
+
const prefix = `entity:${filter.entityType}:`;
|
|
182
|
+
return allBucketKeys.filter((bucketKey) => bucketKey.startsWith(prefix));
|
|
183
|
+
}
|
|
184
|
+
return allBucketKeys;
|
|
185
|
+
}
|
|
26
186
|
/**
|
|
27
187
|
* Verify that an entity exists (task or project).
|
|
28
188
|
*/
|
|
@@ -50,6 +210,7 @@ export function createNoteNamespace(catalog, repo) {
|
|
|
50
210
|
const validationErr = validateCreateNoteInput(input);
|
|
51
211
|
if (validationErr)
|
|
52
212
|
return err(validationErr);
|
|
213
|
+
await ensurePartitionModelReady();
|
|
53
214
|
// Verify entity exists if attached
|
|
54
215
|
if (input.entityType && input.entityId) {
|
|
55
216
|
const exists = await entityExists(input.entityType, input.entityId);
|
|
@@ -70,21 +231,35 @@ export function createNoteNamespace(catalog, repo) {
|
|
|
70
231
|
note.entityType = input.entityType;
|
|
71
232
|
if (input.entityId !== undefined)
|
|
72
233
|
note.entityId = input.entityId;
|
|
73
|
-
const
|
|
74
|
-
notesHandle
|
|
75
|
-
|
|
234
|
+
const bucketKey = noteBucketKeyForNote(note);
|
|
235
|
+
const notesHandle = await getOrCreateBucketHandle(bucketKey);
|
|
236
|
+
appendNotesWithoutDuplicates(notesHandle, [note]);
|
|
237
|
+
catalog.change((doc) => {
|
|
238
|
+
if (doc.noteBucketByNoteId === undefined || doc.noteBucketByNoteId === null) {
|
|
239
|
+
doc.noteBucketByNoteId = {};
|
|
240
|
+
}
|
|
241
|
+
doc.noteBucketByNoteId[id] = bucketKey;
|
|
242
|
+
});
|
|
243
|
+
emitDiagnostic("create", {
|
|
244
|
+
noteId: id,
|
|
245
|
+
bucketKey,
|
|
76
246
|
});
|
|
77
247
|
return ok(note);
|
|
78
248
|
},
|
|
79
249
|
async list(filter) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const notesHandle = await repo.find(catalogDoc.notesDocId);
|
|
84
|
-
const notesDoc = notesHandle.doc();
|
|
85
|
-
if (!notesDoc)
|
|
250
|
+
await ensurePartitionModelReady();
|
|
251
|
+
const bucketKeys = listBucketKeys(filter);
|
|
252
|
+
if (bucketKeys.length === 0)
|
|
86
253
|
return ok([]);
|
|
87
|
-
|
|
254
|
+
const allNotes = [];
|
|
255
|
+
for (const bucketKey of bucketKeys) {
|
|
256
|
+
const bucketHandle = await getBucketHandle(bucketKey);
|
|
257
|
+
const bucketDoc = bucketHandle?.doc();
|
|
258
|
+
if (!bucketDoc)
|
|
259
|
+
continue;
|
|
260
|
+
allNotes.push(...bucketDoc.notes.map(cloneNote));
|
|
261
|
+
}
|
|
262
|
+
let notes = allNotes;
|
|
88
263
|
// Apply filters
|
|
89
264
|
if (filter?.entityType) {
|
|
90
265
|
notes = notes.filter((n) => n.entityType === filter.entityType);
|
|
@@ -93,31 +268,33 @@ export function createNoteNamespace(catalog, repo) {
|
|
|
93
268
|
notes = notes.filter((n) => n.entityId === filter.entityId);
|
|
94
269
|
}
|
|
95
270
|
if (filter?.tag) {
|
|
96
|
-
|
|
271
|
+
const tag = filter.tag;
|
|
272
|
+
notes = notes.filter((n) => n.tags.includes(tag));
|
|
97
273
|
}
|
|
98
274
|
if (filter?.author) {
|
|
99
|
-
|
|
275
|
+
const author = filter.author;
|
|
276
|
+
notes = notes.filter((n) => n.author === author);
|
|
100
277
|
}
|
|
101
278
|
// Sort by createdAt desc (newest first)
|
|
102
279
|
notes.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
280
|
+
emitDiagnostic("list", {
|
|
281
|
+
bucketCount: bucketKeys.length,
|
|
282
|
+
resultCount: notes.length,
|
|
283
|
+
entityType: filter?.entityType,
|
|
284
|
+
hasEntityId: filter?.entityId !== undefined,
|
|
285
|
+
});
|
|
103
286
|
return ok(notes);
|
|
104
287
|
},
|
|
105
288
|
async update(id, input) {
|
|
106
289
|
const validationErr = validateUpdateNoteInput(input);
|
|
107
290
|
if (validationErr)
|
|
108
291
|
return err(validationErr);
|
|
109
|
-
|
|
110
|
-
|
|
292
|
+
await ensurePartitionModelReady();
|
|
293
|
+
const location = await findNoteLocation(id);
|
|
294
|
+
if (!location)
|
|
111
295
|
return err(notFound("note", id));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (!notesDoc)
|
|
115
|
-
return err(notFound("note", id));
|
|
116
|
-
const index = notesDoc.notes.findIndex((n) => n.id === id);
|
|
117
|
-
if (index === -1)
|
|
118
|
-
return err(notFound("note", id));
|
|
119
|
-
notesHandle.change((doc) => {
|
|
120
|
-
const note = doc.notes[index];
|
|
296
|
+
location.handle.change((doc) => {
|
|
297
|
+
const note = doc.notes[location.index];
|
|
121
298
|
if (input.content !== undefined)
|
|
122
299
|
note.content = input.content.trim();
|
|
123
300
|
if (input.tags !== undefined) {
|
|
@@ -128,36 +305,58 @@ export function createNoteNamespace(catalog, repo) {
|
|
|
128
305
|
note.tags.push(tag);
|
|
129
306
|
}
|
|
130
307
|
});
|
|
131
|
-
const updated =
|
|
308
|
+
const updated = location.handle.doc()?.notes[location.index];
|
|
309
|
+
if (!updated)
|
|
310
|
+
return err(notFound("note", id));
|
|
311
|
+
emitDiagnostic("update", {
|
|
312
|
+
noteId: id,
|
|
313
|
+
bucketKey: location.bucketKey,
|
|
314
|
+
});
|
|
132
315
|
return ok(cloneNote(updated));
|
|
133
316
|
},
|
|
134
317
|
async delete(id) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const notesHandle = await repo.find(catalogDoc.notesDocId);
|
|
139
|
-
const notesDoc = notesHandle.doc();
|
|
140
|
-
if (!notesDoc)
|
|
141
|
-
return err(notFound("note", id));
|
|
142
|
-
const index = notesDoc.notes.findIndex((n) => n.id === id);
|
|
143
|
-
if (index === -1)
|
|
318
|
+
await ensurePartitionModelReady();
|
|
319
|
+
const location = await findNoteLocation(id);
|
|
320
|
+
if (!location)
|
|
144
321
|
return err(notFound("note", id));
|
|
145
|
-
|
|
146
|
-
doc.notes.splice(index, 1);
|
|
322
|
+
location.handle.change((doc) => {
|
|
323
|
+
doc.notes.splice(location.index, 1);
|
|
324
|
+
});
|
|
325
|
+
const bucketIsEmpty = (location.handle.doc()?.notes.length ?? 0) === 0;
|
|
326
|
+
catalog.change((doc) => {
|
|
327
|
+
if (doc.noteBucketByNoteId !== undefined && doc.noteBucketByNoteId !== null) {
|
|
328
|
+
delete doc.noteBucketByNoteId[id];
|
|
329
|
+
}
|
|
330
|
+
if (bucketIsEmpty &&
|
|
331
|
+
doc.notesBucketDocIds !== undefined &&
|
|
332
|
+
doc.notesBucketDocIds !== null) {
|
|
333
|
+
delete doc.notesBucketDocIds[location.bucketKey];
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
emitDiagnostic("delete", {
|
|
337
|
+
noteId: id,
|
|
338
|
+
bucketKey: location.bucketKey,
|
|
339
|
+
bucketDeleted: bucketIsEmpty,
|
|
147
340
|
});
|
|
148
341
|
return ok(undefined);
|
|
149
342
|
},
|
|
150
343
|
};
|
|
151
344
|
}
|
|
152
|
-
function
|
|
153
|
-
|
|
345
|
+
function toStorageNote(n) {
|
|
346
|
+
const note = {
|
|
154
347
|
id: n.id,
|
|
155
348
|
content: n.content,
|
|
156
349
|
author: n.author,
|
|
157
|
-
entityType: n.entityType,
|
|
158
|
-
entityId: n.entityId,
|
|
159
350
|
tags: [...n.tags],
|
|
160
351
|
createdAt: n.createdAt,
|
|
161
352
|
};
|
|
353
|
+
if (n.entityType !== undefined)
|
|
354
|
+
note.entityType = n.entityType;
|
|
355
|
+
if (n.entityId !== undefined)
|
|
356
|
+
note.entityId = n.entityId;
|
|
357
|
+
return note;
|
|
358
|
+
}
|
|
359
|
+
function cloneNote(n) {
|
|
360
|
+
return toStorageNote(n);
|
|
162
361
|
}
|
|
163
362
|
//# sourceMappingURL=notes.js.map
|
package/dist/notes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
|
package/dist/scheduling.d.ts
CHANGED
|
@@ -47,16 +47,12 @@ export declare function clearProcessors(): void;
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function getRegisteredProcessors(): string[];
|
|
49
49
|
/**
|
|
50
|
-
* Process
|
|
50
|
+
* Process registered template processors.
|
|
51
51
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* 1. Reading its items from the catalog
|
|
55
|
-
* 2. Checking which are due (nextDue <= today, not paused)
|
|
56
|
-
* 3. Performing the appropriate action (generate tasks, advance nextDue, etc.)
|
|
57
|
-
*
|
|
58
|
-
* This function is the single entry point — no daemon, no polling,
|
|
59
|
-
* no on-complete triggers. Just process on access.
|
|
52
|
+
* Processors run in registration order. Callers may exclude processor types
|
|
53
|
+
* (for example, skipping recurring during client startup).
|
|
60
54
|
*/
|
|
61
|
-
export declare function processTemplates(catalog: DocHandle<CatalogDocument
|
|
55
|
+
export declare function processTemplates(catalog: DocHandle<CatalogDocument>, options?: {
|
|
56
|
+
excludeTypes?: string[];
|
|
57
|
+
}): Promise<void>;
|
|
62
58
|
//# sourceMappingURL=scheduling.d.ts.map
|
package/dist/scheduling.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAQhF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAElF;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED
|
|
1
|
+
{"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAQhF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAElF;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,EACnC,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACL,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/scheduling.js
CHANGED
|
@@ -28,21 +28,19 @@ export function getRegisteredProcessors() {
|
|
|
28
28
|
return Array.from(processors.keys());
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* Process
|
|
31
|
+
* Process registered template processors.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* 1. Reading its items from the catalog
|
|
36
|
-
* 2. Checking which are due (nextDue <= today, not paused)
|
|
37
|
-
* 3. Performing the appropriate action (generate tasks, advance nextDue, etc.)
|
|
38
|
-
*
|
|
39
|
-
* This function is the single entry point — no daemon, no polling,
|
|
40
|
-
* no on-complete triggers. Just process on access.
|
|
33
|
+
* Processors run in registration order. Callers may exclude processor types
|
|
34
|
+
* (for example, skipping recurring during client startup).
|
|
41
35
|
*/
|
|
42
|
-
export async function processTemplates(catalog) {
|
|
36
|
+
export async function processTemplates(catalog, options = {}) {
|
|
43
37
|
if (processors.size === 0)
|
|
44
38
|
return;
|
|
39
|
+
const excluded = new Set((options.excludeTypes ?? []).map((type) => type.trim()).filter((type) => type.length > 0));
|
|
45
40
|
for (const [type, processor] of processors) {
|
|
41
|
+
if (excluded.has(type)) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
46
44
|
try {
|
|
47
45
|
const context = {
|
|
48
46
|
catalog,
|
package/dist/scheduling.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"AAsCA;;;GAGG;AACH,MAAM,UAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAA4B,EAAQ;IAClF,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAAA,CACjC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,GAAS;IACtC,UAAU,CAAC,KAAK,EAAE,CAAC;AAAA,CACpB;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,GAAa;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAAA,CACtC;AAED
|
|
1
|
+
{"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"AAsCA;;;GAGG;AACH,MAAM,UAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAA4B,EAAQ;IAClF,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAAA,CACjC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,GAAS;IACtC,UAAU,CAAC,KAAK,EAAE,CAAC;AAAA,CACpB;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,GAAa;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAAA,CACtC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAmC,EACnC,OAAO,GAEH,EAAE,EACS;IACf,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1F,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAsB;gBACjC,OAAO;aACR,CAAC;YACF,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sEAAoE;YACpE,OAAO,CAAC,KAAK,CACX,2BAA2B,IAAI,WAAW,EAC1C,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;AAAA,CACF"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DocHandle } from "@automerge/automerge-repo";
|
|
1
|
+
import type { DocHandle, DocumentId } from "@automerge/automerge-repo";
|
|
2
2
|
import { Repo } from "@automerge/automerge-repo";
|
|
3
3
|
import { type CatalogDocument } from "@todu/core";
|
|
4
4
|
export interface Storage {
|
|
@@ -11,11 +11,49 @@ export interface Storage {
|
|
|
11
11
|
/** Shut down the repo */
|
|
12
12
|
close(): Promise<void>;
|
|
13
13
|
}
|
|
14
|
+
export interface CatalogJoinSwitch {
|
|
15
|
+
/** Catalog marker that was active before this switch started */
|
|
16
|
+
previousCatalogId: DocumentId | null;
|
|
17
|
+
/** Target catalog marker requested by join */
|
|
18
|
+
targetCatalogId: DocumentId;
|
|
19
|
+
/** Finalize the switch after join validation/sync succeeds */
|
|
20
|
+
commit(): void;
|
|
21
|
+
/** Restore prior catalog marker if the join attempt fails */
|
|
22
|
+
rollback(): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Begin a catalog marker switch for join flows.
|
|
26
|
+
*
|
|
27
|
+
* This is the storage-layer entrypoint that explicit join workflows use.
|
|
28
|
+
* The caller should:
|
|
29
|
+
* 1) validate target catalog reachability,
|
|
30
|
+
* 2) perform switch-dependent work,
|
|
31
|
+
* 3) call commit() on success or rollback() on failure.
|
|
32
|
+
*/
|
|
33
|
+
export declare function beginCatalogJoinSwitch(storagePath: string, targetCatalogId: DocumentId): CatalogJoinSwitch;
|
|
14
34
|
/**
|
|
15
|
-
* Initialize storage
|
|
16
|
-
*
|
|
35
|
+
* Initialize persistent storage for bootstrap flows.
|
|
36
|
+
*
|
|
37
|
+
* Bootstrap behavior:
|
|
38
|
+
* - No marker: create initial catalog
|
|
39
|
+
* - Existing marker: load that catalog
|
|
40
|
+
* - Existing but unreachable marker: fail (do not implicitly create a new catalog)
|
|
41
|
+
*/
|
|
42
|
+
export declare function initBootstrapStorage(storagePath: string, repo?: Repo): Promise<Storage>;
|
|
43
|
+
/**
|
|
44
|
+
* Initialize persistent storage for explicit join flows.
|
|
45
|
+
*
|
|
46
|
+
* Join behavior:
|
|
47
|
+
* - Requires the target catalog to be reachable
|
|
48
|
+
* - Never creates a fresh catalog implicitly
|
|
49
|
+
*/
|
|
50
|
+
export declare function initJoinStorage(storagePath: string, targetCatalogId: DocumentId, repo?: Repo): Promise<Storage>;
|
|
51
|
+
/**
|
|
52
|
+
* Backward-compatible storage initialization entrypoint.
|
|
53
|
+
*
|
|
54
|
+
* Defaults to bootstrap semantics.
|
|
17
55
|
*/
|
|
18
|
-
export declare function initStorage(storagePath: string): Promise<Storage>;
|
|
56
|
+
export declare function initStorage(storagePath: string, repo?: Repo): Promise<Storage>;
|
|
19
57
|
/**
|
|
20
58
|
* Initialize ephemeral storage with no filesystem persistence.
|
|
21
59
|
* Used by CLI when syncing with a running Electron instance.
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,YAAY,CAAC;AA8CpB,MAAM,WAAW,OAAO;IACtB,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC;IAEX,kCAAkC;IAClC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAEpC,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IAEnB,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,iBAAiB,EAAE,UAAU,GAAG,IAAI,CAAC;IAErC,8CAA8C;IAC9C,eAAe,EAAE,UAAU,CAAC;IAE5B,8DAA8D;IAC9D,MAAM,IAAI,IAAI,CAAC;IAEf,6DAA6D;IAC7D,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,GAC1B,iBAAiB,CAsBnB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB7F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,EAC3B,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CACtE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IACzB,gFAAgF;IAChF,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,CACF,CAwDA"}
|