@ofocus/sdk 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/api-report/ofocus-sdk.api.md +496 -1
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/commands/archive.d.ts +48 -0
  5. package/dist/commands/archive.d.ts.map +1 -0
  6. package/dist/commands/archive.js +132 -0
  7. package/dist/commands/archive.js.map +1 -0
  8. package/dist/commands/attachments.d.ts +67 -0
  9. package/dist/commands/attachments.d.ts.map +1 -0
  10. package/dist/commands/attachments.js +160 -0
  11. package/dist/commands/attachments.js.map +1 -0
  12. package/dist/commands/defer.d.ts +37 -0
  13. package/dist/commands/defer.d.ts.map +1 -0
  14. package/dist/commands/defer.js +198 -0
  15. package/dist/commands/defer.js.map +1 -0
  16. package/dist/commands/deferred.d.ts +18 -0
  17. package/dist/commands/deferred.d.ts.map +1 -0
  18. package/dist/commands/deferred.js +146 -0
  19. package/dist/commands/deferred.js.map +1 -0
  20. package/dist/commands/duplicate.d.ts +15 -0
  21. package/dist/commands/duplicate.d.ts.map +1 -0
  22. package/dist/commands/duplicate.js +49 -0
  23. package/dist/commands/duplicate.js.map +1 -0
  24. package/dist/commands/focus.d.ts +26 -0
  25. package/dist/commands/focus.d.ts.map +1 -0
  26. package/dist/commands/focus.js +182 -0
  27. package/dist/commands/focus.js.map +1 -0
  28. package/dist/commands/folders-crud.d.ts +18 -0
  29. package/dist/commands/folders-crud.d.ts.map +1 -0
  30. package/dist/commands/folders-crud.js +117 -0
  31. package/dist/commands/folders-crud.js.map +1 -0
  32. package/dist/commands/forecast.d.ts +20 -0
  33. package/dist/commands/forecast.d.ts.map +1 -0
  34. package/dist/commands/forecast.js +145 -0
  35. package/dist/commands/forecast.js.map +1 -0
  36. package/dist/commands/open.d.ts +17 -0
  37. package/dist/commands/open.d.ts.map +1 -0
  38. package/dist/commands/open.js +88 -0
  39. package/dist/commands/open.js.map +1 -0
  40. package/dist/commands/projects-crud.d.ts +30 -0
  41. package/dist/commands/projects-crud.d.ts.map +1 -0
  42. package/dist/commands/projects-crud.js +209 -0
  43. package/dist/commands/projects-crud.js.map +1 -0
  44. package/dist/commands/quick.d.ts +41 -0
  45. package/dist/commands/quick.d.ts.map +1 -0
  46. package/dist/commands/quick.js +257 -0
  47. package/dist/commands/quick.js.map +1 -0
  48. package/dist/commands/review.d.ts +18 -0
  49. package/dist/commands/review.d.ts.map +1 -1
  50. package/dist/commands/review.js +87 -1
  51. package/dist/commands/review.js.map +1 -1
  52. package/dist/commands/stats.d.ts +48 -0
  53. package/dist/commands/stats.d.ts.map +1 -0
  54. package/dist/commands/stats.js +212 -0
  55. package/dist/commands/stats.js.map +1 -0
  56. package/dist/commands/sync.d.ts +32 -0
  57. package/dist/commands/sync.d.ts.map +1 -0
  58. package/dist/commands/sync.js +63 -0
  59. package/dist/commands/sync.js.map +1 -0
  60. package/dist/commands/taskpaper.d.ts +46 -0
  61. package/dist/commands/taskpaper.d.ts.map +1 -0
  62. package/dist/commands/taskpaper.js +359 -0
  63. package/dist/commands/taskpaper.js.map +1 -0
  64. package/dist/commands/templates.d.ts +134 -0
  65. package/dist/commands/templates.d.ts.map +1 -0
  66. package/dist/commands/templates.js +252 -0
  67. package/dist/commands/templates.js.map +1 -0
  68. package/dist/commands/url.d.ts +16 -0
  69. package/dist/commands/url.d.ts.map +1 -0
  70. package/dist/commands/url.js +96 -0
  71. package/dist/commands/url.js.map +1 -0
  72. package/dist/index.d.ts +38 -5
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +30 -3
  75. package/dist/index.js.map +1 -1
  76. package/dist/types.d.ts +27 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/validation.d.ts +1 -1
  79. package/dist/validation.d.ts.map +1 -1
  80. package/dist/validation.js +3 -1
  81. package/dist/validation.js.map +1 -1
  82. package/package.json +12 -12
  83. package/dist/ofocus-sdk.d.ts +0 -608
@@ -0,0 +1,252 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import * as os from "node:os";
4
+ import { success, failureMessage } from "../result.js";
5
+ import { queryTasks } from "./tasks.js";
6
+ import { queryProjects } from "./projects.js";
7
+ import { createProject } from "./create-project.js";
8
+ import { escapeAppleScript } from "../escape.js";
9
+ import { runAppleScript, omniFocusScriptWithHelpers } from "../applescript.js";
10
+ /**
11
+ * Get the templates directory path.
12
+ */
13
+ function getTemplatesDir() {
14
+ return path.join(os.homedir(), ".config", "ofocus", "templates");
15
+ }
16
+ /**
17
+ * Ensure the templates directory exists.
18
+ */
19
+ function ensureTemplatesDir() {
20
+ const dir = getTemplatesDir();
21
+ fs.mkdirSync(dir, { recursive: true });
22
+ }
23
+ /**
24
+ * Get the path for a template file.
25
+ */
26
+ function getTemplatePath(name) {
27
+ const sanitized = name.replace(/[^a-zA-Z0-9_-]/g, "_");
28
+ return path.join(getTemplatesDir(), `${sanitized}.json`);
29
+ }
30
+ /**
31
+ * Calculate day offset from a reference date.
32
+ */
33
+ function calculateDayOffset(dateStr, referenceDate) {
34
+ if (!dateStr)
35
+ return null;
36
+ const date = new Date(dateStr);
37
+ if (isNaN(date.getTime()))
38
+ return null;
39
+ const diffMs = date.getTime() - referenceDate.getTime();
40
+ const diffDays = Math.round(diffMs / (1000 * 60 * 60 * 24));
41
+ return diffDays;
42
+ }
43
+ /**
44
+ * Calculate a date from an offset.
45
+ */
46
+ function calculateDateFromOffset(offsetDays, baseDate) {
47
+ if (offsetDays === null)
48
+ return null;
49
+ const date = new Date(baseDate);
50
+ date.setDate(date.getDate() + offsetDays);
51
+ return date.toISOString().split("T")[0] ?? null;
52
+ }
53
+ /**
54
+ * Convert an OmniFocus task to a template task.
55
+ */
56
+ function taskToTemplateTask(task, referenceDate) {
57
+ return {
58
+ title: task.name,
59
+ note: task.note,
60
+ flagged: task.flagged,
61
+ estimatedMinutes: task.estimatedMinutes,
62
+ tags: task.tags,
63
+ deferOffsetDays: calculateDayOffset(task.deferDate, referenceDate),
64
+ dueOffsetDays: calculateDayOffset(task.dueDate, referenceDate),
65
+ };
66
+ }
67
+ /**
68
+ * Save a project as a template.
69
+ */
70
+ export async function saveTemplate(options) {
71
+ const { name, sourceProject, description } = options;
72
+ // Find the source project
73
+ const projectsResult = await queryProjects({});
74
+ if (!projectsResult.success) {
75
+ return failureMessage(projectsResult.error?.message ?? "Failed to query projects");
76
+ }
77
+ const projects = projectsResult.data ?? [];
78
+ const project = projects.find((p) => p.id === sourceProject || p.name === sourceProject);
79
+ if (!project) {
80
+ return failureMessage(`Project not found: ${sourceProject}`);
81
+ }
82
+ // Get all tasks for this project
83
+ const tasksResult = await queryTasks({ project: project.name });
84
+ if (!tasksResult.success) {
85
+ return failureMessage(tasksResult.error?.message ?? "Failed to query tasks");
86
+ }
87
+ const allTasks = tasksResult.data ?? [];
88
+ const referenceDate = new Date();
89
+ // Convert tasks to template format (flat structure for simplicity)
90
+ const templateTasks = allTasks.map((t) => taskToTemplateTask(t, referenceDate));
91
+ // Create the template
92
+ const template = {
93
+ name,
94
+ description: description ?? null,
95
+ sequential: project.sequential,
96
+ note: project.note,
97
+ defaultFolder: project.folderName,
98
+ tasks: templateTasks,
99
+ createdAt: new Date().toISOString(),
100
+ sourceProject: project.name,
101
+ };
102
+ // Save to file
103
+ ensureTemplatesDir();
104
+ const templatePath = getTemplatePath(name);
105
+ fs.writeFileSync(templatePath, JSON.stringify(template, null, 2));
106
+ return success({
107
+ name,
108
+ taskCount: templateTasks.length,
109
+ path: templatePath,
110
+ });
111
+ }
112
+ /**
113
+ * List all available templates.
114
+ */
115
+ export function listTemplates() {
116
+ ensureTemplatesDir();
117
+ const dir = getTemplatesDir();
118
+ const files = fs.readdirSync(dir).filter((f) => f.endsWith(".json"));
119
+ const templates = [];
120
+ for (const file of files) {
121
+ const filePath = path.join(dir, file);
122
+ const content = fs.readFileSync(filePath, "utf-8");
123
+ const template = JSON.parse(content);
124
+ templates.push({
125
+ name: template.name,
126
+ description: template.description,
127
+ taskCount: template.tasks.length,
128
+ createdAt: template.createdAt,
129
+ sourceProject: template.sourceProject,
130
+ });
131
+ }
132
+ return success({ templates });
133
+ }
134
+ /**
135
+ * Get a template by name.
136
+ */
137
+ export function getTemplate(name) {
138
+ ensureTemplatesDir();
139
+ const templatePath = getTemplatePath(name);
140
+ if (!fs.existsSync(templatePath)) {
141
+ return failureMessage(`Template not found: ${name}`);
142
+ }
143
+ const content = fs.readFileSync(templatePath, "utf-8");
144
+ const template = JSON.parse(content);
145
+ return success(template);
146
+ }
147
+ /**
148
+ * Create a task directly in a project via AppleScript.
149
+ */
150
+ async function createTaskInProject(projectName, task, baseDate) {
151
+ const dueDate = calculateDateFromOffset(task.dueOffsetDays, baseDate);
152
+ const deferDate = calculateDateFromOffset(task.deferOffsetDays, baseDate);
153
+ const properties = [`name:"${escapeAppleScript(task.title)}"`];
154
+ if (task.note) {
155
+ properties.push(`note:"${escapeAppleScript(task.note)}"`);
156
+ }
157
+ if (task.flagged) {
158
+ properties.push("flagged:true");
159
+ }
160
+ if (dueDate) {
161
+ properties.push(`due date:date "${dueDate}"`);
162
+ }
163
+ if (deferDate) {
164
+ properties.push(`defer date:date "${deferDate}"`);
165
+ }
166
+ if (task.estimatedMinutes !== null) {
167
+ properties.push(`estimated minutes:${String(task.estimatedMinutes)}`);
168
+ }
169
+ let tagScript = "";
170
+ if (task.tags.length > 0) {
171
+ for (const tagName of task.tags) {
172
+ tagScript += `
173
+ try
174
+ set theTag to first flattened tag whose name is "${escapeAppleScript(tagName)}"
175
+ add theTag to tags of newTask
176
+ end try
177
+ `;
178
+ }
179
+ }
180
+ const script = `
181
+ set proj to first flattened project whose name is "${escapeAppleScript(projectName)}"
182
+ set newTask to make new task at end of tasks of proj with properties {${properties.join(", ")}}
183
+ ${tagScript}
184
+ return "ok"
185
+ `;
186
+ const result = await runAppleScript(omniFocusScriptWithHelpers(script));
187
+ return result.success;
188
+ }
189
+ /**
190
+ * Create a new project from a template.
191
+ */
192
+ export async function createFromTemplate(options) {
193
+ const { templateName, projectName, folder, baseDate } = options;
194
+ // Load the template
195
+ const templateResult = getTemplate(templateName);
196
+ if (!templateResult.success) {
197
+ return failureMessage(templateResult.error?.message ?? "Failed to load template");
198
+ }
199
+ const template = templateResult.data;
200
+ if (!template) {
201
+ return failureMessage("Template data is empty");
202
+ }
203
+ const newProjectName = projectName ?? template.name;
204
+ const targetFolder = folder ?? template.defaultFolder ?? undefined;
205
+ // Validate and parse baseDate
206
+ const baseDateObj = baseDate ? new Date(baseDate) : new Date();
207
+ if (baseDate && Number.isNaN(baseDateObj.getTime())) {
208
+ return failureMessage(`Invalid base date: ${baseDate}`);
209
+ }
210
+ // Create the project
211
+ const projectResult = await createProject(newProjectName, {
212
+ folderName: targetFolder,
213
+ sequential: template.sequential,
214
+ note: template.note ?? undefined,
215
+ });
216
+ if (!projectResult.success) {
217
+ return failureMessage(projectResult.error?.message ?? "Failed to create project");
218
+ }
219
+ const createdProject = projectResult.data;
220
+ if (!createdProject) {
221
+ return failureMessage("Created project data is empty");
222
+ }
223
+ // Create tasks from template
224
+ let tasksCreated = 0;
225
+ for (const templateTask of template.tasks) {
226
+ const success = await createTaskInProject(newProjectName, templateTask, baseDateObj);
227
+ if (success) {
228
+ tasksCreated++;
229
+ }
230
+ }
231
+ return success({
232
+ projectName: newProjectName,
233
+ tasksCreated,
234
+ projectId: createdProject.id,
235
+ });
236
+ }
237
+ /**
238
+ * Delete a template.
239
+ */
240
+ export function deleteTemplate(name) {
241
+ ensureTemplatesDir();
242
+ const templatePath = getTemplatePath(name);
243
+ if (!fs.existsSync(templatePath)) {
244
+ return failureMessage(`Template not found: ${name}`);
245
+ }
246
+ fs.unlinkSync(templatePath);
247
+ return success({
248
+ name,
249
+ deleted: true,
250
+ });
251
+ }
252
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/commands/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { CliOutput } from "../types.js";
2
+ /**
3
+ * Result from URL generation.
4
+ */
5
+ export interface UrlResult {
6
+ id: string;
7
+ type: "task" | "project" | "folder" | "tag";
8
+ url: string;
9
+ name: string;
10
+ }
11
+ /**
12
+ * Generate an OmniFocus URL scheme deep link for a task, project, folder, or tag.
13
+ * Returns the omnifocus:/// URL that can be used to open the item in OmniFocus.
14
+ */
15
+ export declare function generateUrl(id: string): Promise<CliOutput<UrlResult>>;
16
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/commands/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAsBD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CA+E3E"}
@@ -0,0 +1,96 @@
1
+ import { success, failure } from "../result.js";
2
+ import { ErrorCode, createError } from "../errors.js";
3
+ import { runAppleScript, omniFocusScriptWithHelpers } from "../applescript.js";
4
+ /**
5
+ * Validate an ID for URL operations (can be any OmniFocus item type).
6
+ */
7
+ function validateUrlId(id) {
8
+ if (!id || id.trim() === "") {
9
+ return { code: "INVALID_ID_FORMAT", message: "ID cannot be empty" };
10
+ }
11
+ // IDs should be alphanumeric with possible dashes/underscores
12
+ const idPattern = /^[a-zA-Z0-9_-]+$/;
13
+ if (!idPattern.test(id)) {
14
+ return {
15
+ code: "INVALID_ID_FORMAT",
16
+ message: `Invalid ID format: ${id}`,
17
+ };
18
+ }
19
+ return null;
20
+ }
21
+ /**
22
+ * Generate an OmniFocus URL scheme deep link for a task, project, folder, or tag.
23
+ * Returns the omnifocus:/// URL that can be used to open the item in OmniFocus.
24
+ */
25
+ export async function generateUrl(id) {
26
+ // Validate ID
27
+ const error = validateUrlId(id);
28
+ if (error) {
29
+ return failure(createError(ErrorCode.INVALID_ID_FORMAT, error.message));
30
+ }
31
+ const script = `
32
+ set itemId to "${id}"
33
+ set itemType to ""
34
+ set itemName to ""
35
+ set itemUrl to ""
36
+
37
+ -- Try task first
38
+ try
39
+ set theItem to first flattened task whose id is itemId
40
+ set itemType to "task"
41
+ set itemName to name of theItem
42
+ set itemUrl to "omnifocus:///task/" & itemId
43
+ end try
44
+
45
+ -- Try project
46
+ if itemType is "" then
47
+ try
48
+ set theItem to first flattened project whose id is itemId
49
+ set itemType to "project"
50
+ set itemName to name of theItem
51
+ set itemUrl to "omnifocus:///project/" & itemId
52
+ end try
53
+ end if
54
+
55
+ -- Try folder
56
+ if itemType is "" then
57
+ try
58
+ set theItem to first flattened folder whose id is itemId
59
+ set itemType to "folder"
60
+ set itemName to name of theItem
61
+ set itemUrl to "omnifocus:///folder/" & itemId
62
+ end try
63
+ end if
64
+
65
+ -- Try tag
66
+ if itemType is "" then
67
+ try
68
+ set theItem to first flattened tag whose id is itemId
69
+ set itemType to "tag"
70
+ set itemName to name of theItem
71
+ set itemUrl to "omnifocus:///tag/" & itemId
72
+ end try
73
+ end if
74
+
75
+ if itemType is "" then
76
+ error "Item not found with ID: " & itemId
77
+ end if
78
+
79
+ return "{" & ¬
80
+ "\\"id\\": \\"" & itemId & "\\"," & ¬
81
+ "\\"type\\": \\"" & itemType & "\\"," & ¬
82
+ "\\"url\\": \\"" & itemUrl & "\\"," & ¬
83
+ "\\"name\\": \\"" & (my escapeJson(itemName)) & "\\"" & ¬
84
+ "}"
85
+ `;
86
+ const result = await runAppleScript(omniFocusScriptWithHelpers(script));
87
+ if (!result.success) {
88
+ return failure(result.error ??
89
+ createError(ErrorCode.UNKNOWN_ERROR, "Failed to generate URL"));
90
+ }
91
+ if (result.data === undefined) {
92
+ return failure(createError(ErrorCode.UNKNOWN_ERROR, "No result returned"));
93
+ }
94
+ return success(result.data);
95
+ }
96
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/commands/url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAY/E;;GAEG;AACH,SAAS,aAAa,CAAC,EAAU;IAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IACtE,CAAC;IAED,8DAA8D;IAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,sBAAsB,EAAE,EAAE;SACpC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IAC1C,cAAc;IACd,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG;qBACI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDpB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,0BAA0B,CAAC,MAAM,CAAC,CACnC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,OAAO,CACZ,MAAM,CAAC,KAAK;YACV,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,wBAAwB,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { CliOutput, CliError, CommandInfo, OFTask, OFProject, OFTag, OFPerspective, OFFolder, OFTaskWithChildren, InboxOptions, TaskQueryOptions, ProjectQueryOptions, TagQueryOptions, TaskUpdateOptions, CreateProjectOptions, CreateFolderOptions, FolderQueryOptions, CreateTagOptions, UpdateTagOptions, SubtaskQueryOptions, BatchResult, RepetitionRule, SearchOptions, ReviewResult, } from "./types.js";
1
+ export type { CliOutput, CliError, CommandInfo, OFTask, OFProject, OFTag, OFPerspective, OFFolder, OFTaskWithChildren, InboxOptions, TaskQueryOptions, ProjectQueryOptions, TagQueryOptions, TaskUpdateOptions, CreateProjectOptions, CreateFolderOptions, FolderQueryOptions, CreateTagOptions, UpdateTagOptions, SubtaskQueryOptions, BatchResult, RepetitionRule, SearchOptions, ReviewResult, UpdateProjectOptions, UpdateFolderOptions, DuplicateTaskOptions, } from "./types.js";
2
2
  export { ErrorCode, createError, parseAppleScriptError } from "./errors.js";
