@backlog-md/core 0.2.2 → 0.3.1
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/README.md +14 -14
- package/dist/abstractions/index.d.ts +2 -2
- package/dist/abstractions/index.d.ts.map +1 -1
- package/dist/core/Core.d.ts +151 -1
- package/dist/core/Core.d.ts.map +1 -1
- package/dist/core/Core.js +672 -21
- package/dist/core/Core.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/markdown/index.d.ts +56 -1
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +179 -5
- package/dist/markdown/index.js.map +1 -1
- package/dist/test-adapters/MockGitAdapter.d.ts +1 -1
- package/dist/test-adapters/MockGitAdapter.d.ts.map +1 -1
- package/dist/test-adapters/index.d.ts +5 -4
- package/dist/test-adapters/index.d.ts.map +1 -1
- package/dist/test-adapters/index.js +4 -6
- package/dist/test-adapters/index.js.map +1 -1
- package/dist/types/index.d.ts +52 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/milestones.d.ts +65 -0
- package/dist/utils/milestones.d.ts.map +1 -0
- package/dist/utils/milestones.js +187 -0
- package/dist/utils/milestones.js.map +1 -0
- package/dist/utils/sorting.d.ts.map +1 -1
- package/dist/utils/sorting.js +2 -3
- package/dist/utils/sorting.js.map +1 -1
- package/package.json +10 -18
package/README.md
CHANGED
|
@@ -15,10 +15,10 @@ Runtime-agnostic core package for Backlog.md task management.
|
|
|
15
15
|
|
|
16
16
|
## Documentation
|
|
17
17
|
|
|
18
|
-
| Document
|
|
19
|
-
|
|
20
|
-
| [Core Package Extraction Design](docs/doc-003%20-%20Core-Package-Extraction-Design.md) | Architecture and migration plan
|
|
21
|
-
| [Test Adapter Specification](docs/test-adapter-specification.md)
|
|
18
|
+
| Document | Description |
|
|
19
|
+
| -------------------------------------------------------------------------------------- | -------------------------------------------- |
|
|
20
|
+
| [Core Package Extraction Design](docs/doc-003%20-%20Core-Package-Extraction-Design.md) | Architecture and migration plan |
|
|
21
|
+
| [Test Adapter Specification](docs/test-adapter-specification.md) | Functionality requirements for test adapters |
|
|
22
22
|
|
|
23
23
|
## Architecture Diagrams
|
|
24
24
|
|
|
@@ -41,25 +41,25 @@ The core package will expose these adapter interfaces:
|
|
|
41
41
|
```typescript
|
|
42
42
|
// FileSystemAdapter - file operations
|
|
43
43
|
interface FileSystemAdapter {
|
|
44
|
-
readFile(path: string): Promise<string
|
|
45
|
-
writeFile(path: string, content: string): Promise<void
|
|
46
|
-
exists(path: string): Promise<boolean
|
|
47
|
-
createDir(path: string, options?: { recursive?: boolean }): Promise<void
|
|
48
|
-
deleteFile(path: string): Promise<void
|
|
49
|
-
rename(from: string, to: string): Promise<void
|
|
44
|
+
readFile(path: string): Promise<string>;
|
|
45
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
46
|
+
exists(path: string): Promise<boolean>;
|
|
47
|
+
createDir(path: string, options?: { recursive?: boolean }): Promise<void>;
|
|
48
|
+
deleteFile(path: string): Promise<void>;
|
|
49
|
+
rename(from: string, to: string): Promise<void>;
|
|
50
50
|
// ...
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
// GlobAdapter - pattern matching
|
|
54
54
|
interface GlobAdapter {
|
|
55
|
-
scan(pattern: string, options?: { cwd?: string }): AsyncIterable<string
|
|
55
|
+
scan(pattern: string, options?: { cwd?: string }): AsyncIterable<string>;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
// GitAdapter - git operations
|
|
59
59
|
interface GitAdapter {
|
|
60
|
-
exec(args: string[], options?: { cwd?: string }): Promise<ExecResult
|
|
61
|
-
isGitRepository(root: string): Promise<boolean
|
|
62
|
-
initRepository(root: string): Promise<void
|
|
60
|
+
exec(args: string[], options?: { cwd?: string }): Promise<ExecResult>;
|
|
61
|
+
isGitRepository(root: string): Promise<boolean>;
|
|
62
|
+
initRepository(root: string): Promise<void>;
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Re-exports common adapters from @principal-ai/repository-abstraction
|
|
5
5
|
* and adds backlog-specific adapters (GitAdapter).
|
|
6
6
|
*/
|
|
7
|
-
export type {
|
|
8
|
-
export type { GitAdapter,
|
|
7
|
+
export type { FileStats, FileSystemAdapter, GlobAdapter, GlobOptions, } from "@principal-ai/repository-abstraction";
|
|
8
|
+
export type { GitAdapter, GitExecOptions, GitExecResult, GitOperationsInterface, } from "./GitAdapter";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
|
package/dist/core/Core.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* by accepting adapter implementations for I/O operations.
|
|
6
6
|
*/
|
|
7
7
|
import type { FileSystemAdapter } from "@principal-ai/repository-abstraction";
|
|
8
|
-
import type {
|
|
8
|
+
import type { BacklogConfig, Milestone, MilestoneSummary, PaginatedResult, PaginatedTasksBySource, PaginatedTasksByStatus, PaginationOptions, SourcePaginationOptions, Task, TaskCreateInput, TaskIndexEntry, TaskListFilter, TaskUpdateInput } from "../types";
|
|
9
9
|
/**
|
|
10
10
|
* Options for initializing a new Backlog.md project
|
|
11
11
|
*/
|
|
@@ -31,6 +31,24 @@ export interface CoreOptions {
|
|
|
31
31
|
fs: FileSystemAdapter;
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Input for creating a new milestone
|
|
36
|
+
*/
|
|
37
|
+
export interface MilestoneCreateInput {
|
|
38
|
+
/** Milestone title (required) */
|
|
39
|
+
title: string;
|
|
40
|
+
/** Optional description */
|
|
41
|
+
description?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Input for updating an existing milestone
|
|
45
|
+
*/
|
|
46
|
+
export interface MilestoneUpdateInput {
|
|
47
|
+
/** New title (optional) */
|
|
48
|
+
title?: string;
|
|
49
|
+
/** New description (optional) */
|
|
50
|
+
description?: string;
|
|
51
|
+
}
|
|
34
52
|
/**
|
|
35
53
|
* Core class for Backlog.md operations
|
|
36
54
|
*
|
|
@@ -169,6 +187,65 @@ export declare class Core {
|
|
|
169
187
|
* The Map preserves the order of statuses from config.
|
|
170
188
|
*/
|
|
171
189
|
getTasksByStatus(): Map<string, Task[]>;
|
|
190
|
+
/**
|
|
191
|
+
* Get tasks grouped by milestone
|
|
192
|
+
*
|
|
193
|
+
* Returns a MilestoneSummary with:
|
|
194
|
+
* - milestones: List of milestone IDs in display order
|
|
195
|
+
* - buckets: Array of MilestoneBucket with tasks, progress, status counts
|
|
196
|
+
*
|
|
197
|
+
* The first bucket is always "Tasks without milestone".
|
|
198
|
+
* Each bucket includes progress percentage based on done status.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const summary = core.getTasksByMilestone();
|
|
203
|
+
* for (const bucket of summary.buckets) {
|
|
204
|
+
* console.log(`${bucket.label}: ${bucket.progress}% complete`);
|
|
205
|
+
* console.log(` ${bucket.doneCount}/${bucket.total} tasks done`);
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
getTasksByMilestone(): MilestoneSummary;
|
|
210
|
+
/**
|
|
211
|
+
* Get the milestones directory path
|
|
212
|
+
*/
|
|
213
|
+
private getMilestonesDir;
|
|
214
|
+
/**
|
|
215
|
+
* List all milestones from the milestones directory
|
|
216
|
+
*
|
|
217
|
+
* @returns Array of Milestone objects sorted by ID
|
|
218
|
+
*/
|
|
219
|
+
listMilestones(): Promise<Milestone[]>;
|
|
220
|
+
/**
|
|
221
|
+
* Load a single milestone by ID
|
|
222
|
+
*
|
|
223
|
+
* @param id - Milestone ID (e.g., "m-0")
|
|
224
|
+
* @returns Milestone or null if not found
|
|
225
|
+
*/
|
|
226
|
+
loadMilestone(id: string): Promise<Milestone | null>;
|
|
227
|
+
/**
|
|
228
|
+
* Create a new milestone
|
|
229
|
+
*
|
|
230
|
+
* @param input - Milestone creation input
|
|
231
|
+
* @returns Created milestone
|
|
232
|
+
*/
|
|
233
|
+
createMilestone(input: MilestoneCreateInput): Promise<Milestone>;
|
|
234
|
+
/**
|
|
235
|
+
* Update an existing milestone
|
|
236
|
+
*
|
|
237
|
+
* @param id - Milestone ID to update
|
|
238
|
+
* @param input - Fields to update
|
|
239
|
+
* @returns Updated milestone or null if not found
|
|
240
|
+
*/
|
|
241
|
+
updateMilestone(id: string, input: MilestoneUpdateInput): Promise<Milestone | null>;
|
|
242
|
+
/**
|
|
243
|
+
* Delete a milestone
|
|
244
|
+
*
|
|
245
|
+
* @param id - Milestone ID to delete
|
|
246
|
+
* @returns true if deleted, false if not found
|
|
247
|
+
*/
|
|
248
|
+
deleteMilestone(id: string): Promise<boolean>;
|
|
172
249
|
/**
|
|
173
250
|
* Get a single task by ID
|
|
174
251
|
*
|
|
@@ -206,7 +283,80 @@ export declare class Core {
|
|
|
206
283
|
*/
|
|
207
284
|
reload(): Promise<void>;
|
|
208
285
|
private ensureInitialized;
|
|
286
|
+
/**
|
|
287
|
+
* Get config with type safety (use after ensureInitialized)
|
|
288
|
+
*/
|
|
289
|
+
private get safeConfig();
|
|
209
290
|
private applyFilters;
|
|
210
291
|
private loadTasksFromDirectory;
|
|
292
|
+
/**
|
|
293
|
+
* Add a task ID to a milestone's tasks array
|
|
294
|
+
*
|
|
295
|
+
* @param taskId - Task ID to add
|
|
296
|
+
* @param milestoneId - Milestone ID to update
|
|
297
|
+
*/
|
|
298
|
+
private addTaskToMilestone;
|
|
299
|
+
/**
|
|
300
|
+
* Remove a task ID from a milestone's tasks array
|
|
301
|
+
*
|
|
302
|
+
* @param taskId - Task ID to remove
|
|
303
|
+
* @param milestoneId - Milestone ID to update
|
|
304
|
+
*/
|
|
305
|
+
private removeTaskFromMilestone;
|
|
306
|
+
/**
|
|
307
|
+
* Write a milestone to disk
|
|
308
|
+
*/
|
|
309
|
+
private writeMilestoneFile;
|
|
310
|
+
/**
|
|
311
|
+
* Get the tasks directory path
|
|
312
|
+
*/
|
|
313
|
+
private getTasksDir;
|
|
314
|
+
/**
|
|
315
|
+
* Get the completed directory path
|
|
316
|
+
*/
|
|
317
|
+
private getCompletedDir;
|
|
318
|
+
/**
|
|
319
|
+
* Create a new task
|
|
320
|
+
*
|
|
321
|
+
* @param input - Task creation input
|
|
322
|
+
* @returns Created task
|
|
323
|
+
*/
|
|
324
|
+
createTask(input: TaskCreateInput): Promise<Task>;
|
|
325
|
+
/**
|
|
326
|
+
* Update an existing task
|
|
327
|
+
*
|
|
328
|
+
* @param id - Task ID to update
|
|
329
|
+
* @param input - Fields to update
|
|
330
|
+
* @returns Updated task or null if not found
|
|
331
|
+
*/
|
|
332
|
+
updateTask(id: string, input: TaskUpdateInput): Promise<Task | null>;
|
|
333
|
+
/**
|
|
334
|
+
* Delete a task
|
|
335
|
+
*
|
|
336
|
+
* @param id - Task ID to delete
|
|
337
|
+
* @returns true if deleted, false if not found
|
|
338
|
+
*/
|
|
339
|
+
deleteTask(id: string): Promise<boolean>;
|
|
340
|
+
/**
|
|
341
|
+
* Archive a task (move from tasks/ to completed/)
|
|
342
|
+
*
|
|
343
|
+
* @param id - Task ID to archive
|
|
344
|
+
* @returns Archived task or null if not found or already archived
|
|
345
|
+
*/
|
|
346
|
+
archiveTask(id: string): Promise<Task | null>;
|
|
347
|
+
/**
|
|
348
|
+
* Restore a task (move from completed/ to tasks/)
|
|
349
|
+
*
|
|
350
|
+
* @param id - Task ID to restore
|
|
351
|
+
* @returns Restored task or null if not found or not archived
|
|
352
|
+
*/
|
|
353
|
+
restoreTask(id: string): Promise<Task | null>;
|
|
354
|
+
/**
|
|
355
|
+
* Load specific tasks by their IDs (for lazy loading milestone tasks)
|
|
356
|
+
*
|
|
357
|
+
* @param ids - Array of task IDs to load
|
|
358
|
+
* @returns Array of loaded tasks (missing tasks excluded)
|
|
359
|
+
*/
|
|
360
|
+
loadTasksByIds(ids: string[]): Promise<Task[]>;
|
|
211
361
|
}
|
|
212
362
|
//# sourceMappingURL=Core.d.ts.map
|
package/dist/core/Core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/core/Core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/core/Core.ts"],"names":[],"mappings":"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"}
|