@sascha384/tic 1.35.0 → 2.0.0
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/.claude-plugin/plugin.json +1 -1
- package/dist/backends/availability.js +4 -2
- package/dist/backends/availability.js.map +1 -1
- package/dist/backends/factory.d.ts +5 -3
- package/dist/backends/factory.js +28 -43
- package/dist/backends/factory.js.map +1 -1
- package/dist/backends/files/hash.d.ts +1 -0
- package/dist/backends/files/hash.js +5 -0
- package/dist/backends/files/hash.js.map +1 -0
- package/dist/backends/files/index.d.ts +48 -0
- package/dist/backends/files/index.js +174 -0
- package/dist/backends/files/index.js.map +1 -0
- package/dist/backends/files/sync.d.ts +13 -0
- package/dist/backends/files/sync.js +69 -0
- package/dist/backends/files/sync.js.map +1 -0
- package/dist/backends/jira/config.d.ts +1 -1
- package/dist/backends/jira/config.js +6 -9
- package/dist/backends/jira/config.js.map +1 -1
- package/dist/backends/types.d.ts +12 -0
- package/dist/backends/types.js +5 -1
- package/dist/backends/types.js.map +1 -1
- package/dist/cli/commands/config.js +27 -14
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/init.js +10 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +4 -4
- package/dist/cli/commands/mcp.js +16 -25
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/index.js +16 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/commands.js +0 -6
- package/dist/commands.js.map +1 -1
- package/dist/components/Header.js +3 -2
- package/dist/components/Header.js.map +1 -1
- package/dist/components/OverlayPanel.d.ts +2 -1
- package/dist/components/OverlayPanel.js +8 -1
- package/dist/components/OverlayPanel.js.map +1 -1
- package/dist/components/Settings.js +6 -11
- package/dist/components/Settings.js.map +1 -1
- package/dist/components/StatusScreen.js +1 -1
- package/dist/components/StatusScreen.js.map +1 -1
- package/dist/components/WorkItemForm.js +6 -9
- package/dist/components/WorkItemForm.js.map +1 -1
- package/dist/components/WorkItemList.js +102 -51
- package/dist/components/WorkItemList.js.map +1 -1
- package/dist/index.js +20 -8
- package/dist/index.js.map +1 -1
- package/dist/storage/config.d.ts +61 -0
- package/dist/storage/config.js +309 -0
- package/dist/storage/config.js.map +1 -0
- package/dist/storage/db.d.ts +11 -0
- package/dist/storage/db.js +34 -0
- package/dist/storage/db.js.map +1 -0
- package/dist/storage/index.d.ts +73 -0
- package/dist/storage/index.js +966 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/mappers.d.ts +35 -0
- package/dist/storage/mappers.js +70 -0
- package/dist/storage/mappers.js.map +1 -0
- package/dist/storage/schema.d.ts +1844 -0
- package/dist/storage/schema.js +197 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/syncQueue.d.ts +13 -0
- package/dist/storage/syncQueue.js +98 -0
- package/dist/storage/syncQueue.js.map +1 -0
- package/dist/storage/undo.d.ts +22 -0
- package/dist/storage/undo.js +129 -0
- package/dist/storage/undo.js.map +1 -0
- package/dist/stores/backendDataStore.d.ts +4 -1
- package/dist/stores/backendDataStore.js +61 -40
- package/dist/stores/backendDataStore.js.map +1 -1
- package/dist/stores/configStore.d.ts +3 -1
- package/dist/stores/configStore.js +25 -65
- package/dist/stores/configStore.js.map +1 -1
- package/dist/stores/filterStore.d.ts +2 -0
- package/dist/stores/filterStore.js +7 -2
- package/dist/stores/filterStore.js.map +1 -1
- package/dist/stores/uiStore.d.ts +0 -2
- package/dist/stores/uiStore.js.map +1 -1
- package/dist/stores/undoStore.d.ts +4 -0
- package/dist/stores/undoStore.js +32 -0
- package/dist/stores/undoStore.js.map +1 -1
- package/dist/sync/SyncManager.d.ts +3 -4
- package/dist/sync/SyncManager.js +78 -37
- package/dist/sync/SyncManager.js.map +1 -1
- package/dist/sync/types.d.ts +10 -1
- package/package.json +5 -1
- package/dist/backends/local/config.d.ts +0 -38
- package/dist/backends/local/config.js +0 -42
- package/dist/backends/local/config.js.map +0 -1
- package/dist/backends/local/index.d.ts +0 -45
- package/dist/backends/local/index.js +0 -291
- package/dist/backends/local/index.js.map +0 -1
- package/dist/sync/queue.d.ts +0 -12
- package/dist/sync/queue.js +0 -56
- package/dist/sync/queue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendDataStore.js","sourceRoot":"","sources":["../../src/stores/backendDataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"backendDataStore.js","sourceRoot":"","sources":["../../src/stores/backendDataStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { type Config } from '../
|
|
1
|
+
import { type Config } from '../storage/config.js';
|
|
2
|
+
import type { TicDatabase } from '../storage/db.js';
|
|
2
3
|
export interface ConfigStoreState {
|
|
3
4
|
config: Config;
|
|
4
5
|
loaded: boolean;
|
|
5
6
|
init(root: string): Promise<void>;
|
|
6
7
|
startWatching(): void;
|
|
7
8
|
update(partial: Partial<Config>): Promise<void>;
|
|
9
|
+
setDatabase(db: TicDatabase | null): void;
|
|
8
10
|
destroy(): void;
|
|
9
11
|
}
|
|
10
12
|
export declare const configStore: import("zustand").StoreApi<ConfigStoreState>;
|
|
@@ -1,82 +1,42 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
1
|
import { createStore } from 'zustand/vanilla';
|
|
4
2
|
import { useStore } from 'zustand';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
const WRITE_FLAG_DURATION_MS = 100;
|
|
9
|
-
let watcher = null;
|
|
10
|
-
let debounceTimer = null;
|
|
11
|
-
let writingTimer = null;
|
|
12
|
-
let writing = false;
|
|
13
|
-
let currentRoot = '';
|
|
3
|
+
import { defaultConfig } from '../storage/config.js';
|
|
4
|
+
import { readConfig as readConfigFromDb, writeConfig as writeConfigToDb, } from '../storage/config.js';
|
|
5
|
+
let currentDb = null;
|
|
14
6
|
export const configStore = createStore((set, get) => ({
|
|
15
7
|
config: { ...defaultConfig },
|
|
16
8
|
loaded: false,
|
|
17
|
-
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/require-await, @typescript-eslint/no-unused-vars
|
|
10
|
+
async init(_root) {
|
|
11
|
+
// Preserve database reference across the internal destroy
|
|
12
|
+
const db = currentDb;
|
|
18
13
|
get().destroy();
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
currentDb = db;
|
|
15
|
+
if (currentDb) {
|
|
16
|
+
const config = readConfigFromDb(currentDb);
|
|
17
|
+
set({ config, loaded: true });
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// No DB — fall back to defaults
|
|
21
|
+
set({ config: { ...defaultConfig }, loaded: true });
|
|
22
|
+
}
|
|
22
23
|
},
|
|
23
24
|
startWatching() {
|
|
24
|
-
|
|
25
|
-
return; // Already watching
|
|
26
|
-
if (!currentRoot)
|
|
27
|
-
return;
|
|
28
|
-
// Ensure .tic dir exists before watching
|
|
29
|
-
const ticDir = path.join(currentRoot, '.tic');
|
|
30
|
-
fs.mkdirSync(ticDir, { recursive: true });
|
|
31
|
-
const configPath = path.join(ticDir, 'config.yml');
|
|
32
|
-
// Ensure the config file exists so fs.watch doesn't error
|
|
33
|
-
if (!fs.existsSync(configPath)) {
|
|
34
|
-
fs.writeFileSync(configPath, yaml.stringify(get().config));
|
|
35
|
-
}
|
|
36
|
-
watcher = fs.watch(configPath, () => {
|
|
37
|
-
if (writing)
|
|
38
|
-
return;
|
|
39
|
-
if (debounceTimer)
|
|
40
|
-
clearTimeout(debounceTimer);
|
|
41
|
-
debounceTimer = setTimeout(() => {
|
|
42
|
-
debounceTimer = null;
|
|
43
|
-
readConfig(currentRoot).then((updated) => set({ config: updated }), () => {
|
|
44
|
-
// File may have been deleted or be mid-write; ignore
|
|
45
|
-
});
|
|
46
|
-
}, WATCH_DEBOUNCE_MS);
|
|
47
|
-
});
|
|
48
|
-
watcher.on('error', () => {
|
|
49
|
-
watcher?.close();
|
|
50
|
-
watcher = null;
|
|
51
|
-
});
|
|
25
|
+
// No-op — DB is the source of truth, no file watcher needed
|
|
52
26
|
},
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
53
28
|
async update(partial) {
|
|
54
29
|
const merged = { ...get().config, ...partial };
|
|
55
30
|
set({ config: merged });
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
writing = false;
|
|
63
|
-
writingTimer = null;
|
|
64
|
-
}, WRITE_FLAG_DURATION_MS);
|
|
31
|
+
if (currentDb) {
|
|
32
|
+
writeConfigToDb(currentDb, merged);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
setDatabase(db) {
|
|
36
|
+
currentDb = db;
|
|
65
37
|
},
|
|
66
38
|
destroy() {
|
|
67
|
-
|
|
68
|
-
watcher.close();
|
|
69
|
-
watcher = null;
|
|
70
|
-
}
|
|
71
|
-
if (debounceTimer) {
|
|
72
|
-
clearTimeout(debounceTimer);
|
|
73
|
-
debounceTimer = null;
|
|
74
|
-
}
|
|
75
|
-
if (writingTimer) {
|
|
76
|
-
clearTimeout(writingTimer);
|
|
77
|
-
writingTimer = null;
|
|
78
|
-
}
|
|
79
|
-
writing = false;
|
|
39
|
+
currentDb = null;
|
|
80
40
|
set({ config: { ...defaultConfig }, loaded: false });
|
|
81
41
|
},
|
|
82
42
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../src/stores/configStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../src/stores/configStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,eAAe,GAC/B,MAAM,sBAAsB,CAAC;AAa9B,IAAI,SAAS,GAAuB,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;IAC5B,MAAM,EAAE,KAAK;IAEb,+FAA+F;IAC/F,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,0DAA0D;QAC1D,MAAM,EAAE,GAAG,SAAS,CAAC;QACrB,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChB,SAAS,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC3C,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,aAAa;QACX,4DAA4D;IAC9D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,MAAM,CAAC,OAAwB;QACnC,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAExB,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAsB;QAChC,SAAS,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,SAAS,GAAG,IAAI,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,cAAc,CAAI,QAAwC;IACxE,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -2,6 +2,8 @@ import type { ViewFilters, SavedView } from '../filters.js';
|
|
|
2
2
|
export interface FilterStoreState {
|
|
3
3
|
activeFilters: ViewFilters;
|
|
4
4
|
activeViewName: string | null;
|
|
5
|
+
/** Remembers the last loaded view name even after filters diverge. */
|
|
6
|
+
lastViewName: string | null;
|
|
5
7
|
setFilters: (filters: ViewFilters) => void;
|
|
6
8
|
clearFilters: () => void;
|
|
7
9
|
toggleFilter: (field: keyof ViewFilters, value: string) => void;
|
|
@@ -4,8 +4,9 @@ import { useStore } from 'zustand';
|
|
|
4
4
|
export const filterStore = createStore((set) => ({
|
|
5
5
|
activeFilters: {},
|
|
6
6
|
activeViewName: null,
|
|
7
|
+
lastViewName: null,
|
|
7
8
|
setFilters: (filters) => set({ activeFilters: filters, activeViewName: null }),
|
|
8
|
-
clearFilters: () => set({ activeFilters: {}, activeViewName: null }),
|
|
9
|
+
clearFilters: () => set({ activeFilters: {}, activeViewName: null, lastViewName: null }),
|
|
9
10
|
toggleFilter: (field, value) => set((state) => {
|
|
10
11
|
const current = state.activeFilters[field] ?? [];
|
|
11
12
|
const idx = current.indexOf(value);
|
|
@@ -25,7 +26,11 @@ export const filterStore = createStore((set) => ({
|
|
|
25
26
|
}
|
|
26
27
|
return { activeFilters: nextFilters, activeViewName: null };
|
|
27
28
|
}),
|
|
28
|
-
loadView: (view) => set({
|
|
29
|
+
loadView: (view) => set({
|
|
30
|
+
activeFilters: { ...view.filters },
|
|
31
|
+
activeViewName: view.name,
|
|
32
|
+
lastViewName: view.name,
|
|
33
|
+
}),
|
|
29
34
|
}));
|
|
30
35
|
export function useFilterStore(selector) {
|
|
31
36
|
return useStore(filterStore, selector);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterStore.js","sourceRoot":"","sources":["../../src/stores/filterStore.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"filterStore.js","sourceRoot":"","sources":["../../src/stores/filterStore.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAenC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAElB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAEvD,YAAY,EAAE,GAAG,EAAE,CACjB,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEtE,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAc,CAAC;QACnB,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEJ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,GAAG,CAAC;QACF,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QAClC,cAAc,EAAE,IAAI,CAAC,IAAI;QACzB,YAAY,EAAE,IAAI,CAAC,IAAI;KACxB,CAAC;CACL,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,cAAc,CAAI,QAAwC;IACxE,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/stores/uiStore.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiStore.js","sourceRoot":"","sources":["../../src/stores/uiStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"uiStore.js","sourceRoot":"","sources":["../../src/stores/uiStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAwCnC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IAEX,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACzD,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1C,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAC1E,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACpE,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,UAAU,CAAI,QAAoC;IAChE,OAAO,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC;IACjD,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WorkItem } from '../types.js';
|
|
2
2
|
import type { QueueAction } from '../sync/types.js';
|
|
3
|
+
import type { TicDatabase } from '../storage/db.js';
|
|
3
4
|
export type UndoActionType = 'delete' | 'create' | 'update';
|
|
4
5
|
export interface UndoEntry {
|
|
5
6
|
type: UndoActionType;
|
|
@@ -14,6 +15,9 @@ export interface UndoStoreState {
|
|
|
14
15
|
pushUndo: (entry: UndoEntry) => UndoEntry | undefined;
|
|
15
16
|
popUndo: () => UndoEntry | undefined;
|
|
16
17
|
clear: () => UndoEntry[];
|
|
18
|
+
setDatabase: (db: TicDatabase | null) => void;
|
|
19
|
+
initFromDb: () => void;
|
|
20
|
+
destroy: () => void;
|
|
17
21
|
}
|
|
18
22
|
export declare const undoStore: import("zustand").StoreApi<UndoStoreState>;
|
|
19
23
|
export declare function useUndoStore<T>(selector: (state: UndoStoreState) => T): T;
|
package/dist/stores/undoStore.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { createStore } from 'zustand/vanilla';
|
|
2
2
|
import { useStore } from 'zustand';
|
|
3
|
+
import { pushUndoEntry, popUndoEntry, readUndoStack, clearUndoStack, } from '../storage/undo.js';
|
|
3
4
|
const MAX_DEPTH = 5;
|
|
5
|
+
let currentDb = null;
|
|
4
6
|
export const undoStore = createStore((set, get) => ({
|
|
5
7
|
stack: [],
|
|
6
8
|
pushUndo: (entry) => {
|
|
9
|
+
if (currentDb) {
|
|
10
|
+
const evicted = pushUndoEntry(currentDb, entry);
|
|
11
|
+
set({ stack: readUndoStack(currentDb) });
|
|
12
|
+
return evicted;
|
|
13
|
+
}
|
|
7
14
|
const { stack } = get();
|
|
8
15
|
const newStack = [entry, ...stack];
|
|
9
16
|
let evicted;
|
|
@@ -14,6 +21,11 @@ export const undoStore = createStore((set, get) => ({
|
|
|
14
21
|
return evicted;
|
|
15
22
|
},
|
|
16
23
|
popUndo: () => {
|
|
24
|
+
if (currentDb) {
|
|
25
|
+
const popped = popUndoEntry(currentDb);
|
|
26
|
+
set({ stack: readUndoStack(currentDb) });
|
|
27
|
+
return popped;
|
|
28
|
+
}
|
|
17
29
|
const { stack } = get();
|
|
18
30
|
if (stack.length === 0)
|
|
19
31
|
return undefined;
|
|
@@ -22,10 +34,30 @@ export const undoStore = createStore((set, get) => ({
|
|
|
22
34
|
return first;
|
|
23
35
|
},
|
|
24
36
|
clear: () => {
|
|
37
|
+
if (currentDb) {
|
|
38
|
+
const entries = clearUndoStack(currentDb);
|
|
39
|
+
set({ stack: [] });
|
|
40
|
+
return entries;
|
|
41
|
+
}
|
|
25
42
|
const { stack } = get();
|
|
26
43
|
set({ stack: [] });
|
|
27
44
|
return stack;
|
|
28
45
|
},
|
|
46
|
+
setDatabase: (db) => {
|
|
47
|
+
currentDb = db;
|
|
48
|
+
if (db) {
|
|
49
|
+
set({ stack: readUndoStack(db) });
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
initFromDb: () => {
|
|
53
|
+
if (currentDb) {
|
|
54
|
+
set({ stack: readUndoStack(currentDb) });
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
destroy: () => {
|
|
58
|
+
currentDb = null;
|
|
59
|
+
set({ stack: [] });
|
|
60
|
+
},
|
|
29
61
|
}));
|
|
30
62
|
export function useUndoStore(selector) {
|
|
31
63
|
return useStore(undoStore, selector);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undoStore.js","sourceRoot":"","sources":["../../src/stores/undoStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"undoStore.js","sourceRoot":"","sources":["../../src/stores/undoStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { Backend } from '../backends/types.js';
|
|
2
|
-
import {
|
|
3
|
-
import type { SyncQueueStore } from './queue.js';
|
|
2
|
+
import type { SyncQueueAdapter } from './types.js';
|
|
4
3
|
import type { SyncStatus, SyncResult, PushResult } from './types.js';
|
|
5
4
|
type StatusListener = (status: SyncStatus) => void;
|
|
6
5
|
export declare class SyncManager {
|
|
7
|
-
private
|
|
6
|
+
private primary;
|
|
8
7
|
private remote;
|
|
9
8
|
private queue;
|
|
10
9
|
private status;
|
|
11
10
|
private listeners;
|
|
12
11
|
private syncLog;
|
|
13
|
-
constructor(
|
|
12
|
+
constructor(primary: Backend, remote: Backend, queue: SyncQueueAdapter);
|
|
14
13
|
getStatus(): SyncStatus;
|
|
15
14
|
onStatusChange(cb: StatusListener): void;
|
|
16
15
|
private updateStatus;
|
package/dist/sync/SyncManager.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { writeTemplate, deleteTemplate as removeTemplateFile, } from '../backends/local/templates.js';
|
|
1
|
+
import { isSyncableBackend } from '../backends/types.js';
|
|
3
2
|
export class SyncManager {
|
|
4
|
-
|
|
3
|
+
primary;
|
|
5
4
|
remote;
|
|
6
5
|
queue;
|
|
7
6
|
status;
|
|
8
7
|
listeners = [];
|
|
9
8
|
syncLog = [];
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
9
|
+
constructor(primary, remote, queue) {
|
|
10
|
+
this.primary = primary;
|
|
12
11
|
this.remote = remote;
|
|
13
12
|
this.queue = queue;
|
|
14
13
|
this.status = {
|
|
@@ -40,13 +39,16 @@ export class SyncManager {
|
|
|
40
39
|
}
|
|
41
40
|
async pushPending() {
|
|
42
41
|
this.updateStatus({ state: 'syncing' });
|
|
43
|
-
const
|
|
44
|
-
const total = pending.length;
|
|
42
|
+
const total = (await this.queue.read()).pending.length;
|
|
45
43
|
let current = 0;
|
|
46
44
|
let pushed = 0;
|
|
47
45
|
const errors = [];
|
|
48
46
|
const idMappings = new Map();
|
|
49
|
-
|
|
47
|
+
const failedEntries = [];
|
|
48
|
+
while (true) {
|
|
49
|
+
const entry = await this.queue.claimNext();
|
|
50
|
+
if (!entry)
|
|
51
|
+
break;
|
|
50
52
|
current++;
|
|
51
53
|
this.updateStatus({
|
|
52
54
|
state: 'syncing',
|
|
@@ -55,7 +57,6 @@ export class SyncManager {
|
|
|
55
57
|
});
|
|
56
58
|
try {
|
|
57
59
|
const resolvedId = await this.pushEntry(entry);
|
|
58
|
-
await this.queue.remove(resolvedId, entry.action);
|
|
59
60
|
if (resolvedId !== entry.itemId) {
|
|
60
61
|
idMappings.set(entry.itemId, resolvedId);
|
|
61
62
|
}
|
|
@@ -72,9 +73,11 @@ export class SyncManager {
|
|
|
72
73
|
const isLocalMissing = e instanceof Error &&
|
|
73
74
|
'code' in e &&
|
|
74
75
|
e.code === 'ENOENT';
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
const isNotFound = e instanceof Error &&
|
|
77
|
+
(e.message.includes('not found') ||
|
|
78
|
+
e.message.includes('does not exist'));
|
|
79
|
+
if (isLocalMissing || isNotFound) {
|
|
80
|
+
// Local item was deleted or never synced — already claimed (removed) from queue
|
|
78
81
|
this.appendLog({
|
|
79
82
|
phase: 'push',
|
|
80
83
|
action: entry.action,
|
|
@@ -98,9 +101,15 @@ export class SyncManager {
|
|
|
98
101
|
message: e instanceof Error ? e.message : String(e),
|
|
99
102
|
timestamp: new Date().toISOString(),
|
|
100
103
|
});
|
|
104
|
+
// Collect failed entry for re-queuing after the loop
|
|
105
|
+
failedEntries.push(entry);
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
108
|
}
|
|
109
|
+
// Re-queue all failed entries after the loop to avoid infinite re-claiming
|
|
110
|
+
for (const failed of failedEntries) {
|
|
111
|
+
await this.queue.append(failed);
|
|
112
|
+
}
|
|
104
113
|
this.updateStatus({
|
|
105
114
|
state: errors.length > 0 ? 'error' : 'idle',
|
|
106
115
|
pendingCount: (await this.queue.read()).pending.length,
|
|
@@ -134,7 +143,7 @@ export class SyncManager {
|
|
|
134
143
|
async pushEntry(entry) {
|
|
135
144
|
switch (entry.action) {
|
|
136
145
|
case 'create': {
|
|
137
|
-
const localItem = await this.
|
|
146
|
+
const localItem = await this.primary.getWorkItem(entry.itemId);
|
|
138
147
|
const remoteItem = await this.remote.createWorkItem(this.stripUnsupportedFields({
|
|
139
148
|
title: localItem.title,
|
|
140
149
|
type: localItem.type,
|
|
@@ -155,7 +164,7 @@ export class SyncManager {
|
|
|
155
164
|
return entry.itemId;
|
|
156
165
|
}
|
|
157
166
|
case 'update': {
|
|
158
|
-
const localItem = await this.
|
|
167
|
+
const localItem = await this.primary.getWorkItem(entry.itemId);
|
|
159
168
|
await this.remote.updateWorkItem(entry.itemId, this.stripUnsupportedFields({
|
|
160
169
|
title: localItem.title,
|
|
161
170
|
type: localItem.type,
|
|
@@ -196,12 +205,12 @@ export class SyncManager {
|
|
|
196
205
|
return entry.itemId;
|
|
197
206
|
}
|
|
198
207
|
case 'template-create': {
|
|
199
|
-
const template = await this.
|
|
208
|
+
const template = await this.primary.getTemplate(entry.templateSlug);
|
|
200
209
|
await this.remote.createTemplate(template);
|
|
201
210
|
return entry.itemId;
|
|
202
211
|
}
|
|
203
212
|
case 'template-update': {
|
|
204
|
-
const template = await this.
|
|
213
|
+
const template = await this.primary.getTemplate(entry.templateSlug);
|
|
205
214
|
await this.remote.updateTemplate(entry.templateSlug, template);
|
|
206
215
|
return entry.itemId;
|
|
207
216
|
}
|
|
@@ -224,24 +233,30 @@ export class SyncManager {
|
|
|
224
233
|
msg.includes('404'));
|
|
225
234
|
}
|
|
226
235
|
async renameLocalItem(oldId, newId) {
|
|
227
|
-
const item = await this.
|
|
228
|
-
const root = this.local.getRoot();
|
|
236
|
+
const item = await this.primary.getWorkItem(oldId);
|
|
229
237
|
const renamedItem = { ...item, id: newId };
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
238
|
+
if (isSyncableBackend(this.primary)) {
|
|
239
|
+
await this.primary.importWorkItem(renamedItem);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
await this.primary.createWorkItem(renamedItem);
|
|
243
|
+
}
|
|
244
|
+
await this.primary.deleteWorkItem(oldId);
|
|
245
|
+
// Fix references from other items
|
|
246
|
+
const allItems = await this.primary.listWorkItems();
|
|
233
247
|
for (const other of allItems) {
|
|
248
|
+
const changes = {};
|
|
234
249
|
let changed = false;
|
|
235
250
|
if (other.parent === oldId) {
|
|
236
|
-
|
|
251
|
+
changes.parent = newId;
|
|
237
252
|
changed = true;
|
|
238
253
|
}
|
|
239
254
|
if (other.dependsOn.includes(oldId)) {
|
|
240
|
-
|
|
255
|
+
changes.dependsOn = other.dependsOn.map((d) => d === oldId ? newId : d);
|
|
241
256
|
changed = true;
|
|
242
257
|
}
|
|
243
258
|
if (changed) {
|
|
244
|
-
await
|
|
259
|
+
await this.primary.updateWorkItem(other.id, changes);
|
|
245
260
|
}
|
|
246
261
|
}
|
|
247
262
|
}
|
|
@@ -259,36 +274,62 @@ export class SyncManager {
|
|
|
259
274
|
return { push, pullCount };
|
|
260
275
|
}
|
|
261
276
|
async pull() {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
277
|
+
// Sync config from remote via configStore
|
|
278
|
+
const [remoteIterations, remoteCurrentIteration, remoteStatuses, remoteTypes,] = await Promise.all([
|
|
279
|
+
this.remote.getIterations(),
|
|
280
|
+
this.remote.getCurrentIteration(),
|
|
281
|
+
this.remote.getStatuses(),
|
|
282
|
+
this.remote.getWorkItemTypes(),
|
|
283
|
+
]);
|
|
284
|
+
const { configStore } = await import('../stores/configStore.js');
|
|
285
|
+
await configStore.getState().update({
|
|
286
|
+
iterations: remoteIterations,
|
|
287
|
+
current_iteration: remoteCurrentIteration,
|
|
288
|
+
statuses: remoteStatuses,
|
|
289
|
+
types: remoteTypes,
|
|
267
290
|
});
|
|
268
291
|
const remoteItems = await this.remote.listWorkItems();
|
|
269
|
-
const root = this.local.getRoot();
|
|
270
292
|
const pendingIds = new Set((await this.queue.read()).pending.map((e) => e.itemId));
|
|
271
|
-
const localItems = await this.
|
|
293
|
+
const localItems = await this.primary.listWorkItems();
|
|
272
294
|
const localIds = new Set(localItems.map((i) => i.id));
|
|
273
295
|
const remoteIds = new Set(remoteItems.map((i) => i.id));
|
|
274
|
-
|
|
275
|
-
|
|
296
|
+
// Upsert remote items locally
|
|
297
|
+
if (isSyncableBackend(this.primary)) {
|
|
298
|
+
for (const item of remoteItems) {
|
|
299
|
+
await this.primary.importWorkItem(item);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
for (const item of remoteItems) {
|
|
304
|
+
if (localIds.has(item.id)) {
|
|
305
|
+
await this.primary.updateWorkItem(item.id, item);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
await this.primary.createWorkItem(item);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
276
311
|
}
|
|
312
|
+
// Delete local items not on remote (unless pending)
|
|
277
313
|
for (const localId of localIds) {
|
|
278
314
|
if (!remoteIds.has(localId) && !pendingIds.has(localId)) {
|
|
279
|
-
await
|
|
315
|
+
await this.primary.deleteWorkItem(localId);
|
|
280
316
|
}
|
|
281
317
|
}
|
|
282
318
|
// Pull templates if supported by remote
|
|
283
319
|
const remoteCaps = this.remote.getCapabilities();
|
|
284
320
|
if (remoteCaps.templates) {
|
|
285
321
|
const remoteTemplates = await this.remote.listTemplates();
|
|
286
|
-
const localTemplates = await this.
|
|
322
|
+
const localTemplates = await this.primary.listTemplates();
|
|
287
323
|
const localSlugs = new Set(localTemplates.map((t) => t.slug));
|
|
288
324
|
const remoteSlugs = new Set(remoteTemplates.map((t) => t.slug));
|
|
289
325
|
// Write/update remote templates locally
|
|
290
326
|
for (const rt of remoteTemplates) {
|
|
291
|
-
|
|
327
|
+
if (localSlugs.has(rt.slug)) {
|
|
328
|
+
await this.primary.updateTemplate(rt.slug, rt);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
await this.primary.createTemplate(rt);
|
|
332
|
+
}
|
|
292
333
|
}
|
|
293
334
|
// Delete local templates not on remote (unless pending in queue)
|
|
294
335
|
const pendingTemplateSlugs = new Set((await this.queue.read()).pending
|
|
@@ -297,7 +338,7 @@ export class SyncManager {
|
|
|
297
338
|
.filter(Boolean));
|
|
298
339
|
for (const slug of localSlugs) {
|
|
299
340
|
if (!remoteSlugs.has(slug) && !pendingTemplateSlugs.has(slug)) {
|
|
300
|
-
await
|
|
341
|
+
await this.primary.deleteTemplate(slug);
|
|
301
342
|
}
|
|
302
343
|
}
|
|
303
344
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncManager.js","sourceRoot":"","sources":["../../src/sync/SyncManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SyncManager.js","sourceRoot":"","sources":["../../src/sync/SyncManager.ts"],"names":[],"mappings":"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"}
|