3
3
  export type { ErrorCode as ErrorCodeType } from "./errors.js";
4
4
  export { success, failure, failureMessage } from "./result.js";
@@ -15,16 +15,49 @@ export type { CompleteResult } from "./commands/complete.js";
15
15
  export { updateTask } from "./commands/update.js";
16
16
  export { createProject } from "./commands/create-project.js";
17
17
  export { createFolder, queryFolders } from "./commands/folders.js";
18
+ export { updateProject, deleteProject, dropProject, } from "./commands/projects-crud.js";
19
+ export type { DeleteProjectResult, DropProjectResult, } from "./commands/projects-crud.js";
20
+ export { updateFolder, deleteFolder } from "./commands/folders-crud.js";
21
+ export type { DeleteFolderResult } from "./commands/folders-crud.js";
18
22
  export { dropTask, deleteTask } from "./commands/drop.js";
19
23
  export type { DropResult, DeleteResult } from "./commands/drop.js";
20
24
  export { createTag, updateTag, deleteTag } from "./commands/tags-crud.js";
21
25
  export type { DeleteTagResult } from "./commands/tags-crud.js";
22
26
  export { createSubtask, querySubtasks, moveTaskToParent, } from "./commands/subtasks.js";
23
- export { completeTasks, updateTasks, deleteTasks, } from "./commands/batch.js";
24
- export type { BatchCompleteItem, BatchDeleteItem, } from "./commands/batch.js";
25
- export { buildRRule, buildRepetitionRuleScript } from "./commands/repetition.js";
27
+ export { completeTasks, updateTasks, deleteTasks } from "./commands/batch.js";
28
+ export type { BatchCompleteItem, BatchDeleteItem } from "./commands/batch.js";
29
+ export { buildRRule, buildRepetitionRuleScript, } from "./commands/repetition.js";
26
30
  export { searchTasks } from "./commands/search.js";
