@schnick371/devsteps-shared 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/add.d.ts +1 -1
- package/dist/core/add.d.ts.map +1 -1
- package/dist/core/add.js +8 -8
- package/dist/core/add.js.map +1 -1
- package/dist/core/archive.d.ts +2 -2
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +11 -11
- package/dist/core/archive.js.map +1 -1
- package/dist/core/bulk-update.d.ts +6 -6
- package/dist/core/bulk-update.d.ts.map +1 -1
- package/dist/core/bulk-update.js +11 -11
- package/dist/core/bulk-update.js.map +1 -1
- package/dist/core/context.d.ts +4 -4
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +13 -13
- package/dist/core/context.js.map +1 -1
- package/dist/core/get.d.ts +1 -1
- package/dist/core/get.d.ts.map +1 -1
- package/dist/core/get.js +4 -4
- package/dist/core/get.js.map +1 -1
- package/dist/core/list.d.ts +1 -1
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +10 -10
- package/dist/core/list.js.map +1 -1
- package/dist/core/update.d.ts +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +7 -7
- package/dist/core/update.js.map +1 -1
- package/package.json +1 -1
package/dist/core/add.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export interface AddItemResult {
|
|
|
18
18
|
* Core business logic for adding a new item to devsteps
|
|
19
19
|
* Pure function that handles all file I/O and validation
|
|
20
20
|
*/
|
|
21
|
-
export declare function addItem(
|
|
21
|
+
export declare function addItem(devstepsDir: string, args: AddItemArgs): Promise<AddItemResult>;
|
|
22
22
|
//# sourceMappingURL=add.d.ts.map
|
package/dist/core/add.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAgB7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAgB7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CA2E5F"}
|
package/dist/core/add.js
CHANGED
|
@@ -7,16 +7,16 @@ import { getConfig } from './config.js';
|
|
|
7
7
|
* Core business logic for adding a new item to devsteps
|
|
8
8
|
* Pure function that handles all file I/O and validation
|
|
9
9
|
*/
|
|
10
|
-
export async function addItem(
|
|
10
|
+
export async function addItem(devstepsDir, args) {
|
|
11
11
|
// Check if initialized
|
|
12
|
-
if (!existsSync(
|
|
12
|
+
if (!existsSync(devstepsDir)) {
|
|
13
13
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
14
14
|
}
|
|
15
15
|
// Read config and index
|
|
16
|
-
const config = await getConfig(
|
|
16
|
+
const config = await getConfig(devstepsDir);
|
|
17
17
|
// Get counter (auto-migration ensures refs-style index is always available)
|
|
18
18
|
const counterKey = getTypePrefix(args.type); // Use uppercase prefix for consistency
|
|
19
|
-
const counters = loadCounters(
|
|
19
|
+
const counters = loadCounters(devstepsDir);
|
|
20
20
|
const counter = (counters[counterKey] || 0) + 1;
|
|
21
21
|
// Generate ID using global counter
|
|
22
22
|
const typeFolder = TYPE_TO_DIRECTORY[args.type];
|
|
@@ -53,7 +53,7 @@ export async function addItem(devstepsir, args) {
|
|
|
53
53
|
metadata: {},
|
|
54
54
|
};
|
|
55
55
|
// Save metadata
|
|
56
|
-
const itemDir = join(
|
|
56
|
+
const itemDir = join(devstepsDir, typeFolder);
|
|
57
57
|
const metadataPath = join(itemDir, `${itemId}.json`);
|
|
58
58
|
const descriptionPath = join(itemDir, `${itemId}.md`);
|
|
59
59
|
writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
|
|
@@ -61,11 +61,11 @@ export async function addItem(devstepsir, args) {
|
|
|
61
61
|
const description = args.description || `# ${args.title}\n\n<!-- Add detailed description here -->\n`;
|
|
62
62
|
writeFileSync(descriptionPath, description);
|
|
63
63
|
// Update index (auto-migration ensures refs-style always available)
|
|
64
|
-
const currentCounters = loadCounters(
|
|
64
|
+
const currentCounters = loadCounters(devstepsDir);
|
|
65
65
|
currentCounters[counterKey] = counter;
|
|
66
|
-
updateCounters(
|
|
66
|
+
updateCounters(devstepsDir, currentCounters);
|
|
67
67
|
// Add to all relevant indexes (by-type, by-status, by-priority)
|
|
68
|
-
addItemToIndex(
|
|
68
|
+
addItemToIndex(devstepsDir, metadata);
|
|
69
69
|
return {
|
|
70
70
|
itemId,
|
|
71
71
|
metadata,
|
package/dist/core/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,aAAa,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,YAAY,EACZ,cAAc,EACd,cAAc,GAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmBxC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"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"}
|
package/dist/core/archive.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface ArchiveItemResult {
|
|
|
7
7
|
/**
|
|
8
8
|
* Core business logic for archiving a single item
|
|
9
9
|
*/
|
|
10
|
-
export declare function archiveItem(
|
|
10
|
+
export declare function archiveItem(devstepsDir: string, itemId: string): Promise<ArchiveItemResult>;
|
|
11
11
|
export interface PurgeItemsArgs {
|
|
12
12
|
status?: ItemStatus[];
|
|
13
13
|
type?: string;
|
|
@@ -20,5 +20,5 @@ export interface PurgeItemsResult {
|
|
|
20
20
|
/**
|
|
21
21
|
* Core business logic for bulk archiving items
|
|
22
22
|
*/
|
|
23
|
-
export declare function purgeItems(
|
|
23
|
+
export declare function purgeItems(devstepsDir: string, args?: PurgeItemsArgs): Promise<PurgeItemsResult>;
|
|
24
24
|
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqDjG;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA6C3B"}
|
package/dist/core/archive.js
CHANGED
|
@@ -6,8 +6,8 @@ import { getItem } from './get.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Core business logic for archiving a single item
|
|
8
8
|
*/
|
|
9
|
-
export async function archiveItem(
|
|
10
|
-
if (!existsSync(
|
|
9
|
+
export async function archiveItem(devstepsDir, itemId) {
|
|
10
|
+
if (!existsSync(devstepsDir)) {
|
|
11
11
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
12
12
|
}
|
|
13
13
|
const parsed = parseItemId(itemId);
|
|
@@ -15,16 +15,16 @@ export async function archiveItem(devstepsir, itemId) {
|
|
|
15
15
|
throw new Error(`Invalid item ID: ${itemId}`);
|
|
16
16
|
}
|
|
17
17
|
const typeFolder = TYPE_TO_DIRECTORY[parsed.type];
|
|
18
|
-
const metadataPath = join(
|
|
19
|
-
const descriptionPath = join(
|
|
18
|
+
const metadataPath = join(devstepsDir, typeFolder, `${itemId}.json`);
|
|
19
|
+
const descriptionPath = join(devstepsDir, typeFolder, `${itemId}.md`);
|
|
20
20
|
if (!existsSync(metadataPath)) {
|
|
21
21
|
throw new Error(`Item not found: ${itemId}`);
|
|
22
22
|
}
|
|
23
23
|
// Read metadata
|
|
24
|
-
const { metadata } = await getItem(
|
|
24
|
+
const { metadata } = await getItem(devstepsDir, itemId);
|
|
25
25
|
const originalStatus = metadata.status;
|
|
26
26
|
// Create archive directory if not exists
|
|
27
|
-
const archiveDir = join(
|
|
27
|
+
const archiveDir = join(devstepsDir, 'archive', typeFolder);
|
|
28
28
|
mkdirSync(archiveDir, { recursive: true });
|
|
29
29
|
// Move files to archive
|
|
30
30
|
const archiveMetadataPath = join(archiveDir, `${itemId}.json`);
|
|
@@ -35,7 +35,7 @@ export async function archiveItem(devstepsir, itemId) {
|
|
|
35
35
|
}
|
|
36
36
|
// Update index (auto-migration ensures refs-style always available)
|
|
37
37
|
// Remove from all indexes (by-type, by-status, by-priority)
|
|
38
|
-
removeItemFromIndex(
|
|
38
|
+
removeItemFromIndex(devstepsDir, itemId, metadata.type, metadata.status, metadata.eisenhower);
|
|
39
39
|
// Note: refs-style doesn't track archived_items in index
|
|
40
40
|
// Archive metadata already contains all needed info
|
|
41
41
|
return {
|
|
@@ -47,11 +47,11 @@ export async function archiveItem(devstepsir, itemId) {
|
|
|
47
47
|
/**
|
|
48
48
|
* Core business logic for bulk archiving items
|
|
49
49
|
*/
|
|
50
|
-
export async function purgeItems(
|
|
51
|
-
if (!existsSync(
|
|
50
|
+
export async function purgeItems(devstepsDir, args = {}) {
|
|
51
|
+
if (!existsSync(devstepsDir)) {
|
|
52
52
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
53
53
|
}
|
|
54
|
-
const indexPath = join(
|
|
54
|
+
const indexPath = join(devstepsDir, 'index.json');
|
|
55
55
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
56
56
|
// Find items to archive
|
|
57
57
|
let itemsToArchive = [...index.items];
|
|
@@ -74,7 +74,7 @@ export async function purgeItems(devstepsir, args = {}) {
|
|
|
74
74
|
const archivedIds = [];
|
|
75
75
|
for (const item of itemsToArchive) {
|
|
76
76
|
try {
|
|
77
|
-
await archiveItem(
|
|
77
|
+
await archiveItem(devstepsDir, item.id);
|
|
78
78
|
archivedIds.push(item.id);
|
|
79
79
|
}
|
|
80
80
|
catch (error) {
|
package/dist/core/archive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjK,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAOnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,26 +9,26 @@ export interface BulkUpdateResult {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Bulk update multiple items at once
|
|
12
|
-
* @param
|
|
12
|
+
* @param devstepsDir Path to .devsteps directory
|
|
13
13
|
* @param itemIds Array of item IDs to update
|
|
14
14
|
* @param updates Partial item metadata to apply to all items
|
|
15
15
|
* @returns Result with success and failure lists
|
|
16
16
|
*/
|
|
17
|
-
export declare function bulkUpdateItems(
|
|
17
|
+
export declare function bulkUpdateItems(devstepsDir: string, itemIds: string[], updates: Partial<ItemMetadata>): Promise<BulkUpdateResult>;
|
|
18
18
|
/**
|
|
19
19
|
* Bulk add tags to multiple items
|
|
20
|
-
* @param
|
|
20
|
+
* @param devstepsDir Path to .devsteps directory
|
|
21
21
|
* @param itemIds Array of item IDs
|
|
22
22
|
* @param tagsToAdd Tags to add
|
|
23
23
|
* @returns Result with success and failure lists
|
|
24
24
|
*/
|
|
25
|
-
export declare function bulkAddTags(
|
|
25
|
+
export declare function bulkAddTags(devstepsDir: string, itemIds: string[], tagsToAdd: string[]): Promise<BulkUpdateResult>;
|
|
26
26
|
/**
|
|
27
27
|
* Bulk remove tags from multiple items
|
|
28
|
-
* @param
|
|
28
|
+
* @param devstepsDir Path to .devsteps directory
|
|
29
29
|
* @param itemIds Array of item IDs
|
|
30
30
|
* @param tagsToRemove Tags to remove
|
|
31
31
|
* @returns Result with success and failure lists
|
|
32
32
|
*/
|
|
33
|
-
export declare function bulkRemoveTags(
|
|
33
|
+
export declare function bulkRemoveTags(devstepsDir: string, itemIds: string[], tagsToRemove: string[]): Promise<BulkUpdateResult>;
|
|
34
34
|
//# sourceMappingURL=bulk-update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-update.d.ts","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAMpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,
|
|
1
|
+
{"version":3,"file":"bulk-update.d.ts","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAMpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAiD3B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4C3B"}
|
package/dist/core/bulk-update.js
CHANGED
|
@@ -5,12 +5,12 @@ import { updateItem } from './update.js';
|
|
|
5
5
|
import { getItem } from './get.js';
|
|
6
6
|
/**
|
|
7
7
|
* Bulk update multiple items at once
|
|
8
|
-
* @param
|
|
8
|
+
* @param devstepsDir Path to .devsteps directory
|
|
9
9
|
* @param itemIds Array of item IDs to update
|
|
10
10
|
* @param updates Partial item metadata to apply to all items
|
|
11
11
|
* @returns Result with success and failure lists
|
|
12
12
|
*/
|
|
13
|
-
export async function bulkUpdateItems(
|
|
13
|
+
export async function bulkUpdateItems(devstepsDir, itemIds, updates) {
|
|
14
14
|
const result = {
|
|
15
15
|
success: [],
|
|
16
16
|
failed: [],
|
|
@@ -18,7 +18,7 @@ export async function bulkUpdateItems(devstepsir, itemIds, updates) {
|
|
|
18
18
|
};
|
|
19
19
|
for (const id of itemIds) {
|
|
20
20
|
try {
|
|
21
|
-
await updateItem(
|
|
21
|
+
await updateItem(devstepsDir, {
|
|
22
22
|
id,
|
|
23
23
|
...updates,
|
|
24
24
|
});
|
|
@@ -35,12 +35,12 @@ export async function bulkUpdateItems(devstepsir, itemIds, updates) {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Bulk add tags to multiple items
|
|
38
|
-
* @param
|
|
38
|
+
* @param devstepsDir Path to .devsteps directory
|
|
39
39
|
* @param itemIds Array of item IDs
|
|
40
40
|
* @param tagsToAdd Tags to add
|
|
41
41
|
* @returns Result with success and failure lists
|
|
42
42
|
*/
|
|
43
|
-
export async function bulkAddTags(
|
|
43
|
+
export async function bulkAddTags(devstepsDir, itemIds, tagsToAdd) {
|
|
44
44
|
const result = {
|
|
45
45
|
success: [],
|
|
46
46
|
failed: [],
|
|
@@ -55,11 +55,11 @@ export async function bulkAddTags(devstepsir, itemIds, tagsToAdd) {
|
|
|
55
55
|
if (!type) {
|
|
56
56
|
throw new Error(`Invalid item ID: ${id}`);
|
|
57
57
|
}
|
|
58
|
-
const metadataPath = join(
|
|
58
|
+
const metadataPath = join(devstepsDir, folder, `${id}.json`);
|
|
59
59
|
if (!existsSync(metadataPath)) {
|
|
60
60
|
throw new Error(`Item ${id} not found`);
|
|
61
61
|
}
|
|
62
|
-
const { metadata } = await getItem(
|
|
62
|
+
const { metadata } = await getItem(devstepsDir, id);
|
|
63
63
|
// Add new tags (avoid duplicates)
|
|
64
64
|
const existingTags = new Set(metadata.tags);
|
|
65
65
|
for (const tag of tagsToAdd) {
|
|
@@ -83,12 +83,12 @@ export async function bulkAddTags(devstepsir, itemIds, tagsToAdd) {
|
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* Bulk remove tags from multiple items
|
|
86
|
-
* @param
|
|
86
|
+
* @param devstepsDir Path to .devsteps directory
|
|
87
87
|
* @param itemIds Array of item IDs
|
|
88
88
|
* @param tagsToRemove Tags to remove
|
|
89
89
|
* @returns Result with success and failure lists
|
|
90
90
|
*/
|
|
91
|
-
export async function bulkRemoveTags(
|
|
91
|
+
export async function bulkRemoveTags(devstepsDir, itemIds, tagsToRemove) {
|
|
92
92
|
const result = {
|
|
93
93
|
success: [],
|
|
94
94
|
failed: [],
|
|
@@ -103,11 +103,11 @@ export async function bulkRemoveTags(devstepsir, itemIds, tagsToRemove) {
|
|
|
103
103
|
if (!type) {
|
|
104
104
|
throw new Error(`Invalid item ID: ${id}`);
|
|
105
105
|
}
|
|
106
|
-
const metadataPath = join(
|
|
106
|
+
const metadataPath = join(devstepsDir, folder, `${id}.json`);
|
|
107
107
|
if (!existsSync(metadataPath)) {
|
|
108
108
|
throw new Error(`Item ${id} not found`);
|
|
109
109
|
}
|
|
110
|
-
const { metadata } = await getItem(
|
|
110
|
+
const { metadata } = await getItem(devstepsDir, id);
|
|
111
111
|
// Remove tags
|
|
112
112
|
metadata.tags = metadata.tags.filter((tag) => !tagsToRemove.includes(tag));
|
|
113
113
|
metadata.updated = getCurrentTimestamp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-update.js","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AASnC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,
|
|
1
|
+
{"version":3,"file":"bulk-update.js","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"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"}
|
package/dist/core/context.d.ts
CHANGED
|
@@ -33,15 +33,15 @@ export declare function analyzePackages(projectDir: string): Promise<PackageInfo
|
|
|
33
33
|
/**
|
|
34
34
|
* Get item counts from index (with caching)
|
|
35
35
|
*/
|
|
36
|
-
export declare function getItemCounts(
|
|
36
|
+
export declare function getItemCounts(devstepsDir: string): Promise<ItemCounts>;
|
|
37
37
|
/**
|
|
38
38
|
* Get recent updates (last N days) (with caching)
|
|
39
39
|
*/
|
|
40
|
-
export declare function getRecentUpdates(
|
|
40
|
+
export declare function getRecentUpdates(devstepsDir: string, days: number): Promise<RecentUpdate[]>;
|
|
41
41
|
/**
|
|
42
42
|
* Read PROJECT.md if exists (with caching)
|
|
43
43
|
*/
|
|
44
|
-
export declare function readProjectMd(
|
|
44
|
+
export declare function readProjectMd(devstepsDir: string): Promise<QuickContext | null>;
|
|
45
45
|
/**
|
|
46
46
|
* Estimate token count (rough approximation: 1 token ≈ 4 chars)
|
|
47
47
|
*/
|
|
@@ -49,6 +49,6 @@ export declare function estimateTokens(obj: unknown): number;
|
|
|
49
49
|
/**
|
|
50
50
|
* Get quick context
|
|
51
51
|
*/
|
|
52
|
-
export declare function getQuickContext(projectDir: string,
|
|
52
|
+
export declare function getQuickContext(projectDir: string, devstepsDir: string): Promise<ContextResponse>;
|
|
53
53
|
export {};
|
|
54
54
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,YAAY,EAAE,UAAU,CAAC;QACzB,cAAc,EAAE,YAAY,EAAE,CAAC;KAChC,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyChF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,YAAY,EAAE,UAAU,CAAC;QACzB,cAAc,EAAE,YAAY,EAAE,CAAC;KAChC,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyChF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmC5E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAwCjG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkDrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAoC1B"}
|
package/dist/core/context.js
CHANGED
|
@@ -44,10 +44,10 @@ export async function analyzePackages(projectDir) {
|
|
|
44
44
|
/**
|
|
45
45
|
* Get item counts from index (with caching)
|
|
46
46
|
*/
|
|
47
|
-
export async function getItemCounts(
|
|
47
|
+
export async function getItemCounts(devstepsDir) {
|
|
48
48
|
const cache = getCache();
|
|
49
|
-
const cacheKey = `item_counts:${
|
|
50
|
-
const indexPath = path.join(
|
|
49
|
+
const cacheKey = `item_counts:${devstepsDir}`;
|
|
50
|
+
const indexPath = path.join(devstepsDir, 'index.json');
|
|
51
51
|
// Try cache first
|
|
52
52
|
const cached = cache.get(cacheKey, CACHE_CONFIG.ITEM_COUNTS_TTL, indexPath);
|
|
53
53
|
if (cached) {
|
|
@@ -78,10 +78,10 @@ export async function getItemCounts(devstepsir) {
|
|
|
78
78
|
/**
|
|
79
79
|
* Get recent updates (last N days) (with caching)
|
|
80
80
|
*/
|
|
81
|
-
export async function getRecentUpdates(
|
|
81
|
+
export async function getRecentUpdates(devstepsDir, days) {
|
|
82
82
|
const cache = getCache();
|
|
83
|
-
const cacheKey = `recent_updates:${
|
|
84
|
-
const indexPath = path.join(
|
|
83
|
+
const cacheKey = `recent_updates:${devstepsDir}:${days}`;
|
|
84
|
+
const indexPath = path.join(devstepsDir, 'index.json');
|
|
85
85
|
// Try cache first
|
|
86
86
|
const cached = cache.get(cacheKey, CACHE_CONFIG.RECENT_UPDATES_TTL, indexPath);
|
|
87
87
|
if (cached) {
|
|
@@ -114,10 +114,10 @@ export async function getRecentUpdates(devstepsir, days) {
|
|
|
114
114
|
/**
|
|
115
115
|
* Read PROJECT.md if exists (with caching)
|
|
116
116
|
*/
|
|
117
|
-
export async function readProjectMd(
|
|
117
|
+
export async function readProjectMd(devstepsDir) {
|
|
118
118
|
const cache = getCache();
|
|
119
|
-
const cacheKey = `project_md:${
|
|
120
|
-
const projectPath = path.join(
|
|
119
|
+
const cacheKey = `project_md:${devstepsDir}`;
|
|
120
|
+
const projectPath = path.join(devstepsDir, 'PROJECT.md');
|
|
121
121
|
// Try cache first
|
|
122
122
|
const cached = cache.get(cacheKey, CACHE_CONFIG.PROJECT_MD_TTL, projectPath);
|
|
123
123
|
if (cached !== null) {
|
|
@@ -168,11 +168,11 @@ export function estimateTokens(obj) {
|
|
|
168
168
|
/**
|
|
169
169
|
* Get quick context
|
|
170
170
|
*/
|
|
171
|
-
export async function getQuickContext(projectDir,
|
|
171
|
+
export async function getQuickContext(projectDir, devstepsDir) {
|
|
172
172
|
const packages = await analyzePackages(projectDir);
|
|
173
|
-
const activeItems = await getItemCounts(
|
|
174
|
-
const recentUpdates = await getRecentUpdates(
|
|
175
|
-
const staticContext = await readProjectMd(
|
|
173
|
+
const activeItems = await getItemCounts(devstepsDir);
|
|
174
|
+
const recentUpdates = await getRecentUpdates(devstepsDir, 7);
|
|
175
|
+
const staticContext = await readProjectMd(devstepsDir);
|
|
176
176
|
const response = {
|
|
177
177
|
context_level: 'quick',
|
|
178
178
|
tokens_used: 0,
|
package/dist/core/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiC3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,oBAAoB,UAAU,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,kBAAkB;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAgB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAClG,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAEhC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;wBAC5B,OAAO,EAAE,GAAG,CAAC,WAAW,IAAI,gBAAgB;wBAC5C,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;qBAClD,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
|
package/dist/core/get.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export interface GetItemResult {
|
|
|
6
6
|
/**
|
|
7
7
|
* Core business logic for getting an item
|
|
8
8
|
*/
|
|
9
|
-
export declare function getItem(
|
|
9
|
+
export declare function getItem(devstepsDir: string, itemId: string): Promise<GetItemResult>;
|
|
10
10
|
//# sourceMappingURL=get.d.ts.map
|
package/dist/core/get.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBzF"}
|
package/dist/core/get.js
CHANGED
|
@@ -4,8 +4,8 @@ import { TYPE_TO_DIRECTORY, parseItemId } from '../utils/index.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Core business logic for getting an item
|
|
6
6
|
*/
|
|
7
|
-
export async function getItem(
|
|
8
|
-
if (!existsSync(
|
|
7
|
+
export async function getItem(devstepsDir, itemId) {
|
|
8
|
+
if (!existsSync(devstepsDir)) {
|
|
9
9
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
10
10
|
}
|
|
11
11
|
const parsed = parseItemId(itemId);
|
|
@@ -13,8 +13,8 @@ export async function getItem(devstepsir, itemId) {
|
|
|
13
13
|
throw new Error(`Invalid item ID: ${itemId}`);
|
|
14
14
|
}
|
|
15
15
|
const typeFolder = TYPE_TO_DIRECTORY[parsed.type];
|
|
16
|
-
const metadataPath = join(
|
|
17
|
-
const descriptionPath = join(
|
|
16
|
+
const metadataPath = join(devstepsDir, typeFolder, `${itemId}.json`);
|
|
17
|
+
const descriptionPath = join(devstepsDir, typeFolder, `${itemId}.md`);
|
|
18
18
|
if (!existsSync(metadataPath)) {
|
|
19
19
|
throw new Error(`Item not found: ${itemId}`);
|
|
20
20
|
}
|
package/dist/core/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,MAAc;IAC/D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;IAEtE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,OAAO;QACL,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/core/list.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export interface ListItemsResult {
|
|
|
14
14
|
/**
|
|
15
15
|
* Core business logic for listing items with filters
|
|
16
16
|
*/
|
|
17
|
-
export declare function listItems(
|
|
17
|
+
export declare function listItems(devstepsDir: string, args?: ListItemsArgs): Promise<ListItemsResult>;
|
|
18
18
|
//# sourceMappingURL=list.d.ts.map
|
package/dist/core/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CAoH1B"}
|
package/dist/core/list.js
CHANGED
|
@@ -6,37 +6,37 @@ import { hasRefsStyleIndex, loadIndexByType, loadIndexByStatus, loadIndexByPrior
|
|
|
6
6
|
/**
|
|
7
7
|
* Core business logic for listing items with filters
|
|
8
8
|
*/
|
|
9
|
-
export async function listItems(
|
|
10
|
-
if (!existsSync(
|
|
9
|
+
export async function listItems(devstepsDir, args = {}) {
|
|
10
|
+
if (!existsSync(devstepsDir)) {
|
|
11
11
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
12
12
|
}
|
|
13
13
|
// Try new refs-style index first, fall back to legacy
|
|
14
14
|
let allIndexItems = [];
|
|
15
|
-
if (hasRefsStyleIndex(
|
|
15
|
+
if (hasRefsStyleIndex(devstepsDir)) {
|
|
16
16
|
// Use optimized index lookups based on filter
|
|
17
17
|
// For multi-dimensional filters, choose most selective index first
|
|
18
18
|
if (args.status) {
|
|
19
19
|
// Status index is usually most selective
|
|
20
|
-
allIndexItems = loadIndexByStatus(
|
|
20
|
+
allIndexItems = loadIndexByStatus(devstepsDir, args.status);
|
|
21
21
|
}
|
|
22
22
|
else if (args.type) {
|
|
23
|
-
allIndexItems = loadIndexByType(
|
|
23
|
+
allIndexItems = loadIndexByType(devstepsDir, args.type);
|
|
24
24
|
}
|
|
25
25
|
else if (args.eisenhower) {
|
|
26
|
-
allIndexItems = loadIndexByPriority(
|
|
26
|
+
allIndexItems = loadIndexByPriority(devstepsDir, args.eisenhower);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
29
|
// No filter - load all via type indexes
|
|
30
30
|
const allTypes = ['epic', 'story', 'task', 'bug', 'spike', 'test', 'feature', 'requirement'];
|
|
31
31
|
for (const type of allTypes) {
|
|
32
|
-
const typeItems = loadIndexByType(
|
|
32
|
+
const typeItems = loadIndexByType(devstepsDir, type);
|
|
33
33
|
allIndexItems.push(...typeItems);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
38
|
// Legacy index.json
|
|
39
|
-
const legacyIndex = loadLegacyIndex(
|
|
39
|
+
const legacyIndex = loadLegacyIndex(devstepsDir);
|
|
40
40
|
allIndexItems = legacyIndex.items.map((item) => item.id);
|
|
41
41
|
}
|
|
42
42
|
// Load item metadata for filtering (now we only have IDs)
|
|
@@ -57,11 +57,11 @@ export async function listItems(devstepsir, args = {}) {
|
|
|
57
57
|
}).find(([prefix]) => prefix === typePrefix)?.[1];
|
|
58
58
|
if (!type)
|
|
59
59
|
return null;
|
|
60
|
-
const metadataPath = join(
|
|
60
|
+
const metadataPath = join(devstepsDir, TYPE_TO_DIRECTORY[type], `${id}.json`);
|
|
61
61
|
if (!existsSync(metadataPath))
|
|
62
62
|
return null;
|
|
63
63
|
try {
|
|
64
|
-
const { metadata } = await getItem(
|
|
64
|
+
const { metadata } = await getItem(devstepsDir, id);
|
|
65
65
|
return {
|
|
66
66
|
id: metadata.id,
|
|
67
67
|
type: metadata.type,
|
package/dist/core/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAiBzB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAiBzB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,WAAmB,EACnB,OAAsB,EAAE;IAExB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,sDAAsD;IACtD,IAAI,aAAa,GAAa,EAAE,CAAC;IAEjC,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,8CAA8C;QAC9C,mEAAmE;QACnE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,yCAAyC;YACzC,aAAa,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,aAAa,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,aAAa,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,QAAQ,GAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YACzG,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACrD,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,0DAA0D;IAC1D,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAClD,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,IAAI,EAAE,MAAe;YACrB,KAAK,EAAE,OAAgB;YACvB,IAAI,EAAE,MAAe;YACrB,GAAG,EAAE,KAAc;YACnB,KAAK,EAAE,OAAgB;YACvB,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,SAAkB;YACxB,GAAG,EAAE,aAAsB;SAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1C,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAErE,wDAAwD;IACxD,0DAA0D;IAC1D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,wDAAwD;IACxD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,cAAc;IACd,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
|
package/dist/core/update.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export interface UpdateItemResult {
|
|
|
18
18
|
/**
|
|
19
19
|
* Core business logic for updating an item
|
|
20
20
|
*/
|
|
21
|
-
export declare function updateItem(
|
|
21
|
+
export declare function updateItem(devstepsDir: string, args: UpdateItemArgs): Promise<UpdateItemResult>;
|
|
22
22
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA2G3B"}
|
package/dist/core/update.js
CHANGED
|
@@ -7,8 +7,8 @@ import { getItem } from './get.js';
|
|
|
7
7
|
/**
|
|
8
8
|
* Core business logic for updating an item
|
|
9
9
|
*/
|
|
10
|
-
export async function updateItem(
|
|
11
|
-
if (!existsSync(
|
|
10
|
+
export async function updateItem(devstepsDir, args) {
|
|
11
|
+
if (!existsSync(devstepsDir)) {
|
|
12
12
|
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
13
13
|
}
|
|
14
14
|
const parsed = parseItemId(args.id);
|
|
@@ -16,13 +16,13 @@ export async function updateItem(devstepsir, args) {
|
|
|
16
16
|
throw new Error(`Invalid item ID: ${args.id}`);
|
|
17
17
|
}
|
|
18
18
|
const typeFolder = TYPE_TO_DIRECTORY[parsed.type];
|
|
19
|
-
const metadataPath = join(
|
|
20
|
-
const descriptionPath = join(
|
|
19
|
+
const metadataPath = join(devstepsDir, typeFolder, `${args.id}.json`);
|
|
20
|
+
const descriptionPath = join(devstepsDir, typeFolder, `${args.id}.md`);
|
|
21
21
|
if (!existsSync(metadataPath)) {
|
|
22
22
|
throw new Error(`Item not found: ${args.id}`);
|
|
23
23
|
}
|
|
24
24
|
// Read and update metadata
|
|
25
|
-
const { metadata } = await getItem(
|
|
25
|
+
const { metadata } = await getItem(devstepsDir, args.id);
|
|
26
26
|
const oldStatus = metadata.status;
|
|
27
27
|
// Validate status transitions (parent-child rules)
|
|
28
28
|
if (args.status === STATUS.DONE) {
|
|
@@ -35,7 +35,7 @@ export async function updateItem(devstepsir, args) {
|
|
|
35
35
|
const childParsed = parseItemId(childId);
|
|
36
36
|
if (childParsed) {
|
|
37
37
|
try {
|
|
38
|
-
const { metadata: childMeta } = await getItem(
|
|
38
|
+
const { metadata: childMeta } = await getItem(devstepsDir, childId);
|
|
39
39
|
if (childMeta.status !== STATUS.DONE && childMeta.status !== STATUS.CANCELLED && childMeta.status !== STATUS.OBSOLETE) {
|
|
40
40
|
openChildren.push(childId);
|
|
41
41
|
}
|
|
@@ -94,7 +94,7 @@ export async function updateItem(devstepsir, args) {
|
|
|
94
94
|
// Update index (auto-migration ensures refs-style always available)
|
|
95
95
|
// Only update if status or eisenhower changed (triggers re-indexing)
|
|
96
96
|
if (args.status || args.eisenhower) {
|
|
97
|
-
updateItemInIndex(
|
|
97
|
+
updateItemInIndex(devstepsDir, args.id, oldStatus, args.status, undefined, // oldEisenhower - we don't track changes
|
|
98
98
|
args.eisenhower);
|
|
99
99
|
}
|
|
100
100
|
return {
|
package/dist/core/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAqB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAoBnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAqB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAoBnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,IAAoB;IAEpB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAElC,mDAAmD;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,oDAAoD;QACpD,MAAM,gBAAgB,GAAG,KAAK,EAAE,gBAA8F,EAAiB,EAAE;YAC/I,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAa,EAAE,CAAC;gBAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;oBACzC,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;4BACpE,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gCACtH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,yBAAyB;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,aAAa,GAAG,gBAAgB,KAAK,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;oBACxG,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,MAAM,IAAI,aAAa,wBAAwB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,iJAAiJ;QACjJ,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/E,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxE,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM;QAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,IAAI,IAAI,CAAC,UAAU;QAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3D,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAClF,IAAI,IAAI,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnE,IAAI,IAAI,CAAC,IAAI;QAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACzC,IAAI,IAAI,CAAC,cAAc;QAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAEvE,QAAQ,CAAC,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEzC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D,qBAAqB;IACrB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,6BAA6B;QAC7B,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,sDAAsD;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;YAC1C,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,aAAa,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,iBAAiB,CACf,WAAW,EACX,IAAI,CAAC,EAAE,EACP,SAAS,EACT,IAAI,CAAC,MAAM,EACX,SAAS,EAAE,yCAAyC;QACpD,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schnick371/devsteps-shared",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Never Code Alone. Shared types, schemas, and utilities for DevSteps task tracking.",
|
|
6
6
|
"author": "Thomas Hertel <thomas.hertel@devsteps.dev>",
|