baseguard 1.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/.eslintrc.json +25 -0
- package/.prettierrc +8 -0
- package/README.md +94 -0
- package/bin/base.js +494 -0
- package/dist/ai/fix-manager.d.ts +67 -0
- package/dist/ai/fix-manager.d.ts.map +1 -0
- package/dist/ai/fix-manager.js +326 -0
- package/dist/ai/fix-manager.js.map +1 -0
- package/dist/ai/gemini-analyzer.d.ts +116 -0
- package/dist/ai/gemini-analyzer.d.ts.map +1 -0
- package/dist/ai/gemini-analyzer.js +572 -0
- package/dist/ai/gemini-analyzer.js.map +1 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/jules-implementer.d.ts +115 -0
- package/dist/ai/jules-implementer.d.ts.map +1 -0
- package/dist/ai/jules-implementer.js +387 -0
- package/dist/ai/jules-implementer.js.map +1 -0
- package/dist/commands/automation.d.ts +5 -0
- package/dist/commands/automation.d.ts.map +1 -0
- package/dist/commands/automation.js +305 -0
- package/dist/commands/automation.js.map +1 -0
- package/dist/commands/check.d.ts +9 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +113 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/config.d.ts +11 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +324 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/fix.d.ts +9 -0
- package/dist/commands/fix.d.ts.map +1 -0
- package/dist/commands/fix.js +207 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +125 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/core/api-key-manager.d.ts +83 -0
- package/dist/core/api-key-manager.d.ts.map +1 -0
- package/dist/core/api-key-manager.js +244 -0
- package/dist/core/api-key-manager.js.map +1 -0
- package/dist/core/baseguard.d.ts +46 -0
- package/dist/core/baseguard.d.ts.map +1 -0
- package/dist/core/baseguard.js +132 -0
- package/dist/core/baseguard.js.map +1 -0
- package/dist/core/baseline-checker.d.ts +63 -0
- package/dist/core/baseline-checker.d.ts.map +1 -0
- package/dist/core/baseline-checker.js +502 -0
- package/dist/core/baseline-checker.js.map +1 -0
- package/dist/core/cache-manager.d.ts +88 -0
- package/dist/core/cache-manager.d.ts.map +1 -0
- package/dist/core/cache-manager.js +213 -0
- package/dist/core/cache-manager.js.map +1 -0
- package/dist/core/configuration.d.ts +140 -0
- package/dist/core/configuration.d.ts.map +1 -0
- package/dist/core/configuration.js +474 -0
- package/dist/core/configuration.js.map +1 -0
- package/dist/core/directory-filter.d.ts +90 -0
- package/dist/core/directory-filter.d.ts.map +1 -0
- package/dist/core/directory-filter.js +319 -0
- package/dist/core/directory-filter.js.map +1 -0
- package/dist/core/error-handler.d.ts +110 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +392 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/file-processor.d.ts +80 -0
- package/dist/core/file-processor.d.ts.map +1 -0
- package/dist/core/file-processor.js +259 -0
- package/dist/core/file-processor.js.map +1 -0
- package/dist/core/gitignore-manager.d.ts +44 -0
- package/dist/core/gitignore-manager.d.ts.map +1 -0
- package/dist/core/gitignore-manager.js +147 -0
- package/dist/core/gitignore-manager.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lazy-loader.d.ts +68 -0
- package/dist/core/lazy-loader.d.ts.map +1 -0
- package/dist/core/lazy-loader.js +260 -0
- package/dist/core/lazy-loader.js.map +1 -0
- package/dist/core/memory-manager.d.ts +1 -0
- package/dist/core/memory-manager.d.ts.map +1 -0
- package/dist/core/memory-manager.js +2 -0
- package/dist/core/memory-manager.js.map +1 -0
- package/dist/core/startup-optimizer.d.ts +45 -0
- package/dist/core/startup-optimizer.d.ts.map +1 -0
- package/dist/core/startup-optimizer.js +140 -0
- package/dist/core/startup-optimizer.js.map +1 -0
- package/dist/git/automation-engine.d.ts +58 -0
- package/dist/git/automation-engine.d.ts.map +1 -0
- package/dist/git/automation-engine.js +318 -0
- package/dist/git/automation-engine.js.map +1 -0
- package/dist/git/github-manager.d.ts +71 -0
- package/dist/git/github-manager.d.ts.map +1 -0
- package/dist/git/github-manager.js +226 -0
- package/dist/git/github-manager.js.map +1 -0
- package/dist/git/hook-manager.d.ts +43 -0
- package/dist/git/hook-manager.d.ts.map +1 -0
- package/dist/git/hook-manager.js +191 -0
- package/dist/git/hook-manager.js.map +1 -0
- package/dist/git/index.d.ts +4 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +5 -0
- package/dist/git/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/feature-validator.d.ts +60 -0
- package/dist/parsers/feature-validator.d.ts.map +1 -0
- package/dist/parsers/feature-validator.js +483 -0
- package/dist/parsers/feature-validator.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +9 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/parser-manager.d.ts +103 -0
- package/dist/parsers/parser-manager.d.ts.map +1 -0
- package/dist/parsers/parser-manager.js +321 -0
- package/dist/parsers/parser-manager.js.map +1 -0
- package/dist/parsers/parser.d.ts +23 -0
- package/dist/parsers/parser.d.ts.map +1 -0
- package/dist/parsers/parser.js +6 -0
- package/dist/parsers/parser.js.map +1 -0
- package/dist/parsers/react-parser.d.ts +22 -0
- package/dist/parsers/react-parser.d.ts.map +1 -0
- package/dist/parsers/react-parser.js +307 -0
- package/dist/parsers/react-parser.js.map +1 -0
- package/dist/parsers/svelte-parser.d.ts +33 -0
- package/dist/parsers/svelte-parser.d.ts.map +1 -0
- package/dist/parsers/svelte-parser.js +408 -0
- package/dist/parsers/svelte-parser.js.map +1 -0
- package/dist/parsers/vanilla-parser.d.ts +31 -0
- package/dist/parsers/vanilla-parser.d.ts.map +1 -0
- package/dist/parsers/vanilla-parser.js +590 -0
- package/dist/parsers/vanilla-parser.js.map +1 -0
- package/dist/parsers/vue-parser.d.ts +9 -0
- package/dist/parsers/vue-parser.d.ts.map +1 -0
- package/dist/parsers/vue-parser.js +16 -0
- package/dist/parsers/vue-parser.js.map +1 -0
- package/dist/terminal-header.d.ts +12 -0
- package/dist/terminal-header.js +45 -0
- package/dist/types/index.d.ts +83 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/components.d.ts +133 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/components.js +482 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/help.d.ts +11 -0
- package/dist/ui/help.d.ts.map +1 -0
- package/dist/ui/help.js +161 -0
- package/dist/ui/help.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +5 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +63 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +611 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/terminal-header.d.ts +13 -0
- package/dist/ui/terminal-header.d.ts.map +1 -0
- package/dist/ui/terminal-header.js +46 -0
- package/dist/ui/terminal-header.js.map +1 -0
- package/package.json +80 -0
- package/src/ai/__tests__/gemini-analyzer.test.ts +181 -0
- package/src/ai/fix-manager.ts +362 -0
- package/src/ai/gemini-analyzer.ts +671 -0
- package/src/ai/index.ts +4 -0
- package/src/ai/jules-implementer.ts +459 -0
- package/src/commands/automation.ts +344 -0
- package/src/commands/check.ts +299 -0
- package/src/commands/config.ts +365 -0
- package/src/commands/fix.ts +234 -0
- package/src/commands/index.ts +6 -0
- package/src/commands/init.ts +142 -0
- package/src/commands/status.ts +0 -0
- package/src/core/api-key-manager.ts +298 -0
- package/src/core/baseguard.ts +742 -0
- package/src/core/baseline-checker.ts +563 -0
- package/src/core/cache-manager.ts +270 -0
- package/src/core/configuration-recovery.ts +676 -0
- package/src/core/configuration.ts +559 -0
- package/src/core/debug-logger.ts +590 -0
- package/src/core/directory-filter.ts +421 -0
- package/src/core/error-handler.ts +517 -0
- package/src/core/file-processor.ts +331 -0
- package/src/core/gitignore-manager.ts +169 -0
- package/src/core/graceful-degradation-manager.ts +596 -0
- package/src/core/index.ts +13 -0
- package/src/core/lazy-loader.ts +307 -0
- package/src/core/logger.ts +0 -0
- package/src/core/memory-manager.ts +294 -0
- package/src/core/startup-optimizer.ts +173 -0
- package/src/core/system-error-handler.ts +746 -0
- package/src/git/automation-engine.ts +361 -0
- package/src/git/github-manager.ts +260 -0
- package/src/git/hook-manager.ts +210 -0
- package/src/git/index.ts +4 -0
- package/src/index.ts +8 -0
- package/src/parsers/feature-validator.ts +559 -0
- package/src/parsers/index.ts +8 -0
- package/src/parsers/parser-manager.ts +419 -0
- package/src/parsers/parser.ts +26 -0
- package/src/parsers/react-parser-optimized.ts +161 -0
- package/src/parsers/react-parser.ts +359 -0
- package/src/parsers/svelte-parser.ts +506 -0
- package/src/parsers/vanilla-parser.ts +682 -0
- package/src/parsers/vue-parser.ts +472 -0
- package/src/types/index.ts +92 -0
- package/src/ui/components.ts +567 -0
- package/src/ui/help.ts +193 -0
- package/src/ui/index.ts +4 -0
- package/src/ui/prompts.ts +688 -0
- package/src/ui/terminal-header.ts +59 -0
- package/test-config-commands.js +56 -0
- package/test-header-simple.js +33 -0
- package/test-terminal-header.js +12 -0
- package/test-ui.js +29 -0
- package/tests/e2e/baseguard.e2e.test.ts +516 -0
- package/tests/e2e/cross-platform.e2e.test.ts +420 -0
- package/tests/e2e/git-integration.e2e.test.ts +487 -0
- package/tests/fixtures/react-project/package.json +14 -0
- package/tests/fixtures/react-project/src/App.css +76 -0
- package/tests/fixtures/react-project/src/App.tsx +77 -0
- package/tests/fixtures/svelte-project/package.json +11 -0
- package/tests/fixtures/svelte-project/src/App.svelte +369 -0
- package/tests/fixtures/vanilla-project/index.html +76 -0
- package/tests/fixtures/vanilla-project/script.js +331 -0
- package/tests/fixtures/vanilla-project/styles.css +359 -0
- package/tests/fixtures/vue-project/package.json +12 -0
- package/tests/fixtures/vue-project/src/App.vue +216 -0
- package/tsconfig.json +36 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,GAAE,MAAa;IAIlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAU1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAW3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf;AAqBD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,OAAO,GAAE;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KACrB;IAQN;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC;IA2B/E;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxF;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAIlD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAIvD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IA0BF;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,YAAY,IAAI,IAAI;IAkBpB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9C,gBAAgB,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACpD,iBAAiB,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACrC;IAgBD;;OAEG;YACW,eAAe;IAY7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
2
|
+
import { stat } from 'fs/promises';
|
|
3
|
+
/**
|
|
4
|
+
* LRU Cache implementation for web-features data and parsing results
|
|
5
|
+
*/
|
|
6
|
+
export class LRUCache {
|
|
7
|
+
cache = new Map();
|
|
8
|
+
maxSize;
|
|
9
|
+
constructor(maxSize = 1000) {
|
|
10
|
+
this.maxSize = maxSize;
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
const value = this.cache.get(key);
|
|
14
|
+
if (value !== undefined) {
|
|
15
|
+
// Move to end (most recently used)
|
|
16
|
+
this.cache.delete(key);
|
|
17
|
+
this.cache.set(key, value);
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
set(key, value) {
|
|
22
|
+
if (this.cache.has(key)) {
|
|
23
|
+
this.cache.delete(key);
|
|
24
|
+
}
|
|
25
|
+
else if (this.cache.size >= this.maxSize) {
|
|
26
|
+
// Remove least recently used (first item)
|
|
27
|
+
const firstKey = this.cache.keys().next().value;
|
|
28
|
+
this.cache.delete(firstKey);
|
|
29
|
+
}
|
|
30
|
+
this.cache.set(key, value);
|
|
31
|
+
}
|
|
32
|
+
has(key) {
|
|
33
|
+
return this.cache.has(key);
|
|
34
|
+
}
|
|
35
|
+
clear() {
|
|
36
|
+
this.cache.clear();
|
|
37
|
+
}
|
|
38
|
+
size() {
|
|
39
|
+
return this.cache.size;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Cache manager for efficient file processing and incremental scanning
|
|
44
|
+
*/
|
|
45
|
+
export class CacheManager {
|
|
46
|
+
parseCache;
|
|
47
|
+
webFeaturesCache;
|
|
48
|
+
fileMetadataCache;
|
|
49
|
+
maxCacheSize;
|
|
50
|
+
cacheValidityMs;
|
|
51
|
+
constructor(options = {}) {
|
|
52
|
+
this.maxCacheSize = options.maxCacheSize || 1000;
|
|
53
|
+
this.cacheValidityMs = options.cacheValidityMs || 5 * 60 * 1000; // 5 minutes
|
|
54
|
+
this.parseCache = new LRUCache(this.maxCacheSize);
|
|
55
|
+
this.webFeaturesCache = new LRUCache(500);
|
|
56
|
+
this.fileMetadataCache = new Map();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get cached parsing result if file hasn't changed
|
|
60
|
+
*/
|
|
61
|
+
async getCachedParseResult(filePath) {
|
|
62
|
+
try {
|
|
63
|
+
const currentMetadata = await this.getFileMetadata(filePath);
|
|
64
|
+
const cached = this.parseCache.get(filePath);
|
|
65
|
+
if (!cached) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
// Check if file has changed
|
|
69
|
+
if (this.hasFileChanged(cached.metadata, currentMetadata)) {
|
|
70
|
+
this.parseCache.set(filePath, { ...cached, metadata: currentMetadata });
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
// Check cache validity
|
|
74
|
+
if (Date.now() - cached.timestamp > this.cacheValidityMs) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return cached.features;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
// File doesn't exist or can't be accessed
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cache parsing result
|
|
86
|
+
*/
|
|
87
|
+
async setCachedParseResult(filePath, features) {
|
|
88
|
+
try {
|
|
89
|
+
const metadata = await this.getFileMetadata(filePath);
|
|
90
|
+
const cached = {
|
|
91
|
+
features,
|
|
92
|
+
metadata,
|
|
93
|
+
timestamp: Date.now()
|
|
94
|
+
};
|
|
95
|
+
this.parseCache.set(filePath, cached);
|
|
96
|
+
this.fileMetadataCache.set(filePath, metadata);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
// Ignore caching errors
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get cached web-features data
|
|
104
|
+
*/
|
|
105
|
+
getCachedWebFeature(featureId) {
|
|
106
|
+
return this.webFeaturesCache.get(featureId) || null;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Cache web-features data
|
|
110
|
+
*/
|
|
111
|
+
setCachedWebFeature(featureId, data) {
|
|
112
|
+
this.webFeaturesCache.set(featureId, data);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if files have changed since last scan
|
|
116
|
+
*/
|
|
117
|
+
async getChangedFiles(filePaths) {
|
|
118
|
+
const changed = [];
|
|
119
|
+
const unchanged = [];
|
|
120
|
+
await Promise.all(filePaths.map(async (filePath) => {
|
|
121
|
+
try {
|
|
122
|
+
const currentMetadata = await this.getFileMetadata(filePath);
|
|
123
|
+
const cachedMetadata = this.fileMetadataCache.get(filePath);
|
|
124
|
+
if (!cachedMetadata || this.hasFileChanged(cachedMetadata, currentMetadata)) {
|
|
125
|
+
changed.push(filePath);
|
|
126
|
+
this.fileMetadataCache.set(filePath, currentMetadata);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
unchanged.push(filePath);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
// File doesn't exist or can't be accessed, consider it changed
|
|
134
|
+
changed.push(filePath);
|
|
135
|
+
}
|
|
136
|
+
}));
|
|
137
|
+
return { changed, unchanged };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Clear all caches
|
|
141
|
+
*/
|
|
142
|
+
clearAll() {
|
|
143
|
+
this.parseCache.clear();
|
|
144
|
+
this.webFeaturesCache.clear();
|
|
145
|
+
this.fileMetadataCache.clear();
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Clear expired cache entries
|
|
149
|
+
*/
|
|
150
|
+
clearExpired() {
|
|
151
|
+
const now = Date.now();
|
|
152
|
+
const expiredKeys = [];
|
|
153
|
+
// Find expired parse cache entries
|
|
154
|
+
for (const [key, value] of this.parseCache['cache']) {
|
|
155
|
+
if (now - value.timestamp > this.cacheValidityMs) {
|
|
156
|
+
expiredKeys.push(key);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Remove expired entries
|
|
160
|
+
expiredKeys.forEach(key => {
|
|
161
|
+
this.parseCache['cache'].delete(key);
|
|
162
|
+
this.fileMetadataCache.delete(key);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get cache statistics
|
|
167
|
+
*/
|
|
168
|
+
getStats() {
|
|
169
|
+
return {
|
|
170
|
+
parseCache: {
|
|
171
|
+
size: this.parseCache.size(),
|
|
172
|
+
maxSize: this.maxCacheSize
|
|
173
|
+
},
|
|
174
|
+
webFeaturesCache: {
|
|
175
|
+
size: this.webFeaturesCache.size(),
|
|
176
|
+
maxSize: 500
|
|
177
|
+
},
|
|
178
|
+
fileMetadataCache: {
|
|
179
|
+
size: this.fileMetadataCache.size
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get file metadata for change detection
|
|
185
|
+
*/
|
|
186
|
+
async getFileMetadata(filePath) {
|
|
187
|
+
const stats = await stat(filePath);
|
|
188
|
+
const hash = this.generateFileHash(filePath, stats.mtime.getTime(), stats.size);
|
|
189
|
+
return {
|
|
190
|
+
path: filePath,
|
|
191
|
+
mtime: stats.mtime.getTime(),
|
|
192
|
+
size: stats.size,
|
|
193
|
+
hash
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check if file has changed based on metadata
|
|
198
|
+
*/
|
|
199
|
+
hasFileChanged(cached, current) {
|
|
200
|
+
return cached.mtime !== current.mtime ||
|
|
201
|
+
cached.size !== current.size ||
|
|
202
|
+
cached.hash !== current.hash;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Generate hash for file identification
|
|
206
|
+
*/
|
|
207
|
+
generateFileHash(filePath, mtime, size) {
|
|
208
|
+
return createHash('md5')
|
|
209
|
+
.update(`${filePath}:${mtime}:${size}`)
|
|
210
|
+
.digest('hex');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=cache-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { Configuration, BrowserTarget } from '../types/index.js';
|
|
2
|
+
export declare const BROWSER_TARGET_PRESETS: {
|
|
3
|
+
'baseline-widely': BrowserTarget[];
|
|
4
|
+
'baseline-newly': BrowserTarget[];
|
|
5
|
+
'last-2-years': BrowserTarget[];
|
|
6
|
+
};
|
|
7
|
+
export type PresetName = 'baseline-widely' | 'baseline-newly' | 'last-2-years';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration manager for BaseGuard settings
|
|
10
|
+
*/
|
|
11
|
+
export declare class ConfigurationManager {
|
|
12
|
+
private static readonly CONFIG_FILE;
|
|
13
|
+
/**
|
|
14
|
+
* Load configuration from file or create default
|
|
15
|
+
*/
|
|
16
|
+
static load(): Promise<Configuration>;
|
|
17
|
+
/**
|
|
18
|
+
* Save configuration to file
|
|
19
|
+
*/
|
|
20
|
+
static save(config: Configuration): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Create default configuration
|
|
23
|
+
*/
|
|
24
|
+
static createDefault(): Configuration;
|
|
25
|
+
/**
|
|
26
|
+
* Create configuration with preset browser targets
|
|
27
|
+
*/
|
|
28
|
+
static createWithPreset(preset: PresetName): Configuration;
|
|
29
|
+
/**
|
|
30
|
+
* Create configuration with custom browser targets
|
|
31
|
+
*/
|
|
32
|
+
static createWithCustomTargets(targets: BrowserTarget[]): Configuration;
|
|
33
|
+
/**
|
|
34
|
+
* Validate and migrate configuration
|
|
35
|
+
*/
|
|
36
|
+
private static validateAndMigrate;
|
|
37
|
+
/**
|
|
38
|
+
* Validate browser targets
|
|
39
|
+
*/
|
|
40
|
+
private static validateBrowserTargets;
|
|
41
|
+
/**
|
|
42
|
+
* Validate minimum version
|
|
43
|
+
*/
|
|
44
|
+
private static validateMinVersion;
|
|
45
|
+
/**
|
|
46
|
+
* Validate automation trigger
|
|
47
|
+
*/
|
|
48
|
+
private static validateTrigger;
|
|
49
|
+
/**
|
|
50
|
+
* Parse browser target string (e.g., "chrome 100", "safari baseline")
|
|
51
|
+
*/
|
|
52
|
+
static parseBrowserTarget(targetString: string): BrowserTarget | null;
|
|
53
|
+
/**
|
|
54
|
+
* Parse multiple browser targets from strings
|
|
55
|
+
*/
|
|
56
|
+
static parseBrowserTargets(targetStrings: string[]): BrowserTarget[];
|
|
57
|
+
/**
|
|
58
|
+
* Get available preset names
|
|
59
|
+
*/
|
|
60
|
+
static getAvailablePresets(): PresetName[];
|
|
61
|
+
/**
|
|
62
|
+
* Get preset description
|
|
63
|
+
*/
|
|
64
|
+
static getPresetDescription(preset: PresetName): string;
|
|
65
|
+
/**
|
|
66
|
+
* Check if configuration file exists
|
|
67
|
+
*/
|
|
68
|
+
static exists(): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Get configuration file path
|
|
71
|
+
*/
|
|
72
|
+
static getConfigFilePath(): string;
|
|
73
|
+
/**
|
|
74
|
+
* Add browser target to existing configuration
|
|
75
|
+
*/
|
|
76
|
+
static addBrowserTarget(target: BrowserTarget): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Remove browser target from existing configuration
|
|
79
|
+
*/
|
|
80
|
+
static removeBrowserTarget(browser: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Update browser targets with preset
|
|
83
|
+
*/
|
|
84
|
+
static updateWithPreset(preset: PresetName): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Update browser targets with custom targets
|
|
87
|
+
*/
|
|
88
|
+
static updateWithCustomTargets(targets: BrowserTarget[]): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Update automation configuration
|
|
91
|
+
*/
|
|
92
|
+
static updateAutomation(automationConfig: Partial<Configuration['automation']>): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Enable automation
|
|
95
|
+
*/
|
|
96
|
+
static enableAutomation(trigger?: 'pre-commit' | 'pre-push'): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Disable automation
|
|
99
|
+
*/
|
|
100
|
+
static disableAutomation(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Update API keys
|
|
103
|
+
*/
|
|
104
|
+
static updateApiKeys(apiKeys: Partial<Configuration['apiKeys']>): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Validate configuration structure and data
|
|
107
|
+
*/
|
|
108
|
+
static validateConfiguration(config: any): {
|
|
109
|
+
valid: boolean;
|
|
110
|
+
errors: string[];
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Migrate configuration from older versions
|
|
114
|
+
*/
|
|
115
|
+
static migrateConfiguration(config: any): Configuration;
|
|
116
|
+
/**
|
|
117
|
+
* Get configuration display information
|
|
118
|
+
*/
|
|
119
|
+
static getConfigurationDisplay(): Promise<{
|
|
120
|
+
config: Configuration;
|
|
121
|
+
security: {
|
|
122
|
+
gitignoreExists: boolean;
|
|
123
|
+
configIgnored: boolean;
|
|
124
|
+
recommendations: string[];
|
|
125
|
+
};
|
|
126
|
+
validation: {
|
|
127
|
+
valid: boolean;
|
|
128
|
+
errors: string[];
|
|
129
|
+
};
|
|
130
|
+
}>;
|
|
131
|
+
/**
|
|
132
|
+
* Backup current configuration
|
|
133
|
+
*/
|
|
134
|
+
static backupConfiguration(): Promise<string>;
|
|
135
|
+
/**
|
|
136
|
+
* Restore configuration from backup
|
|
137
|
+
*/
|
|
138
|
+
static restoreConfiguration(backupFile: string): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/core/configuration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGtE,eAAO,MAAM,sBAAsB;uBAM5B,aAAa,EAAE;sBAMf,aAAa,EAAE;oBAMf,aAAa,EAAE;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAE/E;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAE1D;;OAEG;WACU,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAc3C;;OAEG;WACU,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,aAAa;IAkBrC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa;IAM1D;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,aAAa;IAMvE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA6BrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAO9B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA4BrE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE;IAapE;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,UAAU,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAavD;;OAEG;WACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IASvC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAIlC;;OAEG;WACU,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE;;OAEG;WACU,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE;;OAEG;WACU,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;OAEG;WACU,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;WACU,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpG;;OAEG;WACU,gBAAgB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF;;OAEG;WACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/C;;OAEG;WACU,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAqE/E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa;IA8BvD;;OAEG;WACU,uBAAuB,IAAI,OAAO,CAAC;QAC9C,MAAM,EAAE,aAAa,CAAC;QACtB,QAAQ,EAAE;YACR,eAAe,EAAE,OAAO,CAAC;YACzB,aAAa,EAAE,OAAO,CAAC;YACvB,eAAe,EAAE,MAAM,EAAE,CAAC;SAC3B,CAAC;QACF,UAAU,EAAE;YACV,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE,MAAM,EAAE,CAAC;SAClB,CAAC;KACH,CAAC;IAYF;;OAEG;WACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcnD;;OAEG;WACU,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAerE"}
|