27
31
  export { listPerspectives, queryPerspective } from "./commands/perspectives.js";
28
32
  export type { PerspectiveQueryOptions } from "./commands/perspectives.js";
29
- export { reviewProject, queryProjectsForReview } from "./commands/review.js";
33
+ export { reviewProject, queryProjectsForReview, getReviewInterval, setReviewInterval, } from "./commands/review.js";
34
+ export type { ReviewIntervalResult } from "./commands/review.js";
35
+ export { queryForecast } from "./commands/forecast.js";
36
+ export type { ForecastOptions } from "./commands/forecast.js";
37
+ export { focus, unfocus, getFocused } from "./commands/focus.js";
38
+ export type { FocusResult } from "./commands/focus.js";
39
+ export { queryDeferred } from "./commands/deferred.js";
40
+ export type { DeferredQueryOptions } from "./commands/deferred.js";
41
+ export { generateUrl } from "./commands/url.js";
42
+ export type { UrlResult } from "./commands/url.js";
43
+ export { deferTask, deferTasks } from "./commands/defer.js";
44
+ export type { DeferOptions, DeferResult, BatchDeferItem, } from "./commands/defer.js";
45
+ export { quickCapture, parseQuickInput } from "./commands/quick.js";
46
+ export type { ParsedQuickInput, QuickOptions } from "./commands/quick.js";
47
+ export { exportTaskPaper, importTaskPaper } from "./commands/taskpaper.js";
48
+ export type { TaskPaperExportOptions, TaskPaperExportResult, TaskPaperImportOptions, TaskPaperImportResult, } from "./commands/taskpaper.js";
49
+ export { getStats } from "./commands/stats.js";
50
+ export type { StatsOptions, StatsResult } from "./commands/stats.js";
51
+ export { saveTemplate, listTemplates, getTemplate, createFromTemplate, deleteTemplate, } from "./commands/templates.js";
52
+ export type { TemplateTask, ProjectTemplate, TemplateSummary, SaveTemplateOptions, SaveTemplateResult, ListTemplatesResult, CreateFromTemplateOptions, CreateFromTemplateResult, DeleteTemplateResult, } from "./commands/templates.js";
53
+ export { addAttachment, listAttachments, removeAttachment, } from "./commands/attachments.js";
54
+ export type { OFAttachment, AddAttachmentResult, ListAttachmentsResult, RemoveAttachmentResult, } from "./commands/attachments.js";
55
+ export { archiveTasks, compactDatabase } from "./commands/archive.js";
56
+ export type { ArchiveOptions, ArchiveResult, CompactResult, } from "./commands/archive.js";
57
+ export { getSyncStatus, triggerSync } from "./commands/sync.js";
58
+ export type { SyncStatus, SyncResult } from "./commands/sync.js";
59
+ export { duplicateTask } from "./commands/duplicate.js";
60
+ export type { DuplicateTaskResult } from "./commands/duplicate.js";
61
+ export { openItem } from "./commands/open.js";
62
+ export type { OpenResult } from "./commands/open.js";
30
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC5E,YAAY,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,YAAY,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,6 +17,10 @@ export { updateTask } from "./commands/update.js";
17
17
  // Phase 1: Projects & Folders
