@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 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { DartConfig } from '../types/index.js';
2
+ export interface CSVParseResult {
3
+ data: Array<Record<string, string>>;
4
+ warnings: string[];
5
+ errors: string[];
6
+ }
7
+ export interface ValidationError {
8
+ row_number: number;
9
+ field: string;
10
+ error: string;
11
+ value: unknown;
12
+ }
13
+ export interface ResolveReferencesResult {
14
+ resolved: Record<string, unknown>;
15
+ errors: ValidationError[];
16
+ suggestions: Array<{
17
+ field: string;
18
+ input: string;
19
+ suggestions: string[];
20
+ }>;
21
+ }
22
+ export interface CSVParseOptions {
23
+ csv_data?: string;
24
+ csv_file_path?: string;
25
+ column_mapping?: Record<string, string>;
26
+ }
27
+ export declare function parseCSV(options: CSVParseOptions): CSVParseResult;
28
+ export declare function normalizeColumns(data: Array<Record<string, string>>, originalHeaders: string[], customMapping?: Record<string, string>): CSVParseResult;
29
+ export declare function isValidDartIdFormat(id: string): boolean;
30
+ export declare function parseIdList(value: string, fieldName: string, rowNumber: number): {
31
+ ids: string[];
32
+ errors: Array<{
33
+ row_number: number;
34
+ field: string;
35
+ error: string;
36
+ value: string;
37
+ }>;
38
+ };
39
+ export declare function isRelationshipArrayField(fieldName: string): boolean;
40
+ export declare function getSupportedColumns(): Record<string, string[]>;
41
+ export declare function isValidColumn(columnName: string): boolean;
42
+ export declare function resolveReferences(row: Record<string, string>, config: DartConfig, rowNumber: number): ResolveReferencesResult;
43
+ export declare function validateRow(row: Record<string, string>, config: DartConfig, rowNumber: number): ValidationError[];
44
+ //# sourceMappingURL=csv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../src/parsers/csv.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AA2DD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA2EjE;AAUD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACnC,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,cAAc,CAwHhB;AAwBD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAWD,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAuCvG;AAKD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEnE;AASD,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAE9D;AAKD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAKzD;AAsED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,uBAAuB,CAsNzB;AAeD,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,CAmLnB"}
@@ -0,0 +1,574 @@
1
+ import Papa from 'papaparse';
2
+ import { readFileSync } from 'fs';
3
+ const COLUMN_ALIASES = {
4
+ title: ['title', 'task name', 'task', 'name', 'summary'],
5
+ description: ['description', 'desc', 'details', 'notes', 'body'],
6
+ assignee: ['assignee', 'assigned to', 'owner', 'responsible'],
7
+ status: ['status', 'state', 'stage'],
8
+ priority: ['priority', 'pri', 'importance'],
9
+ size: ['size', 'estimate', 'points', 'story points'],
10
+ tags: ['tags', 'labels', 'categories'],
11
+ dartboard: ['dartboard', 'board', 'project'],
12
+ due_at: ['due_at', 'due date', 'due', 'deadline'],
13
+ start_at: ['start_at', 'start date', 'start', 'begins'],
14
+ parent_task: ['parent_task', 'parent', 'parent_id'],
15
+ subtask_ids: ['subtask_ids', 'subtasks', 'child_tasks'],
16
+ blocker_ids: ['blocker_ids', 'blockers', 'blocked_by'],
17
+ blocking_ids: ['blocking_ids', 'blocking', 'blocks'],
18
+ duplicate_ids: ['duplicate_ids', 'duplicates'],
19
+ related_ids: ['related_ids', 'related'],
20
+ };
21
+ const VALID_COLUMNS = Object.keys(COLUMN_ALIASES);
22
+ const REQUIRED_COLUMNS = ['title'];
23
+ export function parseCSV(options) {
24
+ const warnings = [];
25
+ const errors = [];
26
+ if (!options.csv_data && !options.csv_file_path) {
27
+ errors.push('Either csv_data or csv_file_path must be provided');
28
+ return { data: [], warnings, errors };
29
+ }
30
+ if (options.csv_data && options.csv_file_path) {
31
+ warnings.push('Both csv_data and csv_file_path provided; using csv_data');
32
+ }
33
+ let csvContent;
34
+ try {
35
+ if (options.csv_data) {
36
+ csvContent = options.csv_data;
37
+ }
38
+ else {
39
+ csvContent = readFileSync(options.csv_file_path, 'utf-8');
40
+ }
41
+ }
42
+ catch (err) {
43
+ errors.push(`Failed to read CSV file: ${err instanceof Error ? err.message : String(err)}`);
44
+ return { data: [], warnings, errors };
45
+ }
46
+ if (!csvContent || csvContent.trim().length === 0) {
47
+ errors.push('CSV content is empty');
48
+ return { data: [], warnings, errors };
49
+ }
50
+ const parseResult = Papa.parse(csvContent, {
51
+ header: true,
52
+ skipEmptyLines: true,
53
+ transformHeader: (header) => header.trim(),
54
+ delimiter: '',
55
+ });
56
+ if (parseResult.errors.length > 0) {
57
+ for (const error of parseResult.errors) {
58
+ if (error.message && error.message.includes('Unable to auto-detect delimiting character')) {
59
+ continue;
60
+ }
61
+ errors.push(`CSV parse error at row ${error.row ?? 'unknown'}: ${error.message}`);
62
+ }
63
+ }
64
+ if (!parseResult.meta.fields || parseResult.meta.fields.length === 0) {
65
+ errors.push('CSV must have a header row with column names');
66
+ return { data: [], warnings, errors };
67
+ }
68
+ const normalizeResult = normalizeColumns(parseResult.data, parseResult.meta.fields, options.column_mapping);
69
+ warnings.push(...normalizeResult.warnings);
70
+ errors.push(...normalizeResult.errors);
71
+ return {
72
+ data: normalizeResult.data,
73
+ warnings,
74
+ errors,
75
+ };
76
+ }
77
+ export function normalizeColumns(data, originalHeaders, customMapping) {
78
+ const warnings = [];
79
+ const errors = [];
80
+ const headerMapping = new Map();
81
+ const unmappedHeaders = [];
82
+ for (const header of originalHeaders) {
83
+ const trimmedHeader = header.trim();
84
+ if (!trimmedHeader) {
85
+ warnings.push('Found empty column header; skipping');
86
+ continue;
87
+ }
88
+ let mappedField = null;
89
+ if (customMapping && customMapping[trimmedHeader]) {
90
+ mappedField = customMapping[trimmedHeader];
91
+ if (!VALID_COLUMNS.includes(mappedField)) {
92
+ warnings.push(`Custom mapping for "${trimmedHeader}" maps to unknown field "${mappedField}"; using anyway`);
93
+ }
94
+ headerMapping.set(trimmedHeader, mappedField);
95
+ continue;
96
+ }
97
+ if (customMapping) {
98
+ const lowerHeader = trimmedHeader.toLowerCase();
99
+ for (const [key, value] of Object.entries(customMapping)) {
100
+ if (key.toLowerCase() === lowerHeader) {
101
+ mappedField = value;
102
+ if (!VALID_COLUMNS.includes(mappedField)) {
103
+ warnings.push(`Custom mapping for "${trimmedHeader}" maps to unknown field "${mappedField}"; using anyway`);
104
+ }
105
+ headerMapping.set(trimmedHeader, mappedField);
106
+ break;
107
+ }
108
+ }
109
+ if (mappedField)
110
+ continue;
111
+ }
112
+ const lowerHeader = trimmedHeader.toLowerCase();
113
+ for (const [canonicalName, aliases] of Object.entries(COLUMN_ALIASES)) {
114
+ if (aliases.some(alias => alias.toLowerCase() === lowerHeader)) {
115
+ mappedField = canonicalName;
116
+ headerMapping.set(trimmedHeader, mappedField);
117
+ break;
118
+ }
119
+ }
120
+ if (!mappedField) {
121
+ unmappedHeaders.push(trimmedHeader);
122
+ }
123
+ }
124
+ if (unmappedHeaders.length > 0) {
125
+ warnings.push(`Unknown columns (will be ignored): ${unmappedHeaders.join(', ')}`);
126
+ warnings.push(`Valid columns: ${VALID_COLUMNS.join(', ')}`);
127
+ }
128
+ const mappedFields = Array.from(headerMapping.values());
129
+ for (const required of REQUIRED_COLUMNS) {
130
+ if (!mappedFields.includes(required)) {
131
+ errors.push(`Required column '${required}' is missing`);
132
+ errors.push(`Hint: '${required}' can be named: ${COLUMN_ALIASES[required].join(', ')}`);
133
+ }
134
+ }
135
+ if (errors.length > 0) {
136
+ return { data: [], warnings, errors };
137
+ }
138
+ const normalizedData = [];
139
+ let rowNumber = 1;
140
+ for (const row of data) {
141
+ rowNumber++;
142
+ const normalizedRow = {};
143
+ for (const [originalHeader, normalizedField] of headerMapping.entries()) {
144
+ const value = row[originalHeader];
145
+ if (value !== undefined && value !== null && value.trim() !== '') {
146
+ normalizedRow[normalizedField] = value.trim();
147
+ }
148
+ }
149
+ for (const required of REQUIRED_COLUMNS) {
150
+ if (mappedFields.includes(required)) {
151
+ if (!normalizedRow[required] || normalizedRow[required].trim() === '') {
152
+ warnings.push(`Row ${rowNumber}: Required field '${required}' is empty`);
153
+ }
154
+ }
155
+ }
156
+ if (Object.keys(normalizedRow).length > 0) {
157
+ normalizedData.push(normalizedRow);
158
+ }
159
+ }
160
+ return {
161
+ data: normalizedData,
162
+ warnings,
163
+ errors,
164
+ };
165
+ }
166
+ const RELATIONSHIP_ARRAY_FIELDS = [
167
+ 'subtask_ids',
168
+ 'blocker_ids',
169
+ 'blocking_ids',
170
+ 'duplicate_ids',
171
+ 'related_ids',
172
+ ];
173
+ export function isValidDartIdFormat(id) {
174
+ return typeof id === 'string' && id.trim().length > 0;
175
+ }
176
+ export function parseIdList(value, fieldName, rowNumber) {
177
+ const errors = [];
178
+ if (!value || value.trim().length === 0) {
179
+ return { ids: [], errors };
180
+ }
181
+ const rawIds = value.split(',').map(id => id.trim()).filter(id => id.length > 0);
182
+ if (rawIds.length === 0) {
183
+ return { ids: [], errors };
184
+ }
185
+ const validIds = [];
186
+ const invalidIds = [];
187
+ for (const id of rawIds) {
188
+ if (isValidDartIdFormat(id)) {
189
+ validIds.push(id);
190
+ }
191
+ else {
192
+ invalidIds.push(id === '' ? '(empty string)' : id);
193
+ }
194
+ }
195
+ if (invalidIds.length > 0) {
196
+ errors.push({
197
+ row_number: rowNumber,
198
+ field: fieldName,
199
+ error: `Invalid dart_id format: ${invalidIds.join(', ')}. Each ID must be a non-empty string.`,
200
+ value: value,
201
+ });
202
+ }
203
+ return { ids: validIds, errors };
204
+ }
205
+ export function isRelationshipArrayField(fieldName) {
206
+ return RELATIONSHIP_ARRAY_FIELDS.includes(fieldName);
207
+ }
208
+ export function getSupportedColumns() {
209
+ return { ...COLUMN_ALIASES };
210
+ }
211
+ export function isValidColumn(columnName) {
212
+ const lower = columnName.toLowerCase();
213
+ return VALID_COLUMNS.some(valid => COLUMN_ALIASES[valid].some(alias => alias.toLowerCase() === lower));
214
+ }
215
+ function levenshteinDistance(a, b) {
216
+ const matrix = [];
217
+ for (let i = 0; i <= b.length; i++) {
218
+ matrix[i] = [i];
219
+ }
220
+ for (let j = 0; j <= a.length; j++) {
221
+ matrix[0][j] = j;
222
+ }
223
+ for (let i = 1; i <= b.length; i++) {
224
+ for (let j = 1; j <= a.length; j++) {
225
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
226
+ matrix[i][j] = matrix[i - 1][j - 1];
227
+ }
228
+ else {
229
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
230
+ }
231
+ }
232
+ }
233
+ return matrix[b.length][a.length];
234
+ }
235
+ function findClosestMatches(input, candidates, threshold = 2) {
236
+ const matches = [];
237
+ for (const candidate of candidates) {
238
+ const distance = levenshteinDistance(input.toLowerCase(), candidate.toLowerCase());
239
+ if (distance <= threshold) {
240
+ matches.push({ value: candidate, distance });
241
+ }
242
+ }
243
+ matches.sort((a, b) => a.distance - b.distance);
244
+ return matches.slice(0, 3).map(m => m.value);
245
+ }
246
+ export function resolveReferences(row, config, rowNumber) {
247
+ const resolved = { ...row };
248
+ const errors = [];
249
+ const suggestions = [];
250
+ if (row.dartboard) {
251
+ const dartboardInput = row.dartboard.trim();
252
+ if (dartboardInput.length === 0) {
253
+ errors.push({
254
+ row_number: rowNumber,
255
+ field: 'dartboard',
256
+ error: 'Dartboard value is empty or whitespace-only',
257
+ value: row.dartboard,
258
+ });
259
+ }
260
+ else {
261
+ const dartboard = config.dartboards.find(d => d.name.toLowerCase() === dartboardInput.toLowerCase() ||
262
+ d.dart_id.toLowerCase() === dartboardInput.toLowerCase());
263
+ if (dartboard) {
264
+ resolved.dartboard = dartboard.dart_id;
265
+ }
266
+ else {
267
+ const dartboardNames = config.dartboards.map(d => d.name);
268
+ const matches = findClosestMatches(dartboardInput, dartboardNames);
269
+ errors.push({
270
+ row_number: rowNumber,
271
+ field: 'dartboard',
272
+ error: `Dartboard '${dartboardInput}' not found in workspace`,
273
+ value: dartboardInput,
274
+ });
275
+ if (matches.length > 0) {
276
+ suggestions.push({
277
+ field: 'dartboard',
278
+ input: dartboardInput,
279
+ suggestions: matches,
280
+ });
281
+ }
282
+ }
283
+ }
284
+ }
285
+ if (row.status) {
286
+ const statusInput = row.status.trim();
287
+ const status = config.statuses.find(s => s.name.toLowerCase() === statusInput.toLowerCase() ||
288
+ s.dart_id.toLowerCase() === statusInput.toLowerCase());
289
+ if (status) {
290
+ resolved.status = status.dart_id;
291
+ }
292
+ else {
293
+ const statusNames = config.statuses.map(s => s.name);
294
+ const matches = findClosestMatches(statusInput, statusNames);
295
+ errors.push({
296
+ row_number: rowNumber,
297
+ field: 'status',
298
+ error: `Status '${statusInput}' not found in workspace`,
299
+ value: statusInput,
300
+ });
301
+ if (matches.length > 0) {
302
+ suggestions.push({
303
+ field: 'status',
304
+ input: statusInput,
305
+ suggestions: matches,
306
+ });
307
+ }
308
+ }
309
+ }
310
+ if (row.assignee) {
311
+ const assigneeInput = row.assignee.trim();
312
+ const assignee = config.assignees.find(a => (a.email && a.email.toLowerCase() === assigneeInput.toLowerCase()) ||
313
+ a.name.toLowerCase() === assigneeInput.toLowerCase() ||
314
+ (a.dart_id && a.dart_id.toLowerCase() === assigneeInput.toLowerCase()));
315
+ if (assignee) {
316
+ resolved.assignee = assignee.dart_id || assignee.email || assignee.name;
317
+ }
318
+ else {
319
+ const assigneeEmails = config.assignees.filter(a => a.email).map(a => a.email);
320
+ const assigneeNames = config.assignees.map(a => a.name);
321
+ const emailMatches = findClosestMatches(assigneeInput, assigneeEmails);
322
+ const nameMatches = findClosestMatches(assigneeInput, assigneeNames);
323
+ const allMatches = [...new Set([...emailMatches, ...nameMatches])];
324
+ errors.push({
325
+ row_number: rowNumber,
326
+ field: 'assignee',
327
+ error: `Assignee '${assigneeInput}' not found in workspace`,
328
+ value: assigneeInput,
329
+ });
330
+ if (allMatches.length > 0) {
331
+ suggestions.push({
332
+ field: 'assignee',
333
+ input: assigneeInput,
334
+ suggestions: allMatches,
335
+ });
336
+ }
337
+ }
338
+ }
339
+ if (row.tags) {
340
+ const tagsInput = row.tags.trim();
341
+ if (tagsInput.length === 0) {
342
+ errors.push({
343
+ row_number: rowNumber,
344
+ field: 'tags',
345
+ error: 'Tags value is empty or whitespace-only',
346
+ value: row.tags,
347
+ });
348
+ }
349
+ else {
350
+ const tagInputNames = tagsInput.split(',').map(t => t.trim()).filter(t => t.length > 0);
351
+ if (tagInputNames.length === 0) {
352
+ errors.push({
353
+ row_number: rowNumber,
354
+ field: 'tags',
355
+ error: 'Tags value contains only commas, no tag names',
356
+ value: row.tags,
357
+ });
358
+ }
359
+ else {
360
+ const resolvedTags = [];
361
+ let hasTagErrors = false;
362
+ for (const tagInput of tagInputNames) {
363
+ const tag = config.tags.find(t => t.name.toLowerCase() === tagInput.toLowerCase() ||
364
+ t.dart_id.toLowerCase() === tagInput.toLowerCase());
365
+ if (tag) {
366
+ resolvedTags.push(tag.dart_id);
367
+ }
368
+ else {
369
+ const tagNames = config.tags.map(t => t.name);
370
+ const matches = findClosestMatches(tagInput, tagNames);
371
+ errors.push({
372
+ row_number: rowNumber,
373
+ field: 'tags',
374
+ error: `Tag '${tagInput}' not found in workspace`,
375
+ value: tagInput,
376
+ });
377
+ if (matches.length > 0) {
378
+ suggestions.push({
379
+ field: 'tags',
380
+ input: tagInput,
381
+ suggestions: matches,
382
+ });
383
+ }
384
+ hasTagErrors = true;
385
+ }
386
+ }
387
+ if (!hasTagErrors && resolvedTags.length > 0) {
388
+ resolved.tags = resolvedTags;
389
+ }
390
+ else if (hasTagErrors) {
391
+ delete resolved.tags;
392
+ }
393
+ }
394
+ }
395
+ }
396
+ for (const field of RELATIONSHIP_ARRAY_FIELDS) {
397
+ if (row[field]) {
398
+ const parseResult = parseIdList(row[field], field, rowNumber);
399
+ for (const err of parseResult.errors) {
400
+ errors.push({
401
+ row_number: err.row_number,
402
+ field: err.field,
403
+ error: err.error,
404
+ value: err.value,
405
+ });
406
+ }
407
+ if (parseResult.ids.length > 0) {
408
+ resolved[field] = parseResult.ids;
409
+ }
410
+ else {
411
+ delete resolved[field];
412
+ }
413
+ }
414
+ }
415
+ return { resolved, errors, suggestions };
416
+ }
417
+ export function validateRow(row, config, rowNumber) {
418
+ const errors = [];
419
+ if (!row.title || row.title.trim().length === 0) {
420
+ errors.push({
421
+ row_number: rowNumber,
422
+ field: 'title',
423
+ error: 'Title is required',
424
+ value: row.title || '',
425
+ });
426
+ }
427
+ if (row.title && row.title.length > 500) {
428
+ errors.push({
429
+ row_number: rowNumber,
430
+ field: 'title',
431
+ error: 'Title exceeds maximum length of 500 characters',
432
+ value: row.title,
433
+ });
434
+ }
435
+ if (row.priority) {
436
+ const priorityInput = row.priority.trim().toLowerCase();
437
+ const validPriority = config.priorities.find(p => p.label.toLowerCase() === priorityInput ||
438
+ p.value.toString() === row.priority.trim());
439
+ if (!validPriority) {
440
+ const availablePriorities = config.priorities.map(p => `${p.label} (${p.value})`).join(', ');
441
+ errors.push({
442
+ row_number: rowNumber,
443
+ field: 'priority',
444
+ error: `Invalid priority: "${row.priority}". Available priorities: ${availablePriorities}`,
445
+ value: row.priority,
446
+ });
447
+ }
448
+ }
449
+ if (row.size) {
450
+ const sizeInput = row.size.trim().toLowerCase();
451
+ const validSize = config.sizes.find(s => s.label.toLowerCase() === sizeInput ||
452
+ s.value.toString() === row.size.trim());
453
+ if (!validSize) {
454
+ const availableSizes = config.sizes.slice(0, 10).map(s => `${s.label} (${s.value})`).join(', ') +
455
+ (config.sizes.length > 10 ? `, ... (${config.sizes.length - 10} more)` : '');
456
+ errors.push({
457
+ row_number: rowNumber,
458
+ field: 'size',
459
+ error: `Invalid size: "${row.size}". Available sizes: ${availableSizes}`,
460
+ value: row.size,
461
+ });
462
+ }
463
+ }
464
+ if (row.due_at) {
465
+ if (!isValidISO8601Date(row.due_at)) {
466
+ errors.push({
467
+ row_number: rowNumber,
468
+ field: 'due_at',
469
+ error: 'Due date must be in ISO8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)',
470
+ value: row.due_at,
471
+ });
472
+ }
473
+ }
474
+ if (row.start_at) {
475
+ if (!isValidISO8601Date(row.start_at)) {
476
+ errors.push({
477
+ row_number: rowNumber,
478
+ field: 'start_at',
479
+ error: 'Start date must be in ISO8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)',
480
+ value: row.start_at,
481
+ });
482
+ }
483
+ }
484
+ if (row.dartboard) {
485
+ const dartboardInput = row.dartboard.trim();
486
+ const dartboard = config.dartboards.find(d => d.name.toLowerCase() === dartboardInput.toLowerCase() ||
487
+ d.dart_id.toLowerCase() === dartboardInput.toLowerCase());
488
+ if (!dartboard) {
489
+ errors.push({
490
+ row_number: rowNumber,
491
+ field: 'dartboard',
492
+ error: `Dartboard '${dartboardInput}' not found in workspace`,
493
+ value: dartboardInput,
494
+ });
495
+ }
496
+ }
497
+ if (row.status) {
498
+ const statusInput = row.status.trim();
499
+ const status = config.statuses.find(s => s.name.toLowerCase() === statusInput.toLowerCase() ||
500
+ s.dart_id.toLowerCase() === statusInput.toLowerCase());
501
+ if (!status) {
502
+ errors.push({
503
+ row_number: rowNumber,
504
+ field: 'status',
505
+ error: `Status '${statusInput}' not found in workspace`,
506
+ value: statusInput,
507
+ });
508
+ }
509
+ }
510
+ if (row.assignee) {
511
+ const assigneeInput = row.assignee.trim();
512
+ const assignee = config.assignees.find(a => (a.email && a.email.toLowerCase() === assigneeInput.toLowerCase()) ||
513
+ a.name.toLowerCase() === assigneeInput.toLowerCase() ||
514
+ (a.dart_id && a.dart_id.toLowerCase() === assigneeInput.toLowerCase()));
515
+ if (!assignee) {
516
+ errors.push({
517
+ row_number: rowNumber,
518
+ field: 'assignee',
519
+ error: `Assignee '${assigneeInput}' not found in workspace`,
520
+ value: assigneeInput,
521
+ });
522
+ }
523
+ }
524
+ if (row.tags) {
525
+ const tagsInput = row.tags.trim();
526
+ const tagInputNames = tagsInput.split(',').map(t => t.trim()).filter(t => t.length > 0);
527
+ for (const tagInput of tagInputNames) {
528
+ const tag = config.tags.find(t => t.name.toLowerCase() === tagInput.toLowerCase() ||
529
+ t.dart_id.toLowerCase() === tagInput.toLowerCase());
530
+ if (!tag) {
531
+ errors.push({
532
+ row_number: rowNumber,
533
+ field: 'tags',
534
+ error: `Tag '${tagInput}' not found in workspace`,
535
+ value: tagInput,
536
+ });
537
+ }
538
+ }
539
+ }
540
+ for (const field of RELATIONSHIP_ARRAY_FIELDS) {
541
+ if (row[field]) {
542
+ const parseResult = parseIdList(row[field], field, rowNumber);
543
+ for (const err of parseResult.errors) {
544
+ errors.push({
545
+ row_number: err.row_number,
546
+ field: err.field,
547
+ error: err.error,
548
+ value: err.value,
549
+ });
550
+ }
551
+ }
552
+ }
553
+ return errors;
554
+ }
555
+ function isValidISO8601Date(dateString) {
556
+ const iso8601Pattern = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?)?$/;
557
+ if (!iso8601Pattern.test(dateString)) {
558
+ return false;
559
+ }
560
+ const date = new Date(dateString);
561
+ if (isNaN(date.getTime())) {
562
+ return false;
563
+ }
564
+ const [datePart] = dateString.split('T');
565
+ const [year, month, day] = datePart.split('-').map(Number);
566
+ if (date.getUTCFullYear() !== year)
567
+ return false;
568
+ if (date.getUTCMonth() + 1 !== month)
569
+ return false;
570
+ if (date.getUTCDate() !== day)
571
+ return false;
572
+ return true;
573
+ }
574
+ //# sourceMappingURL=csv.js.map