@standardbeagle/dart-query 0.3.2

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 (128) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +427 -0
  3. package/TOOLS.md +2148 -0
  4. package/dist/api/dartClient.d.ts +123 -0
  5. package/dist/api/dartClient.d.ts.map +1 -0
  6. package/dist/api/dartClient.js +436 -0
  7. package/dist/api/dartClient.js.map +1 -0
  8. package/dist/batch/batchOperations.d.ts +14 -0
  9. package/dist/batch/batchOperations.d.ts.map +1 -0
  10. package/dist/batch/batchOperations.js +65 -0
  11. package/dist/batch/batchOperations.js.map +1 -0
  12. package/dist/cache/configCache.d.ts +20 -0
  13. package/dist/cache/configCache.d.ts.map +1 -0
  14. package/dist/cache/configCache.js +59 -0
  15. package/dist/cache/configCache.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +1120 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/parsers/csv.d.ts +44 -0
  21. package/dist/parsers/csv.d.ts.map +1 -0
  22. package/dist/parsers/csv.js +574 -0
  23. package/dist/parsers/csv.js.map +1 -0
  24. package/dist/parsers/dartql.d.ts +104 -0
  25. package/dist/parsers/dartql.d.ts.map +1 -0
  26. package/dist/parsers/dartql.js +889 -0
  27. package/dist/parsers/dartql.js.map +1 -0
  28. package/dist/tools/add_task_comment.d.ts +3 -0
  29. package/dist/tools/add_task_comment.d.ts.map +1 -0
  30. package/dist/tools/add_task_comment.js +43 -0
  31. package/dist/tools/add_task_comment.js.map +1 -0
  32. package/dist/tools/add_time_tracking.d.ts +3 -0
  33. package/dist/tools/add_time_tracking.d.ts.map +1 -0
  34. package/dist/tools/add_time_tracking.js +52 -0
  35. package/dist/tools/add_time_tracking.js.map +1 -0
  36. package/dist/tools/attach_url.d.ts +3 -0
  37. package/dist/tools/attach_url.d.ts.map +1 -0
  38. package/dist/tools/attach_url.js +38 -0
  39. package/dist/tools/attach_url.js.map +1 -0
  40. package/dist/tools/batch_delete_tasks.d.ts +3 -0
  41. package/dist/tools/batch_delete_tasks.d.ts.map +1 -0
  42. package/dist/tools/batch_delete_tasks.js +125 -0
  43. package/dist/tools/batch_delete_tasks.js.map +1 -0
  44. package/dist/tools/batch_update_tasks.d.ts +3 -0
  45. package/dist/tools/batch_update_tasks.d.ts.map +1 -0
  46. package/dist/tools/batch_update_tasks.js +327 -0
  47. package/dist/tools/batch_update_tasks.js.map +1 -0
  48. package/dist/tools/create_doc.d.ts +3 -0
  49. package/dist/tools/create_doc.d.ts.map +1 -0
  50. package/dist/tools/create_doc.js +65 -0
  51. package/dist/tools/create_doc.js.map +1 -0
  52. package/dist/tools/create_task.d.ts +3 -0
  53. package/dist/tools/create_task.d.ts.map +1 -0
  54. package/dist/tools/create_task.js +143 -0
  55. package/dist/tools/create_task.js.map +1 -0
  56. package/dist/tools/delete_doc.d.ts +3 -0
  57. package/dist/tools/delete_doc.d.ts.map +1 -0
  58. package/dist/tools/delete_doc.js +35 -0
  59. package/dist/tools/delete_doc.js.map +1 -0
  60. package/dist/tools/delete_task.d.ts +3 -0
  61. package/dist/tools/delete_task.d.ts.map +1 -0
  62. package/dist/tools/delete_task.js +35 -0
  63. package/dist/tools/delete_task.js.map +1 -0
  64. package/dist/tools/get_batch_status.d.ts +3 -0
  65. package/dist/tools/get_batch_status.d.ts.map +1 -0
  66. package/dist/tools/get_batch_status.js +24 -0
  67. package/dist/tools/get_batch_status.js.map +1 -0
  68. package/dist/tools/get_config.d.ts +3 -0
  69. package/dist/tools/get_config.d.ts.map +1 -0
  70. package/dist/tools/get_config.js +74 -0
  71. package/dist/tools/get_config.js.map +1 -0
  72. package/dist/tools/get_dartboard.d.ts +3 -0
  73. package/dist/tools/get_dartboard.d.ts.map +1 -0
  74. package/dist/tools/get_dartboard.js +43 -0
  75. package/dist/tools/get_dartboard.js.map +1 -0
  76. package/dist/tools/get_doc.d.ts +3 -0
  77. package/dist/tools/get_doc.d.ts.map +1 -0
  78. package/dist/tools/get_doc.js +34 -0
  79. package/dist/tools/get_doc.js.map +1 -0
  80. package/dist/tools/get_folder.d.ts +3 -0
  81. package/dist/tools/get_folder.d.ts.map +1 -0
  82. package/dist/tools/get_folder.js +45 -0
  83. package/dist/tools/get_folder.js.map +1 -0
  84. package/dist/tools/get_task.d.ts +3 -0
  85. package/dist/tools/get_task.d.ts.map +1 -0
  86. package/dist/tools/get_task.js +109 -0
  87. package/dist/tools/get_task.js.map +1 -0
  88. package/dist/tools/import_tasks_csv.d.ts +3 -0
  89. package/dist/tools/import_tasks_csv.d.ts.map +1 -0
  90. package/dist/tools/import_tasks_csv.js +218 -0
  91. package/dist/tools/import_tasks_csv.js.map +1 -0
  92. package/dist/tools/info.d.ts +3 -0
  93. package/dist/tools/info.d.ts.map +1 -0
  94. package/dist/tools/info.js +474 -0
  95. package/dist/tools/info.js.map +1 -0
  96. package/dist/tools/list_comments.d.ts +3 -0
  97. package/dist/tools/list_comments.d.ts.map +1 -0
  98. package/dist/tools/list_comments.js +46 -0
  99. package/dist/tools/list_comments.js.map +1 -0
  100. package/dist/tools/list_docs.d.ts +3 -0
  101. package/dist/tools/list_docs.d.ts.map +1 -0
  102. package/dist/tools/list_docs.js +101 -0
  103. package/dist/tools/list_docs.js.map +1 -0
  104. package/dist/tools/list_tasks.d.ts +3 -0
  105. package/dist/tools/list_tasks.d.ts.map +1 -0
  106. package/dist/tools/list_tasks.js +325 -0
  107. package/dist/tools/list_tasks.js.map +1 -0
  108. package/dist/tools/move_task.d.ts +3 -0
  109. package/dist/tools/move_task.d.ts.map +1 -0
  110. package/dist/tools/move_task.js +44 -0
  111. package/dist/tools/move_task.js.map +1 -0
  112. package/dist/tools/search_tasks.d.ts +3 -0
  113. package/dist/tools/search_tasks.d.ts.map +1 -0
  114. package/dist/tools/search_tasks.js +227 -0
  115. package/dist/tools/search_tasks.js.map +1 -0
  116. package/dist/tools/update_doc.d.ts +3 -0
  117. package/dist/tools/update_doc.d.ts.map +1 -0
  118. package/dist/tools/update_doc.js +102 -0
  119. package/dist/tools/update_doc.js.map +1 -0
  120. package/dist/tools/update_task.d.ts +3 -0
  121. package/dist/tools/update_task.d.ts.map +1 -0
  122. package/dist/tools/update_task.js +241 -0
  123. package/dist/tools/update_task.js.map +1 -0
  124. package/dist/types/index.d.ts +529 -0
  125. package/dist/types/index.d.ts.map +1 -0
  126. package/dist/types/index.js +65 -0
  127. package/dist/types/index.js.map +1 -0
  128. package/package.json +72 -0
@@ -0,0 +1,218 @@
1
+ import { DartClient } from '../api/dartClient.js';
2
+ import { handleGetConfig } from './get_config.js';
3
+ import { parseCSV, resolveReferences, validateRow } from '../parsers/csv.js';
4
+ import { createBatchOperation, addSuccessfulItem, addFailedItem, completeBatchOperation, } from '../batch/batchOperations.js';
5
+ import pLimit from 'p-limit';
6
+ import { DartAPIError, ValidationError, findDartboard, getDartboardNames, } from '../types/index.js';
7
+ export async function handleImportTasksCSV(input) {
8
+ const startTime = Date.now();
9
+ if (!input || typeof input !== 'object') {
10
+ throw new ValidationError('Input must be an object');
11
+ }
12
+ const DART_TOKEN = process.env.DART_TOKEN;
13
+ if (!DART_TOKEN) {
14
+ throw new DartAPIError('DART_TOKEN environment variable is required. Get your token from: https://app.dartai.com/?settings=account', 401);
15
+ }
16
+ if (!input.csv_data && !input.csv_file_path) {
17
+ throw new ValidationError('Either csv_data or csv_file_path must be provided', 'csv_data');
18
+ }
19
+ if (!input.dartboard || typeof input.dartboard !== 'string' || input.dartboard.trim() === '') {
20
+ throw new ValidationError('dartboard is required and must be a non-empty string (dartboard name or dart_id)', 'dartboard');
21
+ }
22
+ const validateOnly = input.validate_only ?? true;
23
+ const continueOnError = input.continue_on_error ?? true;
24
+ const concurrency = input.concurrency ?? 5;
25
+ if (typeof concurrency !== 'number' || concurrency < 1 || concurrency > 20) {
26
+ throw new ValidationError('concurrency must be a number between 1 and 20', 'concurrency');
27
+ }
28
+ const parseResult = parseCSV({
29
+ csv_data: input.csv_data,
30
+ csv_file_path: input.csv_file_path,
31
+ column_mapping: input.column_mapping,
32
+ });
33
+ if (parseResult.errors.length > 0) {
34
+ throw new ValidationError(`CSV parse errors: ${parseResult.errors.join('; ')}`, 'csv_data');
35
+ }
36
+ const totalRows = parseResult.data.length;
37
+ if (totalRows === 0) {
38
+ throw new ValidationError('CSV contains no valid data rows (after skipping empty lines)', 'csv_data');
39
+ }
40
+ if (totalRows > 10000) {
41
+ throw new ValidationError(`CSV contains ${totalRows} rows, exceeding safety limit of 10,000 rows. Please split into smaller batches.`, 'csv_data');
42
+ }
43
+ let config;
44
+ try {
45
+ config = await handleGetConfig({ cache_bust: false });
46
+ }
47
+ catch (error) {
48
+ if (error instanceof DartAPIError) {
49
+ throw new DartAPIError(`Failed to retrieve workspace config for validation: ${error.message}`, error.statusCode, error.response);
50
+ }
51
+ throw error;
52
+ }
53
+ const dartboard = findDartboard(config.dartboards, input.dartboard);
54
+ if (!dartboard) {
55
+ const dartboardNames = getDartboardNames(config.dartboards);
56
+ const availableDartboards = dartboardNames.slice(0, 10).join(', ') +
57
+ (dartboardNames.length > 10 ? `, ... (${dartboardNames.length - 10} more)` : '');
58
+ throw new ValidationError(`Invalid dartboard: "${input.dartboard}" not found in workspace. Available dartboards: ${availableDartboards}`, 'dartboard', dartboardNames);
59
+ }
60
+ const dartboardId = dartboard.dart_id;
61
+ const validationErrors = [];
62
+ const resolvedRows = [];
63
+ let rowNumber = 1;
64
+ for (const row of parseResult.data) {
65
+ rowNumber++;
66
+ const rowErrors = validateRow(row, config, rowNumber);
67
+ const resolveResult = resolveReferences(row, config, rowNumber);
68
+ const allRowErrors = [];
69
+ for (const err of rowErrors) {
70
+ allRowErrors.push(`${err.field}: ${err.error}`);
71
+ }
72
+ for (const err of resolveResult.errors) {
73
+ const suggestion = resolveResult.suggestions.find(s => s.field === err.field && s.input === err.value);
74
+ if (suggestion && suggestion.suggestions.length > 0) {
75
+ allRowErrors.push(`${err.field}: ${err.error} (Did you mean: ${suggestion.suggestions.join(', ')}?)`);
76
+ }
77
+ else {
78
+ allRowErrors.push(`${err.field}: ${err.error}`);
79
+ }
80
+ }
81
+ if (allRowErrors.length > 0) {
82
+ validationErrors.push({
83
+ row_number: rowNumber,
84
+ errors: allRowErrors,
85
+ });
86
+ }
87
+ else {
88
+ resolvedRows.push({
89
+ row_number: rowNumber,
90
+ data: {
91
+ ...resolveResult.resolved,
92
+ dartboard: dartboardId,
93
+ },
94
+ });
95
+ }
96
+ }
97
+ const validRows = resolvedRows.length;
98
+ const invalidRows = validationErrors.length;
99
+ if (validateOnly) {
100
+ const preview = resolvedRows.slice(0, 10).map((item) => ({
101
+ row_number: item.row_number,
102
+ task_preview: {
103
+ title: item.data.title,
104
+ description: item.data.description,
105
+ dartboard: dartboardId,
106
+ status: item.data.status,
107
+ priority: item.data.priority,
108
+ size: item.data.size,
109
+ assignee: item.data.assignee,
110
+ tags: item.data.tags,
111
+ due_at: item.data.due_at,
112
+ start_at: item.data.start_at,
113
+ parent_task: item.data.parent_task,
114
+ subtask_ids: item.data.subtask_ids,
115
+ blocker_ids: item.data.blocker_ids,
116
+ blocking_ids: item.data.blocking_ids,
117
+ duplicate_ids: item.data.duplicate_ids,
118
+ related_ids: item.data.related_ids,
119
+ },
120
+ }));
121
+ const batchOperation = createBatchOperation('import', totalRows);
122
+ return {
123
+ batch_operation_id: batchOperation.batch_operation_id,
124
+ total_rows: totalRows,
125
+ valid_rows: validRows,
126
+ invalid_rows: invalidRows,
127
+ validation_errors: validationErrors,
128
+ preview: preview,
129
+ created_tasks: 0,
130
+ failed_tasks: 0,
131
+ created_dart_ids: [],
132
+ failed_items: [],
133
+ execution_time_ms: Date.now() - startTime,
134
+ };
135
+ }
136
+ if (invalidRows > 0 && !continueOnError) {
137
+ throw new ValidationError(`CSV validation failed: ${invalidRows} rows have errors. Set continue_on_error=true to skip invalid rows or fix errors first. Run with validate_only=true to see all errors.`, 'csv_data');
138
+ }
139
+ const batchOperation = createBatchOperation('import', validRows);
140
+ const client = new DartClient({ token: DART_TOKEN });
141
+ const limit = pLimit(concurrency);
142
+ const createdDartIds = [];
143
+ const failedItems = [];
144
+ const createTasks = resolvedRows.map((item) => limit(async () => {
145
+ try {
146
+ let assignees;
147
+ if (item.data.assignee && typeof item.data.assignee === 'string') {
148
+ assignees = [item.data.assignee];
149
+ }
150
+ const taskInput = {
151
+ title: item.data.title,
152
+ dartboard: dartboardId,
153
+ description: item.data.description,
154
+ status: item.data.status,
155
+ priority: item.data.priority,
156
+ size: item.data.size,
157
+ assignees: assignees,
158
+ tags: item.data.tags,
159
+ due_at: item.data.due_at,
160
+ start_at: item.data.start_at,
161
+ parent_task: item.data.parent_task,
162
+ subtask_ids: item.data.subtask_ids,
163
+ blocker_ids: item.data.blocker_ids,
164
+ blocking_ids: item.data.blocking_ids,
165
+ duplicate_ids: item.data.duplicate_ids,
166
+ related_ids: item.data.related_ids,
167
+ };
168
+ const createdTask = await client.createTask(taskInput);
169
+ addSuccessfulItem(batchOperation.batch_operation_id, createdTask.dart_id);
170
+ createdDartIds.push(createdTask.dart_id);
171
+ }
172
+ catch (error) {
173
+ const errorMessage = error instanceof Error ? error.message : String(error);
174
+ addFailedItem(batchOperation.batch_operation_id, {
175
+ row_number: item.row_number,
176
+ error: errorMessage,
177
+ });
178
+ failedItems.push({
179
+ row_number: item.row_number,
180
+ error: errorMessage,
181
+ row_data: item.data,
182
+ });
183
+ if (!continueOnError) {
184
+ throw error;
185
+ }
186
+ }
187
+ }));
188
+ try {
189
+ await Promise.all(createTasks);
190
+ }
191
+ catch (error) {
192
+ completeBatchOperation(batchOperation.batch_operation_id, 'failed');
193
+ throw error;
194
+ }
195
+ completeBatchOperation(batchOperation.batch_operation_id, failedItems.length > 0 ? 'failed' : 'completed');
196
+ const executionTimeMs = Date.now() - startTime;
197
+ const failureRate = validRows > 0 ? failedItems.length / validRows : 0;
198
+ const rollbackSuggestion = failureRate > 0.5
199
+ ? `WARNING: ${Math.round(failureRate * 100)}% of tasks failed to create. Consider deleting created tasks and fixing errors. Created task IDs: ${createdDartIds.join(', ')}`
200
+ : undefined;
201
+ if (rollbackSuggestion && failedItems.length > 0) {
202
+ failedItems[0].error = `${failedItems[0].error}\n\n${rollbackSuggestion}`;
203
+ }
204
+ return {
205
+ batch_operation_id: batchOperation.batch_operation_id,
206
+ total_rows: totalRows,
207
+ valid_rows: validRows,
208
+ invalid_rows: invalidRows,
209
+ validation_errors: validationErrors,
210
+ preview: undefined,
211
+ created_tasks: createdDartIds.length,
212
+ failed_tasks: failedItems.length,
213
+ created_dart_ids: createdDartIds,
214
+ failed_items: failedItems,
215
+ execution_time_ms: executionTimeMs,
216
+ };
217
+ }
218
+ //# sourceMappingURL=import_tasks_csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import_tasks_csv.js","sourceRoot":"","sources":["../../src/tools/import_tasks_csv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { InfoInput, InfoOutput } from '../types/index.js';
2
+ export declare function handleInfo(input: InfoInput): Promise<InfoOutput>;
3
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAge1D,wBAAsB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAuCtE"}