18
18
  export { createProject } from "./commands/create-project.js";
19
19
  export { createFolder, queryFolders } from "./commands/folders.js";
20
+ // Phase 1: Project CRUD
21
+ export { updateProject, deleteProject, dropProject, } from "./commands/projects-crud.js";
22
+ // Phase 1: Folder CRUD
23
+ export { updateFolder, deleteFolder } from "./commands/folders-crud.js";
20
24
  // Phase 1: Drop/Delete Tasks
21
25
  export { dropTask, deleteTask } from "./commands/drop.js";
22
26
  // Phase 1: Tags CRUD
@@ -24,13 +28,36 @@ export { createTag, updateTag, deleteTag } from "./commands/tags-crud.js";
24
28
  // Phase 2: Subtasks
25
29
  export { createSubtask, querySubtasks, moveTaskToParent, } from "./commands/subtasks.js";
26
30
  // Phase 3: Batch Operations
27
- export { completeTasks, updateTasks, deleteTasks, } from "./commands/batch.js";
31
+ export { completeTasks, updateTasks, deleteTasks } from "./commands/batch.js";
28
32
  // Phase 3: Repetition helpers
29
- export { buildRRule, buildRepetitionRuleScript } from "./commands/repetition.js";
33
+ export { buildRRule, buildRepetitionRuleScript, } from "./commands/repetition.js";
30
34
  // Phase 4: Search
