@j0hanz/todokit-mcp 1.0.4 → 1.0.6
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +19 -14
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/storage.d.ts +1 -0
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +16 -0
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/storage_filters.d.ts.map +1 -1
- package/dist/lib/storage_filters.js +24 -36
- package/dist/lib/storage_filters.js.map +1 -1
- package/dist/lib/storage_mutations.d.ts.map +1 -1
- package/dist/lib/storage_mutations.js +19 -9
- package/dist/lib/storage_mutations.js.map +1 -1
- package/dist/lib/storage_state.d.ts.map +1 -1
- package/dist/lib/storage_state.js +36 -2
- package/dist/lib/storage_state.js.map +1 -1
- package/dist/schemas/inputs.d.ts +74 -40
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js +54 -66
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/tools/delete_todos.d.ts +3 -0
- package/dist/tools/delete_todos.d.ts.map +1 -0
- package/dist/tools/delete_todos.js +134 -0
- package/dist/tools/delete_todos.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list_todos.d.ts.map +1 -1
- package/dist/tools/list_todos.js +12 -5
- package/dist/tools/list_todos.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,wBAAgB,YAAY,IAAI,SAAS,CAWxC;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAC;AACvE,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;AAEtD,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,IAAI,YAAY,GAAqB,IAAI,CAAC;AAE1C,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,EAC5C;QACE,YAAY,EAAE,4BAA4B;QAC1C,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;KAC9B,CACF,CAAC;IAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAElC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,iBAAiB,EAAE;QACjB,EAAE,EAAE,KAAK,CAAC;QACV,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,IAAI,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,iBAAiB,EAAE;QACjB,EAAE,EAAE,KAAK,CAAC;QACV,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,IAAI,CAAC;CACf;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,GACf,aAAa,CAWf"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
function extractFromError(error) {
|
|
2
|
+
return error instanceof Error ? error.message : undefined;
|
|
3
|
+
}
|
|
4
|
+
function extractFromString(error) {
|
|
5
|
+
return typeof error === 'string' && error.length > 0 ? error : undefined;
|
|
6
|
+
}
|
|
7
|
+
function hasMessageProp(error) {
|
|
8
|
+
return Boolean(error && typeof error === 'object' && 'message' in error);
|
|
9
|
+
}
|
|
10
|
+
function extractFromMessageProp(error) {
|
|
11
|
+
if (!hasMessageProp(error))
|
|
12
|
+
return undefined;
|
|
13
|
+
const msg = error.message;
|
|
14
|
+
return typeof msg === 'string' && msg.length > 0 ? msg : undefined;
|
|
15
|
+
}
|
|
8
16
|
export function getErrorMessage(error) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return 'Unknown error';
|
|
17
|
+
return (extractFromError(error) ??
|
|
18
|
+
extractFromString(error) ??
|
|
19
|
+
extractFromMessageProp(error) ??
|
|
20
|
+
'Unknown error');
|
|
16
21
|
}
|
|
17
22
|
export function createErrorResponse(code, message, result) {
|
|
18
23
|
const structured = {
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAWA,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,gBAAgB,CAAC,KAAK,CAAC;QACvB,iBAAiB,CAAC,KAAK,CAAC;QACxB,sBAAsB,CAAC,KAAK,CAAC;QAC7B,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,MAAgB;IAEhB,MAAM,UAAU,GAAuC;QACrD,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACtE,iBAAiB,EAAE,UAAU;QAC7B,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC"}
|
package/dist/lib/storage.d.ts
CHANGED
|
@@ -22,4 +22,5 @@ export declare function updateTodoBySelector(input: ResolveTodoInput, buildUpdat
|
|
|
22
22
|
export declare function deleteTodoBySelector(input: ResolveTodoInput): Promise<MatchOutcome>;
|
|
23
23
|
export type { CompleteTodoOutcome };
|
|
24
24
|
export declare function completeTodoBySelector(input: ResolveTodoInput, completed: boolean): Promise<CompleteTodoOutcome>;
|
|
25
|
+
export declare function deleteTodosByIds(ids: string[]): Promise<string[]>;
|
|
25
26
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAIrE;AAED,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAiB,EAC9C,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAoBrE;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC/C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAStB;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU7D;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAEtE,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,GAAG,IAAI,GAC9C,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAIrE;AAED,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAiB,EAC9C,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAoBrE;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC/C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAStB;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU7D;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAEtE,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,GAAG,IAAI,GAC9C,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBvE"}
|
package/dist/lib/storage.js
CHANGED
|
@@ -112,4 +112,20 @@ export async function completeTodoBySelector(input, completed) {
|
|
|
112
112
|
return result;
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
+
export async function deleteTodosByIds(ids) {
|
|
116
|
+
return queueWrite(async () => {
|
|
117
|
+
const todos = await readTodosFromDisk();
|
|
118
|
+
const idSet = new Set(ids);
|
|
119
|
+
const deletedIds = [];
|
|
120
|
+
const remaining = todos.filter((todo) => {
|
|
121
|
+
if (idSet.has(todo.id)) {
|
|
122
|
+
deletedIds.push(todo.id);
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
return true;
|
|
126
|
+
});
|
|
127
|
+
await persistTodos(remaining);
|
|
128
|
+
return deletedIds;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
115
131
|
//# sourceMappingURL=storage.js.map
|
package/dist/lib/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAGL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EAErB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAa,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAUzB,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAqB;IAClD,MAAM,aAAa,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACxC,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,WAAoB,EACpB,WAAsC,QAAQ,EAC9C,OAAgB,EAChB,OAAiB,EAAE;IAEnB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC;QAC5B,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAqB;IAClD,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACpC,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC1C,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAU,EACV,OAAgD;IAEhD,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAU;IACzC,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvB,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAuB,EACvB,YAA+C;IAE/C,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAuB;IAEvB,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvB,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAuB,EACvB,SAAkB;IAElB,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QAE7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_filters.d.ts","sourceRoot":"","sources":["../../src/lib/storage_filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAKtD;
|
|
1
|
+
{"version":3,"file":"storage_filters.d.ts","sourceRoot":"","sources":["../../src/lib/storage_filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAKtD;AAyED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,CAIvE"}
|
|
@@ -15,52 +15,40 @@ function normalizeQuery(query) {
|
|
|
15
15
|
const trimmed = query?.trim().toLowerCase();
|
|
16
16
|
return trimmed && trimmed.length > 0 ? trimmed : undefined;
|
|
17
17
|
}
|
|
18
|
-
function
|
|
19
|
-
return
|
|
20
|
-
completed: filters.completed,
|
|
21
|
-
priority: filters.priority,
|
|
22
|
-
tag: filters.tag ? normalizeTag(filters.tag) : undefined,
|
|
23
|
-
dueBefore: filters.dueBefore,
|
|
24
|
-
dueAfter: filters.dueAfter,
|
|
25
|
-
query: normalizeQuery(filters.query),
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function matchesCompletion(todo, completed) {
|
|
29
|
-
return completed === undefined ? true : todo.completed === completed;
|
|
18
|
+
function matchesCompleted(todo, completed) {
|
|
19
|
+
return completed === undefined || todo.completed === completed;
|
|
30
20
|
}
|
|
31
21
|
function matchesPriority(todo, priority) {
|
|
32
|
-
return priority
|
|
22
|
+
return !priority || todo.priority === priority;
|
|
33
23
|
}
|
|
34
24
|
function matchesTag(todo, tag) {
|
|
35
|
-
return tag
|
|
36
|
-
}
|
|
37
|
-
function matchesQueryFilter(todo, query) {
|
|
38
|
-
return query ? matchesQuery(todo, query) : true;
|
|
25
|
+
return !tag || todo.tags.includes(tag);
|
|
39
26
|
}
|
|
40
27
|
function matchesDueBefore(todo, dueBefore) {
|
|
41
|
-
return dueBefore
|
|
28
|
+
return !dueBefore || Boolean(todo.dueDate && todo.dueDate < dueBefore);
|
|
42
29
|
}
|
|
43
30
|
function matchesDueAfter(todo, dueAfter) {
|
|
44
|
-
return dueAfter
|
|
31
|
+
return !dueAfter || Boolean(todo.dueDate && todo.dueDate > dueAfter);
|
|
32
|
+
}
|
|
33
|
+
function matchesQueryTerm(todo, query) {
|
|
34
|
+
return !query || matchesQuery(todo, query);
|
|
35
|
+
}
|
|
36
|
+
function matchesBasicFilters(todo, f, tag) {
|
|
37
|
+
return (matchesCompleted(todo, f.completed) &&
|
|
38
|
+
matchesPriority(todo, f.priority) &&
|
|
39
|
+
matchesTag(todo, tag));
|
|
40
|
+
}
|
|
41
|
+
function matchesDateAndQuery(todo, f, query) {
|
|
42
|
+
return (matchesQueryTerm(todo, query) &&
|
|
43
|
+
matchesDueBefore(todo, f.dueBefore) &&
|
|
44
|
+
matchesDueAfter(todo, f.dueAfter));
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
(todo,
|
|
48
|
-
(todo, filters) => matchesPriority(todo, filters.priority),
|
|
49
|
-
(todo, filters) => matchesTag(todo, filters.tag),
|
|
50
|
-
(todo, filters) => matchesQueryFilter(todo, filters.query),
|
|
51
|
-
(todo, filters) => matchesDueBefore(todo, filters.dueBefore),
|
|
52
|
-
(todo, filters) => matchesDueAfter(todo, filters.dueAfter),
|
|
53
|
-
];
|
|
54
|
-
function todoMatches(todo, filters) {
|
|
55
|
-
for (const check of MATCHERS) {
|
|
56
|
-
if (!check(todo, filters)) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return true;
|
|
46
|
+
function todoMatches(todo, f, tag, query) {
|
|
47
|
+
return (matchesBasicFilters(todo, f, tag) && matchesDateAndQuery(todo, f, query));
|
|
61
48
|
}
|
|
62
49
|
export function filterTodos(todos, filters) {
|
|
63
|
-
const
|
|
64
|
-
|
|
50
|
+
const tag = filters.tag ? normalizeTag(filters.tag) : undefined;
|
|
51
|
+
const query = normalizeQuery(filters.query);
|
|
52
|
+
return todos.filter((todo) => todoMatches(todo, filters, tag, query));
|
|
65
53
|
}
|
|
66
54
|
//# sourceMappingURL=storage_filters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_filters.js","sourceRoot":"","sources":["../../src/lib/storage_filters.ts"],"names":[],"mappings":"AAWA,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,UAAU,GAAG,IAAI;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,IAAU,EAAE,KAAa;IAC7C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CACxE,GAAG,CACJ,EAAE,CAAC,WAAW,EAAE,CAAC;IAClB,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;
|
|
1
|
+
{"version":3,"file":"storage_filters.js","sourceRoot":"","sources":["../../src/lib/storage_filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_mutations.d.ts","sourceRoot":"","sources":["../../src/lib/storage_mutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"storage_mutations.d.ts","sourceRoot":"","sources":["../../src/lib/storage_mutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;AAmEjE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,EAAE,EACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,UAAU,GAClB,IAAI,GAAG,IAAI,CAIb;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAQ9D;AAED,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEpC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,IAAI,EAAE,EACb,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,OAAO,GACjB,mBAAmB,CAiBrB"}
|
|
@@ -28,10 +28,7 @@ function buildUpdatedTodo(currentTodo, updates) {
|
|
|
28
28
|
updatedAt: now,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
const index = todos.findIndex((todo) => todo.id === id);
|
|
33
|
-
if (index === -1)
|
|
34
|
-
return null;
|
|
31
|
+
function updateTodoAtIndex(todos, index, updates) {
|
|
35
32
|
const currentTodo = todos[index];
|
|
36
33
|
if (!currentTodo)
|
|
37
34
|
return null;
|
|
@@ -40,6 +37,19 @@ export function updateTodoInList(todos, id, updates) {
|
|
|
40
37
|
todos[index] = updatedTodo;
|
|
41
38
|
return updatedTodo;
|
|
42
39
|
}
|
|
40
|
+
function resolveTodoIndex(todos, id) {
|
|
41
|
+
const index = todos.findIndex((todo) => todo.id === id);
|
|
42
|
+
if (index === -1)
|
|
43
|
+
return null;
|
|
44
|
+
const todo = todos[index];
|
|
45
|
+
return todo ? { index, todo } : null;
|
|
46
|
+
}
|
|
47
|
+
export function updateTodoInList(todos, id, updates) {
|
|
48
|
+
const index = todos.findIndex((todo) => todo.id === id);
|
|
49
|
+
if (index === -1)
|
|
50
|
+
return null;
|
|
51
|
+
return updateTodoAtIndex(todos, index, updates);
|
|
52
|
+
}
|
|
43
53
|
export function createNotFoundOutcome(id) {
|
|
44
54
|
return {
|
|
45
55
|
kind: 'error',
|
|
@@ -47,14 +57,14 @@ export function createNotFoundOutcome(id) {
|
|
|
47
57
|
};
|
|
48
58
|
}
|
|
49
59
|
export function completeTodoInList(todos, id, completed) {
|
|
50
|
-
const
|
|
51
|
-
if (!
|
|
60
|
+
const resolved = resolveTodoIndex(todos, id);
|
|
61
|
+
if (!resolved) {
|
|
52
62
|
return createNotFoundOutcome(id);
|
|
53
63
|
}
|
|
54
|
-
if (
|
|
55
|
-
return { kind: 'already', todo:
|
|
64
|
+
if (resolved.todo.completed === completed) {
|
|
65
|
+
return { kind: 'already', todo: resolved.todo };
|
|
56
66
|
}
|
|
57
|
-
const updatedTodo =
|
|
67
|
+
const updatedTodo = updateTodoAtIndex(todos, resolved.index, {
|
|
58
68
|
completed,
|
|
59
69
|
completedAt: completed ? new Date().toISOString() : undefined,
|
|
60
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_mutations.js","sourceRoot":"","sources":["../../src/lib/storage_mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,SAAS,mBAAmB,CAAC,OAAmB;IAC9C,MAAM,iBAAiB,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACzC,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC3B,iBAAiB,CAAC,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAiB,EACjB,OAAmB,EACnB,GAAW;IAEX,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC;IAC7D,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YAC9B,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAiB,EAAE,OAAmB;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,uBAAuB,CACxD,WAAW,EACX,OAAO,EACP,GAAG,CACJ,CAAC;IACF,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO;QACV,SAAS;QACT,WAAW;QACX,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"storage_mutations.js","sourceRoot":"","sources":["../../src/lib/storage_mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_state.d.ts","sourceRoot":"","sources":["../../src/lib/storage_state.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,IAAI,EAAe,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"storage_state.d.ts","sourceRoot":"","sources":["../../src/lib/storage_state.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,IAAI,EAAe,MAAM,YAAY,CAAC;AA4HpD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAoBzD;AA+ED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOhE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/D"}
|
|
@@ -8,6 +8,7 @@ const FILE_TIMEOUT_MS = 5000;
|
|
|
8
8
|
const FILE_ENCODING = 'utf-8';
|
|
9
9
|
const TEMP_DIR_PREFIX = '.tmp-';
|
|
10
10
|
let writeChain = Promise.resolve();
|
|
11
|
+
let todosCache = null;
|
|
11
12
|
function withTimeout(promise, timeoutMs, label) {
|
|
12
13
|
let timer;
|
|
13
14
|
const timeout = new Promise((_, reject) => {
|
|
@@ -59,6 +60,25 @@ function parseTodos(rawJson) {
|
|
|
59
60
|
}
|
|
60
61
|
return parsed.data;
|
|
61
62
|
}
|
|
63
|
+
function getCachedTodos(path, stats) {
|
|
64
|
+
if (!todosCache)
|
|
65
|
+
return null;
|
|
66
|
+
if (todosCache.path !== path)
|
|
67
|
+
return null;
|
|
68
|
+
if (todosCache.mtimeMs !== stats.mtimeMs)
|
|
69
|
+
return null;
|
|
70
|
+
if (todosCache.size !== stats.size)
|
|
71
|
+
return null;
|
|
72
|
+
return todosCache.todos;
|
|
73
|
+
}
|
|
74
|
+
function setTodosCache(path, stats, todos) {
|
|
75
|
+
todosCache = {
|
|
76
|
+
path,
|
|
77
|
+
mtimeMs: stats.mtimeMs,
|
|
78
|
+
size: stats.size,
|
|
79
|
+
todos,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
62
82
|
async function statTodoFile(path) {
|
|
63
83
|
try {
|
|
64
84
|
const stats = await withTimeout(stat(path), FILE_TIMEOUT_MS, 'stat todo file');
|
|
@@ -86,12 +106,19 @@ export async function readTodosFromDisk() {
|
|
|
86
106
|
try {
|
|
87
107
|
const stats = await statTodoFile(path);
|
|
88
108
|
if (!stats) {
|
|
109
|
+
todosCache = null;
|
|
89
110
|
return [];
|
|
90
111
|
}
|
|
91
|
-
|
|
112
|
+
const cached = getCachedTodos(path, stats);
|
|
113
|
+
if (cached)
|
|
114
|
+
return cached;
|
|
115
|
+
const todos = await readTodosFile(path);
|
|
116
|
+
setTodosCache(path, stats, todos);
|
|
117
|
+
return todos;
|
|
92
118
|
}
|
|
93
119
|
catch (error) {
|
|
94
120
|
if (isFileNotFound(error)) {
|
|
121
|
+
todosCache = null;
|
|
95
122
|
return [];
|
|
96
123
|
}
|
|
97
124
|
throw error;
|
|
@@ -142,7 +169,7 @@ async function writeFileAtomically(path, data) {
|
|
|
142
169
|
await withTimeout(rm(tempDir, { recursive: true, force: true }), FILE_TIMEOUT_MS, 'cleanup temp dir');
|
|
143
170
|
}
|
|
144
171
|
catch {
|
|
145
|
-
|
|
172
|
+
// Cleanup failure is non-critical
|
|
146
173
|
}
|
|
147
174
|
}
|
|
148
175
|
}
|
|
@@ -157,5 +184,12 @@ export async function waitForWrites() {
|
|
|
157
184
|
export async function persistTodos(todos) {
|
|
158
185
|
const path = getTodoFilePath();
|
|
159
186
|
await writeFileAtomically(path, JSON.stringify(todos, null, 2));
|
|
187
|
+
const stats = await statTodoFile(path);
|
|
188
|
+
if (stats) {
|
|
189
|
+
setTodosCache(path, stats, todos);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
todosCache = null;
|
|
193
|
+
}
|
|
160
194
|
}
|
|
161
195
|
//# sourceMappingURL=storage_state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_state.js","sourceRoot":"","sources":["../../src/lib/storage_state.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,EAAE,EACF,IAAI,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAa,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,aAAa,GAAG,OAAgB,CAAC;AACvC,MAAM,eAAe,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"storage_state.js","sourceRoot":"","sources":["../../src/lib/storage_state.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/inputs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z, type ZodNever, type ZodOptional, type ZodString } from 'zod';
|
|
2
2
|
export declare const AddTodoSchema: z.ZodObject<{
|
|
3
3
|
title: z.ZodString;
|
|
4
4
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -55,51 +55,64 @@ export declare const AddTodosSchema: z.ZodObject<{
|
|
|
55
55
|
tags?: string[] | undefined;
|
|
56
56
|
}[];
|
|
57
57
|
}>;
|
|
58
|
-
export declare const DeleteTodoSchema: z.
|
|
59
|
-
id:
|
|
60
|
-
query:
|
|
58
|
+
export declare const DeleteTodoSchema: z.ZodUnion<[z.ZodObject<{
|
|
59
|
+
id: ZodString;
|
|
60
|
+
query: ZodOptional<ZodNever>;
|
|
61
|
+
} & {
|
|
61
62
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
62
63
|
}, "strict", z.ZodTypeAny, {
|
|
63
|
-
id
|
|
64
|
-
query?:
|
|
64
|
+
id: string;
|
|
65
|
+
query?: undefined;
|
|
65
66
|
dryRun?: boolean | undefined;
|
|
66
67
|
}, {
|
|
67
|
-
id
|
|
68
|
-
query?:
|
|
68
|
+
id: string;
|
|
69
|
+
query?: undefined;
|
|
69
70
|
dryRun?: boolean | undefined;
|
|
70
|
-
}>, {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
}>, z.ZodObject<{
|
|
72
|
+
query: ZodString;
|
|
73
|
+
id: ZodOptional<ZodNever>;
|
|
74
|
+
} & {
|
|
75
|
+
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
76
|
+
}, "strict", z.ZodTypeAny, {
|
|
77
|
+
query: string;
|
|
78
|
+
id?: undefined;
|
|
73
79
|
dryRun?: boolean | undefined;
|
|
74
80
|
}, {
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
query: string;
|
|
82
|
+
id?: undefined;
|
|
77
83
|
dryRun?: boolean | undefined;
|
|
78
|
-
}>;
|
|
79
|
-
export declare const CompleteTodoSchema: z.
|
|
80
|
-
id:
|
|
81
|
-
query:
|
|
84
|
+
}>]>;
|
|
85
|
+
export declare const CompleteTodoSchema: z.ZodUnion<[z.ZodObject<{
|
|
86
|
+
id: ZodString;
|
|
87
|
+
query: ZodOptional<ZodNever>;
|
|
88
|
+
} & {
|
|
82
89
|
completed: z.ZodOptional<z.ZodBoolean>;
|
|
83
90
|
}, "strict", z.ZodTypeAny, {
|
|
84
|
-
id
|
|
91
|
+
id: string;
|
|
85
92
|
completed?: boolean | undefined;
|
|
86
|
-
query?:
|
|
93
|
+
query?: undefined;
|
|
87
94
|
}, {
|
|
88
|
-
id
|
|
95
|
+
id: string;
|
|
89
96
|
completed?: boolean | undefined;
|
|
90
|
-
query?:
|
|
91
|
-
}>, {
|
|
92
|
-
|
|
97
|
+
query?: undefined;
|
|
98
|
+
}>, z.ZodObject<{
|
|
99
|
+
query: ZodString;
|
|
100
|
+
id: ZodOptional<ZodNever>;
|
|
101
|
+
} & {
|
|
102
|
+
completed: z.ZodOptional<z.ZodBoolean>;
|
|
103
|
+
}, "strict", z.ZodTypeAny, {
|
|
104
|
+
query: string;
|
|
105
|
+
id?: undefined;
|
|
93
106
|
completed?: boolean | undefined;
|
|
94
|
-
query?: string | undefined;
|
|
95
107
|
}, {
|
|
96
|
-
|
|
108
|
+
query: string;
|
|
109
|
+
id?: undefined;
|
|
97
110
|
completed?: boolean | undefined;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
}>]>;
|
|
112
|
+
export declare const UpdateTodoSchema: z.ZodUnion<[z.ZodObject<{
|
|
113
|
+
id: ZodString;
|
|
114
|
+
query: ZodOptional<ZodNever>;
|
|
115
|
+
} & {
|
|
103
116
|
title: z.ZodOptional<z.ZodString>;
|
|
104
117
|
description: z.ZodOptional<z.ZodString>;
|
|
105
118
|
completed: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -118,62 +131,83 @@ export declare const UpdateTodoSchema: z.ZodEffects<z.ZodObject<{
|
|
|
118
131
|
remove?: string[] | undefined;
|
|
119
132
|
}>>;
|
|
120
133
|
}, "strict", z.ZodTypeAny, {
|
|
134
|
+
id: string;
|
|
121
135
|
description?: string | undefined;
|
|
122
136
|
title?: string | undefined;
|
|
123
|
-
id?: string | undefined;
|
|
124
137
|
completed?: boolean | undefined;
|
|
125
138
|
priority?: "low" | "normal" | "high" | undefined;
|
|
126
139
|
dueDate?: string | undefined;
|
|
127
140
|
tags?: string[] | undefined;
|
|
128
|
-
query?:
|
|
141
|
+
query?: undefined;
|
|
129
142
|
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
130
143
|
tagOps?: {
|
|
131
144
|
add?: string[] | undefined;
|
|
132
145
|
remove?: string[] | undefined;
|
|
133
146
|
} | undefined;
|
|
134
147
|
}, {
|
|
148
|
+
id: string;
|
|
135
149
|
description?: string | undefined;
|
|
136
150
|
title?: string | undefined;
|
|
137
|
-
id?: string | undefined;
|
|
138
151
|
completed?: boolean | undefined;
|
|
139
152
|
priority?: "low" | "normal" | "high" | undefined;
|
|
140
153
|
dueDate?: string | undefined;
|
|
141
154
|
tags?: string[] | undefined;
|
|
142
|
-
query?:
|
|
155
|
+
query?: undefined;
|
|
143
156
|
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
144
157
|
tagOps?: {
|
|
145
158
|
add?: string[] | undefined;
|
|
146
159
|
remove?: string[] | undefined;
|
|
147
160
|
} | undefined;
|
|
148
|
-
}>, {
|
|
161
|
+
}>, z.ZodObject<{
|
|
162
|
+
query: ZodString;
|
|
163
|
+
id: ZodOptional<ZodNever>;
|
|
164
|
+
} & {
|
|
165
|
+
title: z.ZodOptional<z.ZodString>;
|
|
166
|
+
description: z.ZodOptional<z.ZodString>;
|
|
167
|
+
completed: z.ZodOptional<z.ZodBoolean>;
|
|
168
|
+
priority: z.ZodOptional<z.ZodEnum<["low", "normal", "high"]>>;
|
|
169
|
+
dueDate: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
170
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
171
|
+
clearFields: z.ZodOptional<z.ZodArray<z.ZodEnum<["description", "dueDate", "tags"]>, "many">>;
|
|
172
|
+
tagOps: z.ZodOptional<z.ZodObject<{
|
|
173
|
+
add: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
174
|
+
remove: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
175
|
+
}, "strict", z.ZodTypeAny, {
|
|
176
|
+
add?: string[] | undefined;
|
|
177
|
+
remove?: string[] | undefined;
|
|
178
|
+
}, {
|
|
179
|
+
add?: string[] | undefined;
|
|
180
|
+
remove?: string[] | undefined;
|
|
181
|
+
}>>;
|
|
182
|
+
}, "strict", z.ZodTypeAny, {
|
|
183
|
+
query: string;
|
|
149
184
|
description?: string | undefined;
|
|
150
185
|
title?: string | undefined;
|
|
151
|
-
id?:
|
|
186
|
+
id?: undefined;
|
|
152
187
|
completed?: boolean | undefined;
|
|
153
188
|
priority?: "low" | "normal" | "high" | undefined;
|
|
154
189
|
dueDate?: string | undefined;
|
|
155
190
|
tags?: string[] | undefined;
|
|
156
|
-
query?: string | undefined;
|
|
157
191
|
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
158
192
|
tagOps?: {
|
|
159
193
|
add?: string[] | undefined;
|
|
160
194
|
remove?: string[] | undefined;
|
|
161
195
|
} | undefined;
|
|
162
196
|
}, {
|
|
197
|
+
query: string;
|
|
163
198
|
description?: string | undefined;
|
|
164
199
|
title?: string | undefined;
|
|
165
|
-
id?:
|
|
200
|
+
id?: undefined;
|
|
166
201
|
completed?: boolean | undefined;
|
|
167
202
|
priority?: "low" | "normal" | "high" | undefined;
|
|
168
203
|
dueDate?: string | undefined;
|
|
169
204
|
tags?: string[] | undefined;
|
|
170
|
-
query?: string | undefined;
|
|
171
205
|
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
172
206
|
tagOps?: {
|
|
173
207
|
add?: string[] | undefined;
|
|
174
208
|
remove?: string[] | undefined;
|
|
175
209
|
} | undefined;
|
|
176
|
-
}>;
|
|
210
|
+
}>]>;
|
|
177
211
|
export declare const ListTodosFilterSchema: z.ZodObject<{
|
|
178
212
|
completed: z.ZodOptional<z.ZodBoolean>;
|
|
179
213
|
status: z.ZodOptional<z.ZodEnum<["pending", "completed", "all"]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,CAAC,EACD,KAAK,QAAQ,EAEb,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,KAAK,CAAC;AAgEb,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAAkB,CAAC;AAE7C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAOZ,eAAO,MAAM,gBAAgB;QAxErB,SAAS;WAAS,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;;WAIpC,SAAS;QAAM,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;IAiF7C,CAAC;AAOH,eAAO,MAAM,kBAAkB;QA5FvB,SAAS;WAAS,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;;WAIpC,SAAS;QAAM,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;IAqG7C,CAAC;AAgCH,eAAO,MAAM,gBAAgB;QAzIrB,SAAS;WAAS,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAIpC,SAAS;QAAM,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwI7C,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CvB,CAAC"}
|
package/dist/schemas/inputs.js
CHANGED
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z, } from 'zod';
|
|
2
2
|
import { IsoDateSchema } from './iso_date.js';
|
|
3
3
|
const TagSchema = z.string().min(1).max(50);
|
|
4
4
|
const SortBySchema = z.enum(['dueDate', 'priority', 'createdAt', 'title']);
|
|
5
5
|
const SortOrderSchema = z.enum(['asc', 'desc']);
|
|
6
|
+
function buildSelectorSchemas(idDescription, queryDescription) {
|
|
7
|
+
return {
|
|
8
|
+
byId: z
|
|
9
|
+
.object({
|
|
10
|
+
id: z.string().min(1).max(100).describe(idDescription),
|
|
11
|
+
query: z.never().optional(),
|
|
12
|
+
})
|
|
13
|
+
.strict(),
|
|
14
|
+
byQuery: z
|
|
15
|
+
.object({
|
|
16
|
+
query: z.string().min(1).max(200).describe(queryDescription),
|
|
17
|
+
id: z.never().optional(),
|
|
18
|
+
})
|
|
19
|
+
.strict(),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
6
22
|
const TodoInputSchema = z
|
|
7
23
|
.object({
|
|
8
24
|
title: z.string().min(1).max(200).describe('The title of the todo'),
|
|
@@ -33,72 +49,44 @@ export const AddTodosSchema = z
|
|
|
33
49
|
.describe('Todos to add in a single batch'),
|
|
34
50
|
})
|
|
35
51
|
.strict();
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
.describe('The ID of the todo to complete'),
|
|
67
|
-
query: z
|
|
68
|
-
.string()
|
|
69
|
-
.min(1)
|
|
70
|
-
.max(200)
|
|
71
|
-
.optional()
|
|
72
|
-
.describe('Search text to find a single todo to complete'),
|
|
73
|
-
completed: z
|
|
74
|
-
.boolean()
|
|
75
|
-
.optional()
|
|
76
|
-
.describe('Set completion status (default: true)'),
|
|
77
|
-
})
|
|
78
|
-
.strict()
|
|
79
|
-
.refine((value) => Boolean(value.id ?? value.query), {
|
|
80
|
-
message: 'Provide id or query to identify the todo',
|
|
81
|
-
});
|
|
52
|
+
const deleteTodoSelector = buildSelectorSchemas('The ID of the todo to delete', 'Search text to find a single todo to delete');
|
|
53
|
+
export const DeleteTodoSchema = z.union([
|
|
54
|
+
deleteTodoSelector.byId.extend({
|
|
55
|
+
dryRun: z
|
|
56
|
+
.boolean()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Simulate the deletion without changing data'),
|
|
59
|
+
}),
|
|
60
|
+
deleteTodoSelector.byQuery.extend({
|
|
61
|
+
dryRun: z
|
|
62
|
+
.boolean()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Simulate the deletion without changing data'),
|
|
65
|
+
}),
|
|
66
|
+
]);
|
|
67
|
+
const completeTodoSelector = buildSelectorSchemas('The ID of the todo to complete', 'Search text to find a single todo to complete');
|
|
68
|
+
export const CompleteTodoSchema = z.union([
|
|
69
|
+
completeTodoSelector.byId.extend({
|
|
70
|
+
completed: z
|
|
71
|
+
.boolean()
|
|
72
|
+
.optional()
|
|
73
|
+
.describe('Set completion status (default: true)'),
|
|
74
|
+
}),
|
|
75
|
+
completeTodoSelector.byQuery.extend({
|
|
76
|
+
completed: z
|
|
77
|
+
.boolean()
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('Set completion status (default: true)'),
|
|
80
|
+
}),
|
|
81
|
+
]);
|
|
82
82
|
const TagOpsSchema = z
|
|
83
83
|
.object({
|
|
84
84
|
add: z.array(TagSchema).max(50).optional().describe('Tags to add'),
|
|
85
85
|
remove: z.array(TagSchema).max(50).optional().describe('Tags to remove'),
|
|
86
86
|
})
|
|
87
87
|
.strict();
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
id: z
|
|
91
|
-
.string()
|
|
92
|
-
.min(1)
|
|
93
|
-
.max(100)
|
|
94
|
-
.optional()
|
|
95
|
-
.describe('The ID of the todo to update'),
|
|
96
|
-
query: z
|
|
97
|
-
.string()
|
|
98
|
-
.min(1)
|
|
99
|
-
.max(200)
|
|
100
|
-
.optional()
|
|
101
|
-
.describe('Search text to find a single todo to update'),
|
|
88
|
+
const updateTodoSelector = buildSelectorSchemas('The ID of the todo to update', 'Search text to find a single todo to update');
|
|
89
|
+
const UpdateTodoFieldsSchema = {
|
|
102
90
|
title: z.string().min(1).max(200).optional().describe('New title'),
|
|
103
91
|
description: z.string().max(2000).optional().describe('New description'),
|
|
104
92
|
completed: z.boolean().optional().describe('Completion status'),
|
|
@@ -114,11 +102,11 @@ export const UpdateTodoSchema = z
|
|
|
114
102
|
.optional()
|
|
115
103
|
.describe('Fields to clear'),
|
|
116
104
|
tagOps: TagOpsSchema.optional().describe('Tag modifications to apply'),
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.
|
|
120
|
-
|
|
121
|
-
|
|
105
|
+
};
|
|
106
|
+
export const UpdateTodoSchema = z.union([
|
|
107
|
+
updateTodoSelector.byId.extend(UpdateTodoFieldsSchema),
|
|
108
|
+
updateTodoSelector.byQuery.extend(UpdateTodoFieldsSchema),
|
|
109
|
+
]);
|
|
122
110
|
export const ListTodosFilterSchema = z
|
|
123
111
|
.object({
|
|
124
112
|
completed: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete_todos.d.ts","sourceRoot":"","sources":["../../src/tools/delete_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4JzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuB3D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createErrorResponse, getErrorMessage } from '../lib/errors.js';
|
|
3
|
+
import { deleteTodosByIds, getTodos } from '../lib/storage.js';
|
|
4
|
+
import { createToolResponse } from '../lib/tool_response.js';
|
|
5
|
+
import { IsoDateSchema } from '../schemas/iso_date.js';
|
|
6
|
+
import { DefaultOutputSchema } from '../schemas/outputs.js';
|
|
7
|
+
const TagSchema = z.string().min(1).max(50);
|
|
8
|
+
const FILTER_KEYS = [
|
|
9
|
+
'status',
|
|
10
|
+
'priority',
|
|
11
|
+
'tag',
|
|
12
|
+
'dueBefore',
|
|
13
|
+
'dueAfter',
|
|
14
|
+
'query',
|
|
15
|
+
];
|
|
16
|
+
function hasAtLeastOneFilter(v) {
|
|
17
|
+
return FILTER_KEYS.some((key) => v[key] !== undefined);
|
|
18
|
+
}
|
|
19
|
+
const DeleteTodosSchema = z
|
|
20
|
+
.object({
|
|
21
|
+
status: z
|
|
22
|
+
.enum(['pending', 'completed', 'all'])
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Filter by status'),
|
|
25
|
+
priority: z
|
|
26
|
+
.enum(['low', 'normal', 'high'])
|
|
27
|
+
.optional()
|
|
28
|
+
.describe('Filter by priority'),
|
|
29
|
+
tag: TagSchema.optional().describe('Filter by tag'),
|
|
30
|
+
dueBefore: IsoDateSchema.optional().describe('Delete todos due before this date (ISO format)'),
|
|
31
|
+
dueAfter: IsoDateSchema.optional().describe('Delete todos due after this date (ISO format)'),
|
|
32
|
+
query: z.string().min(1).max(200).optional().describe('Search text filter'),
|
|
33
|
+
dryRun: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Preview deletion without removing data'),
|
|
37
|
+
limit: z
|
|
38
|
+
.number()
|
|
39
|
+
.int()
|
|
40
|
+
.min(1)
|
|
41
|
+
.max(100)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('Max items to delete (default: 10, safety limit)'),
|
|
44
|
+
})
|
|
45
|
+
.strict()
|
|
46
|
+
.refine(hasAtLeastOneFilter, {
|
|
47
|
+
message: 'At least one filter is required for bulk delete',
|
|
48
|
+
});
|
|
49
|
+
const DEFAULT_LIMIT = 10;
|
|
50
|
+
function resolveCompletedFilter(status) {
|
|
51
|
+
if (status === 'pending')
|
|
52
|
+
return false;
|
|
53
|
+
if (status === 'completed')
|
|
54
|
+
return true;
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
function buildPreview(todo) {
|
|
58
|
+
return { id: todo.id, title: todo.title };
|
|
59
|
+
}
|
|
60
|
+
function buildNoMatchResponse() {
|
|
61
|
+
return createToolResponse({
|
|
62
|
+
ok: true,
|
|
63
|
+
result: {
|
|
64
|
+
deletedIds: [],
|
|
65
|
+
summary: 'No todos matched the filters',
|
|
66
|
+
totalMatched: 0,
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function buildDryRunResponse(toDelete, totalMatched) {
|
|
71
|
+
return createToolResponse({
|
|
72
|
+
ok: true,
|
|
73
|
+
result: {
|
|
74
|
+
deletedIds: [],
|
|
75
|
+
summary: `Dry run: ${String(toDelete.length)} of ${String(totalMatched)} matching todos would be deleted`,
|
|
76
|
+
matches: toDelete.map(buildPreview),
|
|
77
|
+
totalMatched,
|
|
78
|
+
dryRun: true,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function buildDeletedResponse(deletedIds, totalMatched) {
|
|
83
|
+
return createToolResponse({
|
|
84
|
+
ok: true,
|
|
85
|
+
result: {
|
|
86
|
+
deletedIds,
|
|
87
|
+
summary: `Deleted ${String(deletedIds.length)} todos`,
|
|
88
|
+
totalMatched,
|
|
89
|
+
nextActions: ['list_todos'],
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async function handleDeleteTodos(input) {
|
|
94
|
+
const limit = input.limit ?? DEFAULT_LIMIT;
|
|
95
|
+
const dryRun = input.dryRun ?? false;
|
|
96
|
+
const matches = await getTodos({
|
|
97
|
+
completed: resolveCompletedFilter(input.status),
|
|
98
|
+
priority: input.priority,
|
|
99
|
+
tag: input.tag,
|
|
100
|
+
dueBefore: input.dueBefore,
|
|
101
|
+
dueAfter: input.dueAfter,
|
|
102
|
+
query: input.query,
|
|
103
|
+
});
|
|
104
|
+
if (matches.length === 0) {
|
|
105
|
+
return buildNoMatchResponse();
|
|
106
|
+
}
|
|
107
|
+
const toDelete = matches.slice(0, limit);
|
|
108
|
+
if (dryRun) {
|
|
109
|
+
return buildDryRunResponse(toDelete, matches.length);
|
|
110
|
+
}
|
|
111
|
+
const deletedIds = await deleteTodosByIds(toDelete.map((t) => t.id));
|
|
112
|
+
return buildDeletedResponse(deletedIds, matches.length);
|
|
113
|
+
}
|
|
114
|
+
export function registerDeleteTodos(server) {
|
|
115
|
+
server.registerTool('delete_todos', {
|
|
116
|
+
title: 'Delete Todos (Bulk)',
|
|
117
|
+
description: 'Delete multiple todos matching filters (requires at least one filter, defaults to limit=10 for safety)',
|
|
118
|
+
inputSchema: DeleteTodosSchema,
|
|
119
|
+
outputSchema: DefaultOutputSchema,
|
|
120
|
+
annotations: {
|
|
121
|
+
readOnlyHint: false,
|
|
122
|
+
idempotentHint: false,
|
|
123
|
+
destructiveHint: true,
|
|
124
|
+
},
|
|
125
|
+
}, async (input) => {
|
|
126
|
+
try {
|
|
127
|
+
return await handleDeleteTodos(input);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
return createErrorResponse('E_DELETE_TODOS', getErrorMessage(err));
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=delete_todos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete_todos.js","sourceRoot":"","sources":["../../src/tools/delete_todos.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQxD"}
|
package/dist/tools/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { registerAddTodo } from './add_todo.js';
|
|
|
2
2
|
import { registerAddTodos } from './add_todos.js';
|
|
3
3
|
import { registerCompleteTodo } from './complete_todo.js';
|
|
4
4
|
import { registerDeleteTodo } from './delete_todo.js';
|
|
5
|
+
import { registerDeleteTodos } from './delete_todos.js';
|
|
5
6
|
import { registerListTodos } from './list_todos.js';
|
|
6
7
|
import { registerUpdateTodo } from './update_todo.js';
|
|
7
8
|
export function registerAllTools(server) {
|
|
@@ -11,5 +12,6 @@ export function registerAllTools(server) {
|
|
|
11
12
|
registerUpdateTodo(server);
|
|
12
13
|
registerCompleteTodo(server);
|
|
13
14
|
registerDeleteTodo(server);
|
|
15
|
+
registerDeleteTodos(server);
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_todos.d.ts","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"list_todos.d.ts","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwMzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBzD"}
|
package/dist/tools/list_todos.js
CHANGED
|
@@ -75,13 +75,18 @@ function normalizeFilters(filters) {
|
|
|
75
75
|
offset: filters.offset ?? DEFAULT_OFFSET,
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
-
function countMatches(todos, predicate) {
|
|
79
|
-
return todos.reduce((total, todo) => total + (predicate(todo) ? 1 : 0), 0);
|
|
80
|
-
}
|
|
81
78
|
function computeCounts(todos, todayIso) {
|
|
79
|
+
let completed = 0;
|
|
80
|
+
let overdue = 0;
|
|
81
|
+
for (const todo of todos) {
|
|
82
|
+
if (todo.completed) {
|
|
83
|
+
completed += 1;
|
|
84
|
+
}
|
|
85
|
+
if (isOverdue(todo, todayIso)) {
|
|
86
|
+
overdue += 1;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
82
89
|
const total = todos.length;
|
|
83
|
-
const completed = countMatches(todos, (todo) => todo.completed);
|
|
84
|
-
const overdue = countMatches(todos, (todo) => isOverdue(todo, todayIso));
|
|
85
90
|
return {
|
|
86
91
|
total,
|
|
87
92
|
completed,
|
|
@@ -114,6 +119,7 @@ async function handleListTodos(filters) {
|
|
|
114
119
|
const sorted = sortTodos(allTodos, normalized.sortBy, normalized.order);
|
|
115
120
|
const paged = paginateTodos(sorted, normalized.offset, normalized.limit);
|
|
116
121
|
const summary = buildSummary(counts, paged.length);
|
|
122
|
+
const hasMore = normalized.offset + paged.length < counts.total;
|
|
117
123
|
return createToolResponse({
|
|
118
124
|
ok: true,
|
|
119
125
|
result: {
|
|
@@ -127,6 +133,7 @@ async function handleListTodos(filters) {
|
|
|
127
133
|
},
|
|
128
134
|
limit: normalized.limit,
|
|
129
135
|
offset: normalized.offset,
|
|
136
|
+
hasMore,
|
|
130
137
|
},
|
|
131
138
|
});
|
|
132
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_todos.js","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"list_todos.js","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED