@schnick371/devsteps-shared 0.7.0-next.3 → 0.8.1-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/dist/core/add.d.ts +2 -3
- package/dist/core/add.d.ts.map +1 -1
- package/dist/core/add.js +58 -37
- package/dist/core/add.js.map +1 -1
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +35 -25
- package/dist/core/archive.js.map +1 -1
- package/dist/core/auto-migrate.d.ts +154 -0
- package/dist/core/auto-migrate.d.ts.map +1 -0
- package/dist/core/auto-migrate.js +383 -0
- package/dist/core/auto-migrate.js.map +1 -0
- package/dist/core/auto-migrate.test.d.ts +7 -0
- package/dist/core/auto-migrate.test.d.ts.map +1 -0
- package/dist/core/auto-migrate.test.js +364 -0
- package/dist/core/auto-migrate.test.js.map +1 -0
- package/dist/core/index-rebuild.d.ts +75 -0
- package/dist/core/index-rebuild.d.ts.map +1 -0
- package/dist/core/index-rebuild.js +260 -0
- package/dist/core/index-rebuild.js.map +1 -0
- package/dist/core/index-rebuild.test.d.ts +8 -0
- package/dist/core/index-rebuild.test.d.ts.map +1 -0
- package/dist/core/index-rebuild.test.js +582 -0
- package/dist/core/index-rebuild.test.js.map +1 -0
- package/dist/core/index-refs.d.ts +155 -0
- package/dist/core/index-refs.d.ts.map +1 -0
- package/dist/core/index-refs.js +442 -0
- package/dist/core/index-refs.js.map +1 -0
- package/dist/core/index-refs.test.d.ts +7 -0
- package/dist/core/index-refs.test.d.ts.map +1 -0
- package/dist/core/index-refs.test.js +367 -0
- package/dist/core/index-refs.test.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/list.d.ts +2 -3
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +67 -12
- package/dist/core/list.js.map +1 -1
- package/dist/core/update.d.ts +1 -2
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +30 -21
- package/dist/core/update.js.map +1 -1
- package/dist/migration/fix-missing-eisenhower.d.ts +8 -0
- package/dist/migration/fix-missing-eisenhower.d.ts.map +1 -0
- package/dist/migration/fix-missing-eisenhower.js +58 -0
- package/dist/migration/fix-missing-eisenhower.js.map +1 -0
- package/dist/migration/remove-priority-field.d.ts +15 -0
- package/dist/migration/remove-priority-field.d.ts.map +1 -0
- package/dist/migration/remove-priority-field.js +113 -0
- package/dist/migration/remove-priority-field.js.map +1 -0
- package/dist/schemas/index-refs.schema.d.ts +103 -0
- package/dist/schemas/index-refs.schema.d.ts.map +1 -0
- package/dist/schemas/index-refs.schema.js +88 -0
- package/dist/schemas/index-refs.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -22
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +3 -7
- package/dist/schemas/index.js.map +1 -1
- package/dist/types/commands.d.ts +2 -5
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/index-refs.types.d.ts +123 -0
- package/dist/types/index-refs.types.d.ts.map +1 -0
- package/dist/types/index-refs.types.js +71 -0
- package/dist/types/index-refs.types.js.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +26 -8
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index Rebuild Operations
|
|
3
|
+
*
|
|
4
|
+
* Rebuilds the refs-style index from source of truth (item files).
|
|
5
|
+
* Scans all item directories and reconstructs index files from scratch.
|
|
6
|
+
*
|
|
7
|
+
* Use Cases:
|
|
8
|
+
* - Index corruption recovery
|
|
9
|
+
* - Manual index repair after direct file edits
|
|
10
|
+
* - Migration validation
|
|
11
|
+
* - Development/debugging
|
|
12
|
+
*
|
|
13
|
+
* @see STORY-074 Index Rebuild Command
|
|
14
|
+
* @see EPIC-018 Index Architecture Refactoring
|
|
15
|
+
*/
|
|
16
|
+
import { readdirSync, readFileSync, existsSync, renameSync } from 'node:fs';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
import { TYPE_TO_DIRECTORY, getCurrentTimestamp } from '../utils/index.js';
|
|
19
|
+
import { getIndexPaths, initializeRefsStyleIndex, updateIndexByType, updateIndexByStatus, updateIndexByPriority, updateCounters, } from './index-refs.js';
|
|
20
|
+
/**
|
|
21
|
+
* Scan all item files and rebuild index from scratch
|
|
22
|
+
*
|
|
23
|
+
* Algorithm:
|
|
24
|
+
* 1. Backup current index (if requested)
|
|
25
|
+
* 2. Scan all .devsteps/{type}s/ directories
|
|
26
|
+
* 3. Load and validate each JSON file
|
|
27
|
+
* 4. Group items by type, status, eisenhower
|
|
28
|
+
* 5. Write new index files
|
|
29
|
+
* 6. Verify item count consistency
|
|
30
|
+
*
|
|
31
|
+
* @param devstepsDir Path to .devsteps directory
|
|
32
|
+
* @param options Rebuild options
|
|
33
|
+
* @returns Statistics about rebuild operation
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const result = await rebuildIndex('.devsteps', { backup: true });
|
|
38
|
+
* console.log(`Rebuilt index: ${result.processedItems} items`);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export async function rebuildIndex(devstepsDir, options = {}) {
|
|
42
|
+
const { backup = true, dryRun = false, onProgress } = options;
|
|
43
|
+
if (!existsSync(devstepsDir)) {
|
|
44
|
+
throw new Error(`DevSteps directory not found: ${devstepsDir}`);
|
|
45
|
+
}
|
|
46
|
+
// Initialize result
|
|
47
|
+
const result = {
|
|
48
|
+
totalItems: 0,
|
|
49
|
+
processedItems: 0,
|
|
50
|
+
skippedItems: 0,
|
|
51
|
+
filesCreated: 0,
|
|
52
|
+
errors: [],
|
|
53
|
+
stats: {
|
|
54
|
+
byType: {},
|
|
55
|
+
byStatus: {},
|
|
56
|
+
byPriority: {},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
onProgress?.(0, 100, 'Scanning item files...');
|
|
60
|
+
// Step 1: Backup current index
|
|
61
|
+
if (backup && !dryRun) {
|
|
62
|
+
try {
|
|
63
|
+
const backupPath = await backupIndexBeforeRebuild(devstepsDir);
|
|
64
|
+
result.backupPath = backupPath;
|
|
65
|
+
onProgress?.(10, 100, `Backed up to: ${backupPath}`);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
// Non-fatal: index might not exist yet
|
|
69
|
+
onProgress?.(10, 100, 'No existing index to backup');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Step 2: Load all items from files
|
|
73
|
+
onProgress?.(20, 100, 'Loading items from disk...');
|
|
74
|
+
const items = await loadAllItemsFromFiles(devstepsDir, (error) => {
|
|
75
|
+
result.errors.push(error);
|
|
76
|
+
result.skippedItems++;
|
|
77
|
+
});
|
|
78
|
+
result.totalItems = items.length + result.skippedItems;
|
|
79
|
+
result.processedItems = items.length;
|
|
80
|
+
onProgress?.(50, 100, `Found ${items.length} valid items`);
|
|
81
|
+
// Step 3: Group items by dimensions
|
|
82
|
+
const byType = new Map();
|
|
83
|
+
const byStatus = new Map();
|
|
84
|
+
const byPriority = new Map();
|
|
85
|
+
for (const item of items) {
|
|
86
|
+
// Group by type
|
|
87
|
+
if (!byType.has(item.type)) {
|
|
88
|
+
byType.set(item.type, []);
|
|
89
|
+
}
|
|
90
|
+
byType.get(item.type).push(item.id);
|
|
91
|
+
// Group by status
|
|
92
|
+
if (!byStatus.has(item.status)) {
|
|
93
|
+
byStatus.set(item.status, []);
|
|
94
|
+
}
|
|
95
|
+
byStatus.get(item.status).push(item.id);
|
|
96
|
+
// Group by priority
|
|
97
|
+
if (!byPriority.has(item.eisenhower)) {
|
|
98
|
+
byPriority.set(item.eisenhower, []);
|
|
99
|
+
}
|
|
100
|
+
byPriority.get(item.eisenhower).push(item.id);
|
|
101
|
+
}
|
|
102
|
+
// Calculate stats
|
|
103
|
+
for (const [type, ids] of byType) {
|
|
104
|
+
result.stats.byType[type] = ids.length;
|
|
105
|
+
}
|
|
106
|
+
for (const [status, ids] of byStatus) {
|
|
107
|
+
result.stats.byStatus[status] = ids.length;
|
|
108
|
+
}
|
|
109
|
+
for (const [priority, ids] of byPriority) {
|
|
110
|
+
result.stats.byPriority[priority] = ids.length;
|
|
111
|
+
}
|
|
112
|
+
if (dryRun) {
|
|
113
|
+
onProgress?.(100, 100, 'Dry-run complete (no changes made)');
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
// Step 4: Initialize index structure
|
|
117
|
+
onProgress?.(60, 100, 'Initializing index structure...');
|
|
118
|
+
// Extract counters from existing index or calculate from items
|
|
119
|
+
const counters = extractCountersFromItems(items);
|
|
120
|
+
initializeRefsStyleIndex(devstepsDir, counters);
|
|
121
|
+
// Step 5: Write new index files
|
|
122
|
+
onProgress?.(70, 100, 'Writing index files...');
|
|
123
|
+
let filesWritten = 0;
|
|
124
|
+
// Write type indexes
|
|
125
|
+
for (const [type, ids] of byType) {
|
|
126
|
+
updateIndexByType(devstepsDir, type, ids);
|
|
127
|
+
filesWritten++;
|
|
128
|
+
}
|
|
129
|
+
// Write status indexes
|
|
130
|
+
for (const [status, ids] of byStatus) {
|
|
131
|
+
updateIndexByStatus(devstepsDir, status, ids);
|
|
132
|
+
filesWritten++;
|
|
133
|
+
}
|
|
134
|
+
// Write priority indexes
|
|
135
|
+
for (const [priority, ids] of byPriority) {
|
|
136
|
+
updateIndexByPriority(devstepsDir, priority, ids);
|
|
137
|
+
filesWritten++;
|
|
138
|
+
}
|
|
139
|
+
// Write counters
|
|
140
|
+
updateCounters(devstepsDir, counters);
|
|
141
|
+
filesWritten++;
|
|
142
|
+
result.filesCreated = filesWritten;
|
|
143
|
+
onProgress?.(100, 100, `Rebuild complete: ${result.processedItems} items, ${filesWritten} files`);
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Scan all item files from .devsteps/items/{type}s/ directories
|
|
148
|
+
*
|
|
149
|
+
* If old flat structure is detected, automatically migrates to new structure first.
|
|
150
|
+
*
|
|
151
|
+
* @param devstepsDir Path to .devsteps directory
|
|
152
|
+
* @param onError Error callback for handling corrupt files
|
|
153
|
+
* @returns Array of item metadata
|
|
154
|
+
*/
|
|
155
|
+
async function loadAllItemsFromFiles(devstepsDir, onError) {
|
|
156
|
+
// Auto-migrate if old structure detected
|
|
157
|
+
const { needsItemsDirectoryMigration, migrateItemsDirectory } = await import('./auto-migrate.js');
|
|
158
|
+
if (needsItemsDirectoryMigration(devstepsDir)) {
|
|
159
|
+
migrateItemsDirectory(devstepsDir, { silent: true });
|
|
160
|
+
}
|
|
161
|
+
const items = [];
|
|
162
|
+
// Scan each item type directory (new structure only)
|
|
163
|
+
for (const [type, directory] of Object.entries(TYPE_TO_DIRECTORY)) {
|
|
164
|
+
const dirPath = join(devstepsDir, directory);
|
|
165
|
+
if (!existsSync(dirPath)) {
|
|
166
|
+
continue; // Skip missing directories (empty projects)
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
const files = readdirSync(dirPath);
|
|
170
|
+
for (const file of files) {
|
|
171
|
+
// Only process JSON metadata files
|
|
172
|
+
if (!file.endsWith('.json')) {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
const filePath = join(dirPath, file);
|
|
176
|
+
try {
|
|
177
|
+
const item = await loadItemMetadata(filePath);
|
|
178
|
+
items.push(item);
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
// Handle corrupt/invalid files
|
|
182
|
+
onError?.({
|
|
183
|
+
file: filePath,
|
|
184
|
+
error: error instanceof Error ? error.message : String(error),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
// Handle directory read errors
|
|
191
|
+
onError?.({
|
|
192
|
+
file: dirPath,
|
|
193
|
+
error: `Failed to read directory: ${error instanceof Error ? error.message : String(error)}`,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return items;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Load item metadata from JSON file
|
|
201
|
+
*
|
|
202
|
+
* @param filePath Absolute path to item JSON file
|
|
203
|
+
* @returns Item metadata
|
|
204
|
+
*/
|
|
205
|
+
async function loadItemMetadata(filePath) {
|
|
206
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
207
|
+
const data = JSON.parse(content);
|
|
208
|
+
// Validate required fields
|
|
209
|
+
if (!data.id || !data.type || !data.status) {
|
|
210
|
+
throw new Error(`Invalid item metadata: missing required fields (id, type, status)`);
|
|
211
|
+
}
|
|
212
|
+
// Ensure eisenhower field exists (default to not-urgent-not-important)
|
|
213
|
+
if (!data.eisenhower) {
|
|
214
|
+
data.eisenhower = 'not-urgent-not-important';
|
|
215
|
+
}
|
|
216
|
+
return data;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Extract counters from items by finding highest ID per type
|
|
220
|
+
*
|
|
221
|
+
* @param items Array of item metadata
|
|
222
|
+
* @returns Counter map for ID generation
|
|
223
|
+
*/
|
|
224
|
+
function extractCountersFromItems(items) {
|
|
225
|
+
const counters = {};
|
|
226
|
+
for (const item of items) {
|
|
227
|
+
// Extract number from ID (e.g., "TASK-160" -> 160)
|
|
228
|
+
const match = item.id.match(/-(\d+)$/);
|
|
229
|
+
if (match) {
|
|
230
|
+
const num = Number.parseInt(match[1], 10);
|
|
231
|
+
const prefix = item.id.replace(/-\d+$/, '');
|
|
232
|
+
if (!counters[prefix] || num > counters[prefix]) {
|
|
233
|
+
counters[prefix] = num;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return counters;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Backup current index before rebuilding
|
|
241
|
+
*
|
|
242
|
+
* Creates timestamped backup directory:
|
|
243
|
+
* .devsteps/index.backup-2025-12-13T14-30-00/
|
|
244
|
+
*
|
|
245
|
+
* @param devstepsDir Path to .devsteps directory
|
|
246
|
+
* @returns Path to backup directory
|
|
247
|
+
*/
|
|
248
|
+
async function backupIndexBeforeRebuild(devstepsDir) {
|
|
249
|
+
const paths = getIndexPaths(devstepsDir);
|
|
250
|
+
if (!existsSync(paths.root)) {
|
|
251
|
+
throw new Error('No index to backup');
|
|
252
|
+
}
|
|
253
|
+
// Create timestamped backup name
|
|
254
|
+
const timestamp = getCurrentTimestamp().replace(/:/g, '-').replace(/\./g, '-');
|
|
255
|
+
const backupPath = join(devstepsDir, `index.backup-${timestamp}`);
|
|
256
|
+
// Rename index to backup
|
|
257
|
+
renameSync(paths.root, backupPath);
|
|
258
|
+
return backupPath;
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=index-rebuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-rebuild.js","sourceRoot":"","sources":["../../src/core/index-rebuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-rebuild.test.d.ts","sourceRoot":"","sources":["../../src/core/index-rebuild.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|