31
35
  export { searchTasks } from "./commands/search.js";
32
36
  // Phase 4: Perspectives
33
37
  export { listPerspectives, queryPerspective } from "./commands/perspectives.js";
34
38
  // Phase 4: Review
35
- export { reviewProject, queryProjectsForReview } from "./commands/review.js";
39
+ export { reviewProject, queryProjectsForReview, getReviewInterval, setReviewInterval, } from "./commands/review.js";
40
+ // Phase 5: Forecast, Focus, Deferred
41
+ export { queryForecast } from "./commands/forecast.js";
42
+ export { focus, unfocus, getFocused } from "./commands/focus.js";
43
+ export { queryDeferred } from "./commands/deferred.js";
44
+ export { generateUrl } from "./commands/url.js";
45
+ export { deferTask, deferTasks } from "./commands/defer.js";
46
+ // Phase 6: Quick Capture
47
+ export { quickCapture, parseQuickInput } from "./commands/quick.js";
48
+ // Phase 6: TaskPaper Import/Export
49
+ export { exportTaskPaper, importTaskPaper } from "./commands/taskpaper.js";
50
+ // Phase 6: Statistics
51
+ export { getStats } from "./commands/stats.js";
52
+ // Phase 7: Templates
53
+ export { saveTemplate, listTemplates, getTemplate, createFromTemplate, deleteTemplate, } from "./commands/templates.js";
54
+ // Phase 8: Attachments
55
+ export { addAttachment, listAttachments, removeAttachment, } from "./commands/attachments.js";
56
+ // Phase 8: Archive & Cleanup
57
+ export { archiveTasks, compactDatabase } from "./commands/archive.js";
58
+ // Phase 8: Sync
59
+ export { getSyncStatus, triggerSync } from "./commands/sync.js";
60
+ // Phase 9: Task Utilities
61
+ export { duplicateTask } from "./commands/duplicate.js";
62
+ export { openItem } from "./commands/open.js";
36
63
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4BA,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5E,iBAAiB;AACjB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,wBAAwB;AACxB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,WAAW;AACX,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEnE,6BAA6B;AAC7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG1D,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG1E,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAM7B,8BAA8B;AAC9B,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGhF,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -225,4 +225,31 @@ export interface ReviewResult {
225
225
  lastReviewed: string;
226
226
  nextReviewDate: string | null;
227
227
  }
