@schnick371/devsteps-shared 0.8.5 → 1.1.0-next.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 +8 -3
- package/dist/constants/index.d.ts +26 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +26 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/core/add.d.ts +7 -0
- package/dist/core/add.d.ts.map +1 -1
- package/dist/core/add.js +9 -2
- package/dist/core/add.js.map +1 -1
- package/dist/core/archive.d.ts +7 -0
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +30 -20
- package/dist/core/archive.js.map +1 -1
- package/dist/core/auto-migrate-detect.d.ts +61 -0
- package/dist/core/auto-migrate-detect.d.ts.map +1 -0
- package/dist/core/auto-migrate-detect.js +68 -0
- package/dist/core/auto-migrate-detect.js.map +1 -0
- package/dist/core/auto-migrate-impl.d.ts +32 -0
- package/dist/core/auto-migrate-impl.d.ts.map +1 -0
- package/dist/core/auto-migrate-impl.js +120 -0
- package/dist/core/auto-migrate-impl.js.map +1 -0
- package/dist/core/auto-migrate.d.ts +16 -131
- package/dist/core/auto-migrate.d.ts.map +1 -1
- package/dist/core/auto-migrate.js +25 -318
- package/dist/core/auto-migrate.js.map +1 -1
- package/dist/core/auto-migrate.test.js +11 -7
- package/dist/core/auto-migrate.test.js.map +1 -1
- package/dist/core/bulk-update.d.ts +7 -0
- package/dist/core/bulk-update.d.ts.map +1 -1
- package/dist/core/bulk-update.js +8 -1
- package/dist/core/bulk-update.js.map +1 -1
- package/dist/core/config.d.ts +7 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +7 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/context.d.ts +9 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +9 -0
- package/dist/core/context.js.map +1 -1
- package/dist/core/get.d.ts +7 -0
- package/dist/core/get.d.ts.map +1 -1
- package/dist/core/get.js +8 -1
- package/dist/core/get.js.map +1 -1
- package/dist/core/index-rebuild.d.ts +3 -0
- package/dist/core/index-rebuild.d.ts.map +1 -1
- package/dist/core/index-rebuild.js +11 -8
- package/dist/core/index-rebuild.js.map +1 -1
- package/dist/core/index-rebuild.test.js +6 -15
- package/dist/core/index-rebuild.test.js.map +1 -1
- package/dist/core/index-refs-core.d.ts +114 -0
- package/dist/core/index-refs-core.d.ts.map +1 -0
- package/dist/core/index-refs-core.js +306 -0
- package/dist/core/index-refs-core.js.map +1 -0
- package/dist/core/index-refs.d.ts +9 -124
- package/dist/core/index-refs.d.ts.map +1 -1
- package/dist/core/index-refs.js +19 -345
- package/dist/core/index-refs.js.map +1 -1
- package/dist/core/index-refs.test.js +3 -3
- package/dist/core/index-refs.test.js.map +1 -1
- package/dist/core/index.d.ts +19 -10
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +19 -10
- package/dist/core/index.js.map +1 -1
- package/dist/core/link.d.ts +33 -0
- package/dist/core/link.d.ts.map +1 -0
- package/dist/core/link.js +102 -0
- package/dist/core/link.js.map +1 -0
- package/dist/core/list.d.ts +8 -0
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +82 -5
- package/dist/core/list.js.map +1 -1
- package/dist/core/unlink.d.ts +26 -0
- package/dist/core/unlink.d.ts.map +1 -0
- package/dist/core/unlink.js +78 -0
- package/dist/core/unlink.js.map +1 -0
- package/dist/core/update.d.ts +7 -0
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +16 -8
- package/dist/core/update.js.map +1 -1
- package/dist/core/validation.d.ts +26 -1
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +65 -4
- package/dist/core/validation.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/schemas/analysis.d.ts +206 -0
- package/dist/schemas/analysis.d.ts.map +1 -0
- package/dist/schemas/analysis.js +138 -0
- package/dist/schemas/analysis.js.map +1 -0
- package/dist/schemas/cbp-loops.d.ts +154 -0
- package/dist/schemas/cbp-loops.d.ts.map +1 -0
- package/dist/schemas/cbp-loops.js +160 -0
- package/dist/schemas/cbp-loops.js.map +1 -0
- package/dist/schemas/cbp-loops.test.d.ts +10 -0
- package/dist/schemas/cbp-loops.test.d.ts.map +1 -0
- package/dist/schemas/cbp-loops.test.js +268 -0
- package/dist/schemas/cbp-loops.test.js.map +1 -0
- package/dist/schemas/cbp-mandate.d.ts +107 -0
- package/dist/schemas/cbp-mandate.d.ts.map +1 -0
- package/dist/schemas/cbp-mandate.js +107 -0
- package/dist/schemas/cbp-mandate.js.map +1 -0
- package/dist/schemas/cbp-mandate.test.d.ts +10 -0
- package/dist/schemas/cbp-mandate.test.d.ts.map +1 -0
- package/dist/schemas/cbp-mandate.test.js +188 -0
- package/dist/schemas/cbp-mandate.test.js.map +1 -0
- package/dist/schemas/index-refs.schema.d.ts +4 -1
- package/dist/schemas/index-refs.schema.d.ts.map +1 -1
- package/dist/schemas/index-refs.schema.js +24 -3
- package/dist/schemas/index-refs.schema.js.map +1 -1
- package/dist/schemas/index.d.ts +17 -7
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +14 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/project.d.ts +7 -0
- package/dist/schemas/project.d.ts.map +1 -1
- package/dist/schemas/project.js +7 -0
- package/dist/schemas/project.js.map +1 -1
- package/dist/schemas/relationships.d.ts +3 -0
- package/dist/schemas/relationships.d.ts.map +1 -1
- package/dist/schemas/relationships.js +3 -0
- package/dist/schemas/relationships.js.map +1 -1
- package/dist/types/commands.d.ts +7 -0
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/commands.js +7 -0
- package/dist/types/commands.js.map +1 -1
- package/dist/types/index-refs.types.d.ts +3 -0
- package/dist/types/index-refs.types.d.ts.map +1 -1
- package/dist/types/index-refs.types.js +3 -0
- package/dist/types/index-refs.types.js.map +1 -1
- package/dist/types/index.d.ts +9 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/cache.d.ts +7 -0
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +7 -0
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/index.d.ts +9 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +26 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/init-helpers.d.ts +30 -0
- package/dist/utils/init-helpers.d.ts.map +1 -0
- package/dist/utils/init-helpers.js +134 -0
- package/dist/utils/init-helpers.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,146 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Copyright © 2025 Thomas Hertel (the@devsteps.dev)
|
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
* and consistency guarantees across all index files.
|
|
5
|
+
* Refs-Style Index — Public API
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - `.devsteps/index/by-priority/*.json` - Priority queries
|
|
11
|
-
* - `.devsteps/index/counters.json` - ID generation state
|
|
12
|
-
*
|
|
13
|
-
* Benefits:
|
|
14
|
-
* - Zero merge conflicts (separate files)
|
|
15
|
-
* - Faster queries (load only needed index)
|
|
16
|
-
* - Atomic updates per category
|
|
17
|
-
* - Better scalability
|
|
7
|
+
* Re-exports setup + I/O primitives from index-refs-core.ts
|
|
8
|
+
* and provides synchronization operations that coordinate changes
|
|
9
|
+
* across multiple index dimensions (type, status, priority).
|
|
18
10
|
*
|
|
19
11
|
* @see EPIC-018 Index Architecture Refactoring
|
|
20
|
-
* @see STORY-069 Foundation: Refs-Style Index Schema
|
|
21
12
|
*/
|
|
22
13
|
import type { EisenhowerQuadrant, ItemMetadata, ItemStatus, ItemType } from '../schemas/index.js';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Get index directory paths for a DevSteps project
|
|
26
|
-
*/
|
|
27
|
-
export declare function getIndexPaths(devstepsDir: string): IndexPaths;
|
|
28
|
-
/**
|
|
29
|
-
* Check if refs-style index structure exists
|
|
30
|
-
*/
|
|
31
|
-
export declare function hasRefsStyleIndex(devstepsDir: string): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Check if legacy index.json exists (migration detection)
|
|
34
|
-
*/
|
|
35
|
-
export declare function hasLegacyIndex(devstepsDir: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Initialize refs-style index directory structure
|
|
38
|
-
*
|
|
39
|
-
* Creates:
|
|
40
|
-
* - .devsteps/index/by-type/
|
|
41
|
-
* - .devsteps/index/by-status/
|
|
42
|
-
* - .devsteps/index/by-priority/
|
|
43
|
-
* - .devsteps/index/counters.json
|
|
44
|
-
*
|
|
45
|
-
* @param devstepsDir Path to .devsteps directory
|
|
46
|
-
* @param initialCounters Optional initial counters (for migration)
|
|
47
|
-
*/
|
|
48
|
-
export declare function initializeRefsStyleIndex(devstepsDir: string, initialCounters?: Record<string, number>): void;
|
|
49
|
-
/**
|
|
50
|
-
* Load index by item type
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const taskIds = await loadIndexByType(devstepsDir, 'task');
|
|
55
|
-
* // Returns: ['TASK-160', 'TASK-161', 'TASK-162']
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
export declare function loadIndexByType(devstepsDir: string, type: ItemType): string[];
|
|
59
|
-
/**
|
|
60
|
-
* Load index by item status
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* const draftIds = await loadIndexByStatus(devstepsDir, 'draft');
|
|
65
|
-
* // Returns: ['STORY-069', 'TASK-198', ...]
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export declare function loadIndexByStatus(devstepsDir: string, status: ItemStatus): string[];
|
|
14
|
+
export * from './index-refs-core.js';
|
|
69
15
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```typescript
|
|
74
|
-
* const urgentIds = await loadIndexByPriority(devstepsDir, 'urgent-important');
|
|
75
|
-
* // Returns Q1 items
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export declare function loadIndexByPriority(devstepsDir: string, priority: EisenhowerQuadrant): string[];
|
|
79
|
-
/**
|
|
80
|
-
* Load all indexes into memory
|
|
81
|
-
*
|
|
82
|
-
* Useful for operations that need complete index access.
|
|
83
|
-
* For most queries, prefer loading only the needed index.
|
|
84
|
-
*/
|
|
85
|
-
export declare function loadAllIndexes(devstepsDir: string): RefsStyleIndex;
|
|
86
|
-
/**
|
|
87
|
-
* Load ID generation counters
|
|
88
|
-
*/
|
|
89
|
-
export declare function loadCounters(devstepsDir: string): Record<string, number>;
|
|
90
|
-
/**
|
|
91
|
-
* Update type index
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```typescript
|
|
95
|
-
* updateIndexByType(devstepsDir, 'task', ['TASK-160', 'TASK-161', 'TASK-162']);
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
export declare function updateIndexByType(devstepsDir: string, type: ItemType, items: string[]): void;
|
|
99
|
-
/**
|
|
100
|
-
* Update status index
|
|
101
|
-
*/
|
|
102
|
-
export declare function updateIndexByStatus(devstepsDir: string, status: ItemStatus, items: string[]): void;
|
|
103
|
-
/**
|
|
104
|
-
* Update priority index
|
|
105
|
-
*/
|
|
106
|
-
export declare function updateIndexByPriority(devstepsDir: string, priority: EisenhowerQuadrant, items: string[]): void;
|
|
107
|
-
/**
|
|
108
|
-
* Update counters file
|
|
109
|
-
*/
|
|
110
|
-
export declare function updateCounters(devstepsDir: string, counters: Record<string, number>): void;
|
|
111
|
-
/**
|
|
112
|
-
* Add item to all relevant indexes
|
|
113
|
-
*
|
|
114
|
-
* Ensures consistency: item appears in exactly one index per dimension
|
|
115
|
-
*
|
|
116
|
-
* @param devstepsDir Path to .devsteps directory
|
|
117
|
-
* @param item Item metadata
|
|
16
|
+
* Add item to all relevant indexes (type, status, priority)
|
|
118
17
|
*/
|
|
119
18
|
export declare function addItemToIndex(devstepsDir: string, item: ItemMetadata): void;
|
|
120
19
|
/**
|
|
121
20
|
* Remove item from all indexes
|
|
122
|
-
*
|
|
123
|
-
* @param devstepsDir Path to .devsteps directory
|
|
124
|
-
* @param itemId Item ID to remove
|
|
125
|
-
* @param type Item type (for efficient lookup)
|
|
126
|
-
* @param status Item status (for efficient lookup)
|
|
127
|
-
* @param priority Item priority (for efficient lookup)
|
|
128
21
|
*/
|
|
129
22
|
export declare function removeItemFromIndex(devstepsDir: string, itemId: string, type?: ItemType, status?: ItemStatus, priority?: EisenhowerQuadrant): void;
|
|
130
23
|
/**
|
|
131
|
-
* Update item in indexes
|
|
132
|
-
*
|
|
133
|
-
* @param devstepsDir Path to .devsteps directory
|
|
134
|
-
* @param itemId Item ID
|
|
135
|
-
* @param oldStatus Previous status (to remove from old index)
|
|
136
|
-
* @param newStatus New status (to add to new index)
|
|
137
|
-
* @param oldPriority Previous priority
|
|
138
|
-
* @param newPriority New priority
|
|
24
|
+
* Update item in indexes when status/priority changes
|
|
139
25
|
*/
|
|
140
26
|
export declare function updateItemInIndex(devstepsDir: string, itemId: string, oldStatus?: ItemStatus, newStatus?: ItemStatus, oldPriority?: EisenhowerQuadrant, newPriority?: EisenhowerQuadrant): void;
|
|
141
27
|
/**
|
|
142
28
|
* Load legacy index.json (for migration/fallback)
|
|
143
|
-
*
|
|
144
29
|
* @deprecated Use refs-style index operations instead
|
|
145
30
|
*/
|
|
146
31
|
export declare function loadLegacyIndex(devstepsDir: string): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-refs.d.ts","sourceRoot":"","sources":["../../src/core/index-refs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-refs.d.ts","sourceRoot":"","sources":["../../src/core/index-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAalG,cAAc,sBAAsB,CAAC;AAMrC;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAS5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,QAAQ,EACf,MAAM,CAAC,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,IAAI,CA2BN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,UAAU,EACtB,SAAS,CAAC,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,kBAAkB,EAChC,WAAW,CAAC,EAAE,kBAAkB,GAC/B,IAAI,CAYN;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IACpD,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAClG,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAIA"}
|
package/dist/core/index-refs.js
CHANGED
|
@@ -1,329 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Copyright © 2025 Thomas Hertel (the@devsteps.dev)
|
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
* and consistency guarantees across all index files.
|
|
5
|
+
* Refs-Style Index — Public API
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - `.devsteps/index/by-priority/*.json` - Priority queries
|
|
11
|
-
* - `.devsteps/index/counters.json` - ID generation state
|
|
12
|
-
*
|
|
13
|
-
* Benefits:
|
|
14
|
-
* - Zero merge conflicts (separate files)
|
|
15
|
-
* - Faster queries (load only needed index)
|
|
16
|
-
* - Atomic updates per category
|
|
17
|
-
* - Better scalability
|
|
7
|
+
* Re-exports setup + I/O primitives from index-refs-core.ts
|
|
8
|
+
* and provides synchronization operations that coordinate changes
|
|
9
|
+
* across multiple index dimensions (type, status, priority).
|
|
18
10
|
*
|
|
19
11
|
* @see EPIC-018 Index Architecture Refactoring
|
|
20
|
-
* @see STORY-069 Foundation: Refs-Style Index Schema
|
|
21
12
|
*/
|
|
22
|
-
import { existsSync,
|
|
23
|
-
import { join } from 'node:path';
|
|
24
|
-
import { CountersSchema, validateCategoryIndex, validateCounters, } from '../schemas/index-refs.schema.js';
|
|
13
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
25
14
|
import { INDEX_FILENAMES } from '../types/index-refs.types.js';
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*/
|
|
30
|
-
export function getIndexPaths(devstepsDir) {
|
|
31
|
-
const indexRoot = join(devstepsDir, 'index');
|
|
32
|
-
return {
|
|
33
|
-
root: indexRoot,
|
|
34
|
-
byType: join(indexRoot, 'by-type'),
|
|
35
|
-
byStatus: join(indexRoot, 'by-status'),
|
|
36
|
-
byPriority: join(indexRoot, 'by-priority'),
|
|
37
|
-
counters: join(indexRoot, 'counters.json'),
|
|
38
|
-
legacy: join(devstepsDir, 'index.json'),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Check if refs-style index structure exists
|
|
43
|
-
*/
|
|
44
|
-
export function hasRefsStyleIndex(devstepsDir) {
|
|
45
|
-
const paths = getIndexPaths(devstepsDir);
|
|
46
|
-
return (existsSync(paths.root) &&
|
|
47
|
-
existsSync(paths.byType) &&
|
|
48
|
-
existsSync(paths.byStatus) &&
|
|
49
|
-
existsSync(paths.byPriority) &&
|
|
50
|
-
existsSync(paths.counters));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Check if legacy index.json exists (migration detection)
|
|
54
|
-
*/
|
|
55
|
-
export function hasLegacyIndex(devstepsDir) {
|
|
56
|
-
const paths = getIndexPaths(devstepsDir);
|
|
57
|
-
return existsSync(paths.legacy);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Initialize refs-style index directory structure
|
|
61
|
-
*
|
|
62
|
-
* Creates:
|
|
63
|
-
* - .devsteps/index/by-type/
|
|
64
|
-
* - .devsteps/index/by-status/
|
|
65
|
-
* - .devsteps/index/by-priority/
|
|
66
|
-
* - .devsteps/index/counters.json
|
|
67
|
-
*
|
|
68
|
-
* @param devstepsDir Path to .devsteps directory
|
|
69
|
-
* @param initialCounters Optional initial counters (for migration)
|
|
70
|
-
*/
|
|
71
|
-
export function initializeRefsStyleIndex(devstepsDir, initialCounters = {}) {
|
|
72
|
-
const paths = getIndexPaths(devstepsDir);
|
|
73
|
-
// Create directory structure
|
|
74
|
-
mkdirSync(paths.root, { recursive: true });
|
|
75
|
-
mkdirSync(paths.byType, { recursive: true });
|
|
76
|
-
mkdirSync(paths.byStatus, { recursive: true });
|
|
77
|
-
mkdirSync(paths.byPriority, { recursive: true });
|
|
78
|
-
// Initialize counters
|
|
79
|
-
const counters = CountersSchema.parse(initialCounters);
|
|
80
|
-
writeFileSync(paths.counters, JSON.stringify(counters, null, 2));
|
|
81
|
-
// Create empty index files for all categories
|
|
82
|
-
const now = getCurrentTimestamp();
|
|
83
|
-
// Type indexes
|
|
84
|
-
for (const [type, filename] of Object.entries(INDEX_FILENAMES.TYPE)) {
|
|
85
|
-
const indexPath = join(paths.byType, filename);
|
|
86
|
-
if (!existsSync(indexPath)) {
|
|
87
|
-
const emptyIndex = {
|
|
88
|
-
category: type,
|
|
89
|
-
items: [],
|
|
90
|
-
updated: now,
|
|
91
|
-
};
|
|
92
|
-
writeFileSync(indexPath, JSON.stringify(emptyIndex, null, 2));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Status indexes
|
|
96
|
-
for (const [status, filename] of Object.entries(INDEX_FILENAMES.STATUS)) {
|
|
97
|
-
const indexPath = join(paths.byStatus, filename);
|
|
98
|
-
if (!existsSync(indexPath)) {
|
|
99
|
-
const emptyIndex = {
|
|
100
|
-
category: status,
|
|
101
|
-
items: [],
|
|
102
|
-
updated: now,
|
|
103
|
-
};
|
|
104
|
-
writeFileSync(indexPath, JSON.stringify(emptyIndex, null, 2));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Priority indexes
|
|
108
|
-
for (const [priority, filename] of Object.entries(INDEX_FILENAMES.PRIORITY)) {
|
|
109
|
-
const indexPath = join(paths.byPriority, filename);
|
|
110
|
-
if (!existsSync(indexPath)) {
|
|
111
|
-
const emptyIndex = {
|
|
112
|
-
category: priority,
|
|
113
|
-
items: [],
|
|
114
|
-
updated: now,
|
|
115
|
-
};
|
|
116
|
-
writeFileSync(indexPath, JSON.stringify(emptyIndex, null, 2));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//=============================================================================
|
|
121
|
-
// READ OPERATIONS
|
|
122
|
-
//=============================================================================
|
|
123
|
-
/**
|
|
124
|
-
* Load single category index file
|
|
125
|
-
*
|
|
126
|
-
* @param filePath Absolute path to index file
|
|
127
|
-
* @returns Category index or empty if file missing
|
|
128
|
-
*/
|
|
129
|
-
function loadCategoryIndex(filePath) {
|
|
130
|
-
if (!existsSync(filePath)) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
try {
|
|
134
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
135
|
-
const data = JSON.parse(content);
|
|
136
|
-
return validateCategoryIndex(data);
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
throw new Error(`Failed to load index from ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Load index by item type
|
|
144
|
-
*
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* const taskIds = await loadIndexByType(devstepsDir, 'task');
|
|
148
|
-
* // Returns: ['TASK-160', 'TASK-161', 'TASK-162']
|
|
149
|
-
* ```
|
|
150
|
-
*/
|
|
151
|
-
export function loadIndexByType(devstepsDir, type) {
|
|
152
|
-
const paths = getIndexPaths(devstepsDir);
|
|
153
|
-
const filename = INDEX_FILENAMES.TYPE[type];
|
|
154
|
-
const filePath = join(paths.byType, filename);
|
|
155
|
-
const index = loadCategoryIndex(filePath);
|
|
156
|
-
return index?.items ?? [];
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Load index by item status
|
|
160
|
-
*
|
|
161
|
-
* @example
|
|
162
|
-
* ```typescript
|
|
163
|
-
* const draftIds = await loadIndexByStatus(devstepsDir, 'draft');
|
|
164
|
-
* // Returns: ['STORY-069', 'TASK-198', ...]
|
|
165
|
-
* ```
|
|
166
|
-
*/
|
|
167
|
-
export function loadIndexByStatus(devstepsDir, status) {
|
|
168
|
-
const paths = getIndexPaths(devstepsDir);
|
|
169
|
-
const filename = INDEX_FILENAMES.STATUS[status];
|
|
170
|
-
const filePath = join(paths.byStatus, filename);
|
|
171
|
-
const index = loadCategoryIndex(filePath);
|
|
172
|
-
return index?.items ?? [];
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Load index by priority (Eisenhower quadrant)
|
|
176
|
-
*
|
|
177
|
-
* @example
|
|
178
|
-
* ```typescript
|
|
179
|
-
* const urgentIds = await loadIndexByPriority(devstepsDir, 'urgent-important');
|
|
180
|
-
* // Returns Q1 items
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
export function loadIndexByPriority(devstepsDir, priority) {
|
|
184
|
-
const paths = getIndexPaths(devstepsDir);
|
|
185
|
-
const filename = INDEX_FILENAMES.PRIORITY[priority];
|
|
186
|
-
const filePath = join(paths.byPriority, filename);
|
|
187
|
-
const index = loadCategoryIndex(filePath);
|
|
188
|
-
return index?.items ?? [];
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Load all indexes into memory
|
|
192
|
-
*
|
|
193
|
-
* Useful for operations that need complete index access.
|
|
194
|
-
* For most queries, prefer loading only the needed index.
|
|
195
|
-
*/
|
|
196
|
-
export function loadAllIndexes(devstepsDir) {
|
|
197
|
-
const paths = getIndexPaths(devstepsDir);
|
|
198
|
-
// Load counters
|
|
199
|
-
let counters = {};
|
|
200
|
-
if (existsSync(paths.counters)) {
|
|
201
|
-
const content = readFileSync(paths.counters, 'utf-8');
|
|
202
|
-
counters = validateCounters(JSON.parse(content));
|
|
203
|
-
}
|
|
204
|
-
// Load type indexes
|
|
205
|
-
const byType = new Map();
|
|
206
|
-
for (const type of Object.keys(INDEX_FILENAMES.TYPE)) {
|
|
207
|
-
byType.set(type, loadIndexByType(devstepsDir, type));
|
|
208
|
-
}
|
|
209
|
-
// Load status indexes
|
|
210
|
-
const byStatus = new Map();
|
|
211
|
-
for (const status of Object.keys(INDEX_FILENAMES.STATUS)) {
|
|
212
|
-
byStatus.set(status, loadIndexByStatus(devstepsDir, status));
|
|
213
|
-
}
|
|
214
|
-
// Load priority indexes
|
|
215
|
-
const byPriority = new Map();
|
|
216
|
-
for (const priority of Object.keys(INDEX_FILENAMES.PRIORITY)) {
|
|
217
|
-
byPriority.set(priority, loadIndexByPriority(devstepsDir, priority));
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
byType,
|
|
221
|
-
byStatus,
|
|
222
|
-
byPriority,
|
|
223
|
-
counters,
|
|
224
|
-
lastUpdated: getCurrentTimestamp(),
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Load ID generation counters
|
|
229
|
-
*/
|
|
230
|
-
export function loadCounters(devstepsDir) {
|
|
231
|
-
const paths = getIndexPaths(devstepsDir);
|
|
232
|
-
if (!existsSync(paths.counters)) {
|
|
233
|
-
return {};
|
|
234
|
-
}
|
|
235
|
-
const content = readFileSync(paths.counters, 'utf-8');
|
|
236
|
-
return validateCounters(JSON.parse(content));
|
|
237
|
-
}
|
|
238
|
-
//=============================================================================
|
|
239
|
-
// WRITE OPERATIONS
|
|
240
|
-
//=============================================================================
|
|
241
|
-
/**
|
|
242
|
-
* Save category index to file (atomic write)
|
|
243
|
-
*
|
|
244
|
-
* @param filePath Absolute path to index file
|
|
245
|
-
* @param category Category name
|
|
246
|
-
* @param items Array of item IDs
|
|
247
|
-
*/
|
|
248
|
-
function saveCategoryIndex(filePath, category, items) {
|
|
249
|
-
const index = {
|
|
250
|
-
category,
|
|
251
|
-
items,
|
|
252
|
-
updated: getCurrentTimestamp(),
|
|
253
|
-
};
|
|
254
|
-
// Write directly (directory should already exist via update* functions)
|
|
255
|
-
writeFileSync(filePath, JSON.stringify(index, null, 2));
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Update type index
|
|
259
|
-
*
|
|
260
|
-
* @example
|
|
261
|
-
* ```typescript
|
|
262
|
-
* updateIndexByType(devstepsDir, 'task', ['TASK-160', 'TASK-161', 'TASK-162']);
|
|
263
|
-
* ```
|
|
264
|
-
*/
|
|
265
|
-
export function updateIndexByType(devstepsDir, type, items) {
|
|
266
|
-
const paths = getIndexPaths(devstepsDir);
|
|
267
|
-
const filename = INDEX_FILENAMES.TYPE[type];
|
|
268
|
-
const filePath = join(paths.byType, filename);
|
|
269
|
-
// Ensure directory exists
|
|
270
|
-
mkdirSync(paths.byType, { recursive: true });
|
|
271
|
-
saveCategoryIndex(filePath, type, items);
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Update status index
|
|
275
|
-
*/
|
|
276
|
-
export function updateIndexByStatus(devstepsDir, status, items) {
|
|
277
|
-
const paths = getIndexPaths(devstepsDir);
|
|
278
|
-
const filename = INDEX_FILENAMES.STATUS[status];
|
|
279
|
-
const filePath = join(paths.byStatus, filename);
|
|
280
|
-
mkdirSync(paths.byStatus, { recursive: true });
|
|
281
|
-
saveCategoryIndex(filePath, status, items);
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Update priority index
|
|
285
|
-
*/
|
|
286
|
-
export function updateIndexByPriority(devstepsDir, priority, items) {
|
|
287
|
-
const paths = getIndexPaths(devstepsDir);
|
|
288
|
-
const filename = INDEX_FILENAMES.PRIORITY[priority];
|
|
289
|
-
const filePath = join(paths.byPriority, filename);
|
|
290
|
-
mkdirSync(paths.byPriority, { recursive: true });
|
|
291
|
-
saveCategoryIndex(filePath, priority, items);
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Update counters file
|
|
295
|
-
*/
|
|
296
|
-
export function updateCounters(devstepsDir, counters) {
|
|
297
|
-
const paths = getIndexPaths(devstepsDir);
|
|
298
|
-
mkdirSync(paths.root, { recursive: true });
|
|
299
|
-
const validated = validateCounters(counters);
|
|
300
|
-
writeFileSync(paths.counters, JSON.stringify(validated, null, 2));
|
|
301
|
-
}
|
|
15
|
+
import { getIndexPaths, loadIndexByPriority, loadIndexByStatus, loadIndexByType, updateIndexByPriority, updateIndexByStatus, updateIndexByType, } from './index-refs-core.js';
|
|
16
|
+
// Re-export all core I/O primitives for backward compatibility
|
|
17
|
+
export * from './index-refs-core.js';
|
|
302
18
|
//=============================================================================
|
|
303
19
|
// INDEX SYNCHRONIZATION
|
|
304
20
|
//=============================================================================
|
|
305
21
|
/**
|
|
306
|
-
* Add item to all relevant indexes
|
|
307
|
-
*
|
|
308
|
-
* Ensures consistency: item appears in exactly one index per dimension
|
|
309
|
-
*
|
|
310
|
-
* @param devstepsDir Path to .devsteps directory
|
|
311
|
-
* @param item Item metadata
|
|
22
|
+
* Add item to all relevant indexes (type, status, priority)
|
|
312
23
|
*/
|
|
313
24
|
export function addItemToIndex(devstepsDir, item) {
|
|
314
|
-
// Add to type index
|
|
315
25
|
const typeItems = loadIndexByType(devstepsDir, item.type);
|
|
316
26
|
if (!typeItems.includes(item.id)) {
|
|
317
27
|
typeItems.push(item.id);
|
|
318
28
|
updateIndexByType(devstepsDir, item.type, typeItems);
|
|
319
29
|
}
|
|
320
|
-
// Add to status index
|
|
321
30
|
const statusItems = loadIndexByStatus(devstepsDir, item.status);
|
|
322
31
|
if (!statusItems.includes(item.id)) {
|
|
323
32
|
statusItems.push(item.id);
|
|
324
33
|
updateIndexByStatus(devstepsDir, item.status, statusItems);
|
|
325
34
|
}
|
|
326
|
-
// Add to priority index
|
|
327
35
|
const priorityItems = loadIndexByPriority(devstepsDir, item.eisenhower);
|
|
328
36
|
if (!priorityItems.includes(item.id)) {
|
|
329
37
|
priorityItems.push(item.id);
|
|
@@ -332,22 +40,12 @@ export function addItemToIndex(devstepsDir, item) {
|
|
|
332
40
|
}
|
|
333
41
|
/**
|
|
334
42
|
* Remove item from all indexes
|
|
335
|
-
*
|
|
336
|
-
* @param devstepsDir Path to .devsteps directory
|
|
337
|
-
* @param itemId Item ID to remove
|
|
338
|
-
* @param type Item type (for efficient lookup)
|
|
339
|
-
* @param status Item status (for efficient lookup)
|
|
340
|
-
* @param priority Item priority (for efficient lookup)
|
|
341
43
|
*/
|
|
342
44
|
export function removeItemFromIndex(devstepsDir, itemId, type, status, priority) {
|
|
343
|
-
// Remove from type index
|
|
344
45
|
if (type) {
|
|
345
|
-
|
|
346
|
-
const filtered = typeItems.filter((id) => id !== itemId);
|
|
347
|
-
updateIndexByType(devstepsDir, type, filtered);
|
|
46
|
+
updateIndexByType(devstepsDir, type, loadIndexByType(devstepsDir, type).filter((id) => id !== itemId));
|
|
348
47
|
}
|
|
349
48
|
else {
|
|
350
|
-
// Fallback: search all type indexes
|
|
351
49
|
for (const t of Object.keys(INDEX_FILENAMES.TYPE)) {
|
|
352
50
|
const items = loadIndexByType(devstepsDir, t);
|
|
353
51
|
if (items.includes(itemId)) {
|
|
@@ -356,11 +54,8 @@ export function removeItemFromIndex(devstepsDir, itemId, type, status, priority)
|
|
|
356
54
|
}
|
|
357
55
|
}
|
|
358
56
|
}
|
|
359
|
-
// Remove from status index
|
|
360
57
|
if (status) {
|
|
361
|
-
|
|
362
|
-
const filtered = statusItems.filter((id) => id !== itemId);
|
|
363
|
-
updateIndexByStatus(devstepsDir, status, filtered);
|
|
58
|
+
updateIndexByStatus(devstepsDir, status, loadIndexByStatus(devstepsDir, status).filter((id) => id !== itemId));
|
|
364
59
|
}
|
|
365
60
|
else {
|
|
366
61
|
for (const s of Object.keys(INDEX_FILENAMES.STATUS)) {
|
|
@@ -371,11 +66,8 @@ export function removeItemFromIndex(devstepsDir, itemId, type, status, priority)
|
|
|
371
66
|
}
|
|
372
67
|
}
|
|
373
68
|
}
|
|
374
|
-
// Remove from priority index
|
|
375
69
|
if (priority) {
|
|
376
|
-
|
|
377
|
-
const filtered = priorityItems.filter((id) => id !== itemId);
|
|
378
|
-
updateIndexByPriority(devstepsDir, priority, filtered);
|
|
70
|
+
updateIndexByPriority(devstepsDir, priority, loadIndexByPriority(devstepsDir, priority).filter((id) => id !== itemId));
|
|
379
71
|
}
|
|
380
72
|
else {
|
|
381
73
|
for (const p of Object.keys(INDEX_FILENAMES.PRIORITY)) {
|
|
@@ -388,34 +80,19 @@ export function removeItemFromIndex(devstepsDir, itemId, type, status, priority)
|
|
|
388
80
|
}
|
|
389
81
|
}
|
|
390
82
|
/**
|
|
391
|
-
* Update item in indexes
|
|
392
|
-
*
|
|
393
|
-
* @param devstepsDir Path to .devsteps directory
|
|
394
|
-
* @param itemId Item ID
|
|
395
|
-
* @param oldStatus Previous status (to remove from old index)
|
|
396
|
-
* @param newStatus New status (to add to new index)
|
|
397
|
-
* @param oldPriority Previous priority
|
|
398
|
-
* @param newPriority New priority
|
|
83
|
+
* Update item in indexes when status/priority changes
|
|
399
84
|
*/
|
|
400
85
|
export function updateItemInIndex(devstepsDir, itemId, oldStatus, newStatus, oldPriority, newPriority) {
|
|
401
|
-
// Update status index
|
|
402
86
|
if (oldStatus && newStatus && oldStatus !== newStatus) {
|
|
403
|
-
|
|
404
|
-
const oldItems = loadIndexByStatus(devstepsDir, oldStatus);
|
|
405
|
-
updateIndexByStatus(devstepsDir, oldStatus, oldItems.filter((id) => id !== itemId));
|
|
406
|
-
// Add to new status
|
|
87
|
+
updateIndexByStatus(devstepsDir, oldStatus, loadIndexByStatus(devstepsDir, oldStatus).filter((id) => id !== itemId));
|
|
407
88
|
const newItems = loadIndexByStatus(devstepsDir, newStatus);
|
|
408
89
|
if (!newItems.includes(itemId)) {
|
|
409
90
|
newItems.push(itemId);
|
|
410
91
|
updateIndexByStatus(devstepsDir, newStatus, newItems);
|
|
411
92
|
}
|
|
412
93
|
}
|
|
413
|
-
// Update priority index
|
|
414
94
|
if (oldPriority && newPriority && oldPriority !== newPriority) {
|
|
415
|
-
|
|
416
|
-
const oldItems = loadIndexByPriority(devstepsDir, oldPriority);
|
|
417
|
-
updateIndexByPriority(devstepsDir, oldPriority, oldItems.filter((id) => id !== itemId));
|
|
418
|
-
// Add to new priority
|
|
95
|
+
updateIndexByPriority(devstepsDir, oldPriority, loadIndexByPriority(devstepsDir, oldPriority).filter((id) => id !== itemId));
|
|
419
96
|
const newItems = loadIndexByPriority(devstepsDir, newPriority);
|
|
420
97
|
if (!newItems.includes(itemId)) {
|
|
421
98
|
newItems.push(itemId);
|
|
@@ -428,15 +105,12 @@ export function updateItemInIndex(devstepsDir, itemId, oldStatus, newStatus, old
|
|
|
428
105
|
//=============================================================================
|
|
429
106
|
/**
|
|
430
107
|
* Load legacy index.json (for migration/fallback)
|
|
431
|
-
*
|
|
432
108
|
* @deprecated Use refs-style index operations instead
|
|
433
109
|
*/
|
|
434
110
|
export function loadLegacyIndex(devstepsDir) {
|
|
435
111
|
const paths = getIndexPaths(devstepsDir);
|
|
436
|
-
if (!existsSync(paths.legacy))
|
|
112
|
+
if (!existsSync(paths.legacy))
|
|
437
113
|
throw new Error('Legacy index.json not found');
|
|
438
|
-
|
|
439
|
-
const content = readFileSync(paths.legacy, 'utf-8');
|
|
440
|
-
return JSON.parse(content);
|
|
114
|
+
return JSON.parse(readFileSync(paths.legacy, 'utf-8'));
|
|
441
115
|
}
|
|
442
116
|
//# sourceMappingURL=index-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-refs.js","sourceRoot":"","sources":["../../src/core/index-refs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-refs.js","sourceRoot":"","sources":["../../src/core/index-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @see STORY-069 Foundation: Refs-Style Index Schema & Core Operations
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import { mkdirSync, rmSync, existsSync } from 'node:fs';
|
|
6
|
+
import { existsSync, mkdirSync, rmSync } from 'node:fs';
|
|
8
7
|
import { tmpdir } from 'node:os';
|
|
9
8
|
import { join } from 'node:path';
|
|
10
|
-
import {
|
|
9
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
10
|
+
import { addItemToIndex, getIndexPaths, hasLegacyIndex, hasRefsStyleIndex, initializeRefsStyleIndex, loadAllIndexes, loadCounters, loadIndexByPriority, loadIndexByStatus, loadIndexByType, removeItemFromIndex, updateCounters, updateIndexByPriority, updateIndexByStatus, updateIndexByType, updateItemInIndex, } from './index-refs.js';
|
|
11
11
|
describe('Refs-Style Index Operations', () => {
|
|
12
12
|
let testDir;
|
|
13
13
|
let devstepsDir;
|