@nahisaho/yata-global 1.6.6
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/api-client.d.ts +71 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +165 -0
- package/dist/api-client.js.map +1 -0
- package/dist/cache-manager.d.ts +122 -0
- package/dist/cache-manager.d.ts.map +1 -0
- package/dist/cache-manager.js +376 -0
- package/dist/cache-manager.js.map +1 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +548 -0
- package/dist/index.js.map +1 -0
- package/dist/kgpr/index.d.ts +12 -0
- package/dist/kgpr/index.d.ts.map +1 -0
- package/dist/kgpr/index.js +12 -0
- package/dist/kgpr/index.js.map +1 -0
- package/dist/kgpr/kgpr-manager.d.ts +162 -0
- package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
- package/dist/kgpr/kgpr-manager.js +465 -0
- package/dist/kgpr/kgpr-manager.js.map +1 -0
- package/dist/kgpr/merge-engine.d.ts +269 -0
- package/dist/kgpr/merge-engine.d.ts.map +1 -0
- package/dist/kgpr/merge-engine.js +451 -0
- package/dist/kgpr/merge-engine.js.map +1 -0
- package/dist/kgpr/notification-service.d.ts +227 -0
- package/dist/kgpr/notification-service.d.ts.map +1 -0
- package/dist/kgpr/notification-service.js +440 -0
- package/dist/kgpr/notification-service.js.map +1 -0
- package/dist/kgpr/privacy-filter.d.ts +61 -0
- package/dist/kgpr/privacy-filter.d.ts.map +1 -0
- package/dist/kgpr/privacy-filter.js +191 -0
- package/dist/kgpr/privacy-filter.js.map +1 -0
- package/dist/kgpr/types.d.ts +303 -0
- package/dist/kgpr/types.d.ts.map +1 -0
- package/dist/kgpr/types.js +40 -0
- package/dist/kgpr/types.js.map +1 -0
- package/dist/sync-engine.d.ts +104 -0
- package/dist/sync-engine.d.ts.map +1 -0
- package/dist/sync-engine.js +275 -0
- package/dist/sync-engine.js.map +1 -0
- package/dist/types.d.ts +353 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +19 -0
- package/dist/types.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YATA Global - Cache Manager
|
|
3
|
+
*
|
|
4
|
+
* Local caching for offline support and performance
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module @nahisaho/yata-global
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-YG-SYNC-003
|
|
10
|
+
*/
|
|
11
|
+
import Database from 'better-sqlite3';
|
|
12
|
+
/**
|
|
13
|
+
* SQLite schema for cache
|
|
14
|
+
*/
|
|
15
|
+
const CACHE_SCHEMA = `
|
|
16
|
+
-- Frameworks cache
|
|
17
|
+
CREATE TABLE IF NOT EXISTS frameworks (
|
|
18
|
+
id TEXT PRIMARY KEY,
|
|
19
|
+
data TEXT NOT NULL,
|
|
20
|
+
expires_at INTEGER,
|
|
21
|
+
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
-- Patterns cache
|
|
25
|
+
CREATE TABLE IF NOT EXISTS patterns (
|
|
26
|
+
id TEXT PRIMARY KEY,
|
|
27
|
+
data TEXT NOT NULL,
|
|
28
|
+
expires_at INTEGER,
|
|
29
|
+
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- Generic key-value cache
|
|
33
|
+
CREATE TABLE IF NOT EXISTS cache (
|
|
34
|
+
key TEXT PRIMARY KEY,
|
|
35
|
+
value TEXT NOT NULL,
|
|
36
|
+
expires_at INTEGER,
|
|
37
|
+
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
-- Sync metadata
|
|
41
|
+
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
42
|
+
key TEXT PRIMARY KEY,
|
|
43
|
+
value TEXT NOT NULL,
|
|
44
|
+
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
-- Indexes
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_frameworks_expires ON frameworks(expires_at);
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_patterns_expires ON patterns(expires_at);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_cache_expires ON cache(expires_at);
|
|
51
|
+
`;
|
|
52
|
+
/**
|
|
53
|
+
* Cache manager for offline support
|
|
54
|
+
*/
|
|
55
|
+
export class CacheManager {
|
|
56
|
+
db;
|
|
57
|
+
config;
|
|
58
|
+
defaultTtl = 3600 * 1000; // 1 hour in ms
|
|
59
|
+
constructor(dbPath, config) {
|
|
60
|
+
this.db = new Database(dbPath);
|
|
61
|
+
this.config = config;
|
|
62
|
+
// Enable WAL mode for better performance
|
|
63
|
+
this.db.pragma('journal_mode = WAL');
|
|
64
|
+
// Initialize schema
|
|
65
|
+
this.db.exec(CACHE_SCHEMA);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Close database connection
|
|
69
|
+
*/
|
|
70
|
+
close() {
|
|
71
|
+
this.db.close();
|
|
72
|
+
}
|
|
73
|
+
// ========================================
|
|
74
|
+
// Framework Cache
|
|
75
|
+
// ========================================
|
|
76
|
+
/**
|
|
77
|
+
* Cache a framework
|
|
78
|
+
*/
|
|
79
|
+
cacheFramework(framework, ttl) {
|
|
80
|
+
const expiresAt = ttl ? Date.now() + ttl : Date.now() + this.defaultTtl;
|
|
81
|
+
const stmt = this.db.prepare(`
|
|
82
|
+
INSERT OR REPLACE INTO frameworks (id, data, expires_at, created_at)
|
|
83
|
+
VALUES (?, ?, ?, ?)
|
|
84
|
+
`);
|
|
85
|
+
stmt.run(framework.id, JSON.stringify(framework), expiresAt, Date.now());
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Cache multiple frameworks
|
|
89
|
+
*/
|
|
90
|
+
cacheFrameworks(frameworks, ttl) {
|
|
91
|
+
const expiresAt = ttl ? Date.now() + ttl : Date.now() + this.defaultTtl;
|
|
92
|
+
const stmt = this.db.prepare(`
|
|
93
|
+
INSERT OR REPLACE INTO frameworks (id, data, expires_at, created_at)
|
|
94
|
+
VALUES (?, ?, ?, ?)
|
|
95
|
+
`);
|
|
96
|
+
const insert = this.db.transaction((fws) => {
|
|
97
|
+
for (const fw of fws) {
|
|
98
|
+
stmt.run(fw.id, JSON.stringify(fw), expiresAt, Date.now());
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
insert(frameworks);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get cached framework
|
|
105
|
+
*/
|
|
106
|
+
getFramework(id) {
|
|
107
|
+
const stmt = this.db.prepare(`
|
|
108
|
+
SELECT data FROM frameworks
|
|
109
|
+
WHERE id = ? AND (expires_at IS NULL OR expires_at > ?)
|
|
110
|
+
`);
|
|
111
|
+
const row = stmt.get(id, Date.now());
|
|
112
|
+
return row ? this.parseFramework(row.data) : null;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get all cached frameworks
|
|
116
|
+
*/
|
|
117
|
+
getAllFrameworks() {
|
|
118
|
+
const stmt = this.db.prepare(`
|
|
119
|
+
SELECT data FROM frameworks
|
|
120
|
+
WHERE expires_at IS NULL OR expires_at > ?
|
|
121
|
+
`);
|
|
122
|
+
const rows = stmt.all(Date.now());
|
|
123
|
+
return rows.map(row => this.parseFramework(row.data)).filter((f) => f !== null);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Parse framework JSON with date conversion
|
|
127
|
+
*/
|
|
128
|
+
parseFramework(json) {
|
|
129
|
+
try {
|
|
130
|
+
const data = JSON.parse(json);
|
|
131
|
+
return {
|
|
132
|
+
...data,
|
|
133
|
+
updatedAt: new Date(data.updatedAt),
|
|
134
|
+
createdAt: new Date(data.createdAt),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// ========================================
|
|
142
|
+
// Pattern Cache
|
|
143
|
+
// ========================================
|
|
144
|
+
/**
|
|
145
|
+
* Cache a pattern
|
|
146
|
+
*/
|
|
147
|
+
cachePattern(pattern, ttl) {
|
|
148
|
+
const expiresAt = ttl ? Date.now() + ttl : Date.now() + this.defaultTtl;
|
|
149
|
+
const stmt = this.db.prepare(`
|
|
150
|
+
INSERT OR REPLACE INTO patterns (id, data, expires_at, created_at)
|
|
151
|
+
VALUES (?, ?, ?, ?)
|
|
152
|
+
`);
|
|
153
|
+
stmt.run(pattern.id, JSON.stringify(pattern), expiresAt, Date.now());
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Cache multiple patterns
|
|
157
|
+
*/
|
|
158
|
+
cachePatterns(patterns, ttl) {
|
|
159
|
+
const expiresAt = ttl ? Date.now() + ttl : Date.now() + this.defaultTtl;
|
|
160
|
+
const stmt = this.db.prepare(`
|
|
161
|
+
INSERT OR REPLACE INTO patterns (id, data, expires_at, created_at)
|
|
162
|
+
VALUES (?, ?, ?, ?)
|
|
163
|
+
`);
|
|
164
|
+
const insert = this.db.transaction((ps) => {
|
|
165
|
+
for (const p of ps) {
|
|
166
|
+
stmt.run(p.id, JSON.stringify(p), expiresAt, Date.now());
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
insert(patterns);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get cached pattern
|
|
173
|
+
*/
|
|
174
|
+
getPattern(id) {
|
|
175
|
+
const stmt = this.db.prepare(`
|
|
176
|
+
SELECT data FROM patterns
|
|
177
|
+
WHERE id = ? AND (expires_at IS NULL OR expires_at > ?)
|
|
178
|
+
`);
|
|
179
|
+
const row = stmt.get(id, Date.now());
|
|
180
|
+
return row ? this.parsePattern(row.data) : null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get all cached patterns
|
|
184
|
+
*/
|
|
185
|
+
getAllPatterns() {
|
|
186
|
+
const stmt = this.db.prepare(`
|
|
187
|
+
SELECT data FROM patterns
|
|
188
|
+
WHERE expires_at IS NULL OR expires_at > ?
|
|
189
|
+
`);
|
|
190
|
+
const rows = stmt.all(Date.now());
|
|
191
|
+
return rows.map(row => this.parsePattern(row.data)).filter((p) => p !== null);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Parse pattern JSON with date conversion
|
|
195
|
+
*/
|
|
196
|
+
parsePattern(json) {
|
|
197
|
+
try {
|
|
198
|
+
const data = JSON.parse(json);
|
|
199
|
+
return {
|
|
200
|
+
...data,
|
|
201
|
+
updatedAt: new Date(data.updatedAt),
|
|
202
|
+
createdAt: new Date(data.createdAt),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// ========================================
|
|
210
|
+
// Generic Cache
|
|
211
|
+
// ========================================
|
|
212
|
+
/**
|
|
213
|
+
* Set generic cache value
|
|
214
|
+
*/
|
|
215
|
+
set(key, value, ttl) {
|
|
216
|
+
const expiresAt = ttl ? Date.now() + ttl : null;
|
|
217
|
+
const stmt = this.db.prepare(`
|
|
218
|
+
INSERT OR REPLACE INTO cache (key, value, expires_at, created_at)
|
|
219
|
+
VALUES (?, ?, ?, ?)
|
|
220
|
+
`);
|
|
221
|
+
stmt.run(key, JSON.stringify(value), expiresAt, Date.now());
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get generic cache value
|
|
225
|
+
*/
|
|
226
|
+
get(key) {
|
|
227
|
+
const stmt = this.db.prepare(`
|
|
228
|
+
SELECT value FROM cache
|
|
229
|
+
WHERE key = ? AND (expires_at IS NULL OR expires_at > ?)
|
|
230
|
+
`);
|
|
231
|
+
const row = stmt.get(key, Date.now());
|
|
232
|
+
if (!row)
|
|
233
|
+
return null;
|
|
234
|
+
try {
|
|
235
|
+
return JSON.parse(row.value);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Delete cache entry
|
|
243
|
+
*/
|
|
244
|
+
delete(key) {
|
|
245
|
+
const stmt = this.db.prepare('DELETE FROM cache WHERE key = ?');
|
|
246
|
+
const result = stmt.run(key);
|
|
247
|
+
return result.changes > 0;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Check if key exists and is valid
|
|
251
|
+
*/
|
|
252
|
+
has(key) {
|
|
253
|
+
const stmt = this.db.prepare(`
|
|
254
|
+
SELECT 1 FROM cache
|
|
255
|
+
WHERE key = ? AND (expires_at IS NULL OR expires_at > ?)
|
|
256
|
+
`);
|
|
257
|
+
return stmt.get(key, Date.now()) !== undefined;
|
|
258
|
+
}
|
|
259
|
+
// ========================================
|
|
260
|
+
// Sync Metadata
|
|
261
|
+
// ========================================
|
|
262
|
+
/**
|
|
263
|
+
* Set sync metadata
|
|
264
|
+
*/
|
|
265
|
+
setSyncMeta(key, value) {
|
|
266
|
+
const stmt = this.db.prepare(`
|
|
267
|
+
INSERT OR REPLACE INTO sync_meta (key, value, updated_at)
|
|
268
|
+
VALUES (?, ?, ?)
|
|
269
|
+
`);
|
|
270
|
+
stmt.run(key, value, Date.now());
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get sync metadata
|
|
274
|
+
*/
|
|
275
|
+
getSyncMeta(key) {
|
|
276
|
+
const stmt = this.db.prepare('SELECT value FROM sync_meta WHERE key = ?');
|
|
277
|
+
const row = stmt.get(key);
|
|
278
|
+
return row?.value ?? null;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Get last sync timestamp
|
|
282
|
+
*/
|
|
283
|
+
getLastSyncTime() {
|
|
284
|
+
const value = this.getSyncMeta('last_sync');
|
|
285
|
+
return value ? new Date(parseInt(value, 10)) : null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Set last sync timestamp
|
|
289
|
+
*/
|
|
290
|
+
setLastSyncTime(time) {
|
|
291
|
+
this.setSyncMeta('last_sync', time.getTime().toString());
|
|
292
|
+
}
|
|
293
|
+
// ========================================
|
|
294
|
+
// Cache Management
|
|
295
|
+
// ========================================
|
|
296
|
+
/**
|
|
297
|
+
* Clear expired entries
|
|
298
|
+
*/
|
|
299
|
+
clearExpired() {
|
|
300
|
+
const now = Date.now();
|
|
301
|
+
let cleared = 0;
|
|
302
|
+
const tables = ['frameworks', 'patterns', 'cache'];
|
|
303
|
+
for (const table of tables) {
|
|
304
|
+
const stmt = this.db.prepare(`DELETE FROM ${table} WHERE expires_at IS NOT NULL AND expires_at <= ?`);
|
|
305
|
+
const result = stmt.run(now);
|
|
306
|
+
cleared += result.changes;
|
|
307
|
+
}
|
|
308
|
+
return cleared;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Clear all cache
|
|
312
|
+
*/
|
|
313
|
+
clearAll() {
|
|
314
|
+
this.db.exec(`
|
|
315
|
+
DELETE FROM frameworks;
|
|
316
|
+
DELETE FROM patterns;
|
|
317
|
+
DELETE FROM cache;
|
|
318
|
+
`);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get cache size in bytes
|
|
322
|
+
*/
|
|
323
|
+
getCacheSize() {
|
|
324
|
+
const stmt = this.db.prepare(`
|
|
325
|
+
SELECT page_count * page_size as size FROM pragma_page_count(), pragma_page_size()
|
|
326
|
+
`);
|
|
327
|
+
const row = stmt.get();
|
|
328
|
+
return row?.size ?? 0;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get cache statistics
|
|
332
|
+
*/
|
|
333
|
+
getStats() {
|
|
334
|
+
const fwCount = this.db.prepare('SELECT COUNT(*) as count FROM frameworks WHERE expires_at IS NULL OR expires_at > ?').get(Date.now());
|
|
335
|
+
const pCount = this.db.prepare('SELECT COUNT(*) as count FROM patterns WHERE expires_at IS NULL OR expires_at > ?').get(Date.now());
|
|
336
|
+
const cacheCount = this.db.prepare('SELECT COUNT(*) as count FROM cache WHERE expires_at IS NULL OR expires_at > ?').get(Date.now());
|
|
337
|
+
return {
|
|
338
|
+
frameworkCount: fwCount.count,
|
|
339
|
+
patternCount: pCount.count,
|
|
340
|
+
cacheEntries: cacheCount.count,
|
|
341
|
+
sizeBytes: this.getCacheSize(),
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Enforce maximum cache size
|
|
346
|
+
*/
|
|
347
|
+
enforceMaxSize() {
|
|
348
|
+
const currentSize = this.getCacheSize();
|
|
349
|
+
if (currentSize <= this.config.maxCacheSize)
|
|
350
|
+
return;
|
|
351
|
+
// Clear expired first
|
|
352
|
+
this.clearExpired();
|
|
353
|
+
// If still too large, clear oldest entries
|
|
354
|
+
if (this.getCacheSize() > this.config.maxCacheSize) {
|
|
355
|
+
// Delete oldest 20% of cache entries
|
|
356
|
+
const tables = ['frameworks', 'patterns', 'cache'];
|
|
357
|
+
for (const table of tables) {
|
|
358
|
+
const countStmt = this.db.prepare(`SELECT COUNT(*) as count FROM ${table}`);
|
|
359
|
+
const { count } = countStmt.get();
|
|
360
|
+
const toDelete = Math.ceil(count * 0.2);
|
|
361
|
+
if (toDelete > 0) {
|
|
362
|
+
const deleteStmt = this.db.prepare(`
|
|
363
|
+
DELETE FROM ${table}
|
|
364
|
+
WHERE rowid IN (
|
|
365
|
+
SELECT rowid FROM ${table}
|
|
366
|
+
ORDER BY created_at ASC
|
|
367
|
+
LIMIT ?
|
|
368
|
+
)
|
|
369
|
+
`);
|
|
370
|
+
deleteStmt.run(toDelete);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=cache-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YATA Global - Main Client
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
* @module @nahisaho/yata-global
|
|
6
|
+
*
|
|
7
|
+
* @see REQ-YATA-GLOBAL-001
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import type { FrameworkKnowledge, FrameworkCategory, SharedPattern, SearchOptions, SearchResult, SyncConfig, SyncResult, SyncStatus, AuthToken, User, AnalyticsData, YataGlobalClient } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* YATA Global main client
|
|
13
|
+
*/
|
|
14
|
+
export declare class YataGlobal extends EventEmitter implements YataGlobalClient {
|
|
15
|
+
private config;
|
|
16
|
+
private apiClient;
|
|
17
|
+
private cacheManager;
|
|
18
|
+
private syncEngine;
|
|
19
|
+
private currentUser;
|
|
20
|
+
constructor(config?: Partial<SyncConfig>);
|
|
21
|
+
/**
|
|
22
|
+
* Close connections and cleanup
|
|
23
|
+
*/
|
|
24
|
+
close(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Update configuration
|
|
27
|
+
*/
|
|
28
|
+
configure(config: Partial<SyncConfig>): void;
|
|
29
|
+
/**
|
|
30
|
+
* Get current configuration
|
|
31
|
+
*/
|
|
32
|
+
getConfig(): SyncConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Login with username/password
|
|
35
|
+
*/
|
|
36
|
+
login(credentials: {
|
|
37
|
+
username: string;
|
|
38
|
+
password: string;
|
|
39
|
+
}): Promise<AuthToken>;
|
|
40
|
+
/**
|
|
41
|
+
* Login with existing token
|
|
42
|
+
*/
|
|
43
|
+
loginWithToken(token: string): Promise<AuthToken>;
|
|
44
|
+
/**
|
|
45
|
+
* Logout
|
|
46
|
+
*/
|
|
47
|
+
logout(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if authenticated
|
|
50
|
+
*/
|
|
51
|
+
isAuthenticated(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Fetch current user info
|
|
54
|
+
*/
|
|
55
|
+
private fetchCurrentUser;
|
|
56
|
+
/**
|
|
57
|
+
* Get framework by ID
|
|
58
|
+
*/
|
|
59
|
+
getFramework(id: string): Promise<FrameworkKnowledge | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Search frameworks
|
|
62
|
+
*/
|
|
63
|
+
searchFrameworks(options: SearchOptions): Promise<SearchResult<FrameworkKnowledge>>;
|
|
64
|
+
/**
|
|
65
|
+
* Get frameworks by category
|
|
66
|
+
*/
|
|
67
|
+
getFrameworksByCategory(category: FrameworkCategory): Promise<FrameworkKnowledge[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Filter frameworks by search options
|
|
70
|
+
*/
|
|
71
|
+
private filterFrameworks;
|
|
72
|
+
/**
|
|
73
|
+
* Get pattern by ID
|
|
74
|
+
*/
|
|
75
|
+
getPattern(id: string): Promise<SharedPattern | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Search patterns
|
|
78
|
+
*/
|
|
79
|
+
searchPatterns(options: SearchOptions): Promise<SearchResult<SharedPattern>>;
|
|
80
|
+
/**
|
|
81
|
+
* Share a new pattern
|
|
82
|
+
*/
|
|
83
|
+
sharePattern(pattern: Omit<SharedPattern, 'id' | 'authorId' | 'rating' | 'downloads' | 'createdAt' | 'updatedAt'>): Promise<string>;
|
|
84
|
+
/**
|
|
85
|
+
* Rate a pattern
|
|
86
|
+
*/
|
|
87
|
+
ratePattern(patternId: string, rating: 1 | 2 | 3 | 4 | 5): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Delete a pattern
|
|
90
|
+
*/
|
|
91
|
+
deletePattern(patternId: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Filter patterns by search options
|
|
94
|
+
*/
|
|
95
|
+
private filterPatterns;
|
|
96
|
+
/**
|
|
97
|
+
* Sort results by criteria
|
|
98
|
+
*/
|
|
99
|
+
private sortResults;
|
|
100
|
+
/**
|
|
101
|
+
* Perform sync with server
|
|
102
|
+
*/
|
|
103
|
+
sync(): Promise<SyncResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Get current sync status
|
|
106
|
+
*/
|
|
107
|
+
getSyncStatus(): SyncStatus;
|
|
108
|
+
/**
|
|
109
|
+
* Enable offline mode
|
|
110
|
+
*/
|
|
111
|
+
enableOfflineMode(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Disable offline mode
|
|
114
|
+
*/
|
|
115
|
+
disableOfflineMode(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get analytics data
|
|
118
|
+
*/
|
|
119
|
+
getAnalytics(): Promise<AnalyticsData>;
|
|
120
|
+
/**
|
|
121
|
+
* Get current user
|
|
122
|
+
*/
|
|
123
|
+
getCurrentUser(): Promise<User | null>;
|
|
124
|
+
/**
|
|
125
|
+
* Update user profile
|
|
126
|
+
*/
|
|
127
|
+
updateProfile(updates: Partial<User>): Promise<void>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create YATA Global client
|
|
131
|
+
*/
|
|
132
|
+
export declare function createYataGlobal(config?: Partial<SyncConfig>): YataGlobal;
|
|
133
|
+
export * from './types.js';
|
|
134
|
+
export { ApiClient } from './api-client.js';
|
|
135
|
+
export { CacheManager } from './cache-manager.js';
|
|
136
|
+
export { SyncEngine } from './sync-engine.js';
|
|
137
|
+
export * from './kgpr/index.js';
|
|
138
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|