228
+ /**
229
+ * Options for updating a project.
230
+ */
231
+ export interface UpdateProjectOptions {
232
+ name?: string | undefined;
233
+ note?: string | undefined;
234
+ status?: "active" | "on-hold" | "completed" | "dropped" | undefined;
235
+ folderId?: string | undefined;
236
+ folderName?: string | undefined;
237
+ sequential?: boolean | undefined;
238
+ dueDate?: string | undefined;
239
+ deferDate?: string | undefined;
240
+ }
241
+ /**
242
+ * Options for updating a folder.
243
+ */
244
+ export interface UpdateFolderOptions {
245
+ name?: string | undefined;
246
+ parentFolderId?: string | undefined;
247
+ parentFolderName?: string | undefined;
248
+ }
249
+ /**
250
+ * Options for duplicating a task.
251
+ */
252
+ export interface DuplicateTaskOptions {
253
+ includeSubtasks?: boolean | undefined;
254
+ }
228
255
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAGD,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,MAAM;IAChD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,WAAW,GAAG,eAAe,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC"}
@@ -4,7 +4,7 @@ import { type CliError } from "./errors.js";
4
4
  * IDs are alphanumeric with possible dashes/underscores.
5
5
  * Returns null if valid, or a CliError if invalid.
6
6
  */
7
- export declare function validateId(id: string, type: "task" | "project" | "tag"): CliError | null;
7
+ export declare function validateId(id: string, type: "task" | "project" | "tag" | "folder" | "item"): CliError | null;
8
8
  /**
9
9
  * Validate a date string for use with AppleScript.
10
10
  * Returns null if valid (or empty), or a CliError if invalid.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAC/B,QAAQ,GAAG,IAAI,CAoBjB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA4BnE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAwBxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAe7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAe5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAkB7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,SAAS,GAClJ,QAAQ,GAAG,IAAI,CA4DjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,QAAQ,GAAG,IAAI,CAcjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAkBlE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GACnD,QAAQ,GAAG,IAAI,CAoBjB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA4BnE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAwBxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAe7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAe5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAe7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EACA;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACD,SAAS,GACZ,QAAQ,GAAG,IAAI,CAgEjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,QAAQ,GAAG,IAAI,CAcjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAkBlE"}
@@ -133,7 +133,9 @@ export function validateRepetitionRule(rule) {
133
133
  }
134
134
  }
135
135
  if (rule.dayOfMonth !== undefined) {
136
- if (rule.dayOfMonth < 1 || rule.dayOfMonth > 31 || !Number.isInteger(rule.dayOfMonth)) {
136
+ if (rule.dayOfMonth < 1 ||
137
+ rule.dayOfMonth > 31 ||
138
+ !Number.isInteger(rule.dayOfMonth)) {
137
139
  return createError(ErrorCode.VALIDATION_ERROR, `Invalid day of month: ${String(rule.dayOfMonth)}`, "Day of month must be an integer 1-31");
138
140
  }
139
141
  }