baseguard 1.0.1 → 1.0.3

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.
Files changed (152) hide show
  1. package/.baseguardrc.example.json +64 -0
  2. package/.eslintrc.json +1 -1
  3. package/CHANGELOG.md +196 -0
  4. package/DEPLOYMENT.md +625 -0
  5. package/DEPLOYMENT_CHECKLIST.md +239 -0
  6. package/DEPLOYMENT_SUMMARY_v1.0.2.md +202 -0
  7. package/QUICK_START.md +134 -0
  8. package/README.md +447 -52
  9. package/RELEASE_NOTES_v1.0.2.md +434 -0
  10. package/bin/base.js +81 -61
  11. package/dist/ai/agentkit-orchestrator.d.ts +116 -0
  12. package/dist/ai/agentkit-orchestrator.d.ts.map +1 -0
  13. package/dist/ai/agentkit-orchestrator.js +417 -0
  14. package/dist/ai/agentkit-orchestrator.js.map +1 -0
  15. package/dist/ai/gemini-code-fixer.d.ts +85 -0
  16. package/dist/ai/gemini-code-fixer.d.ts.map +1 -0
  17. package/dist/ai/gemini-code-fixer.js +452 -0
  18. package/dist/ai/gemini-code-fixer.js.map +1 -0
  19. package/dist/ai/jules-implementer.d.ts +5 -4
  20. package/dist/ai/jules-implementer.d.ts.map +1 -1
  21. package/dist/ai/jules-implementer.js +6 -5
  22. package/dist/ai/jules-implementer.js.map +1 -1
  23. package/dist/ai/unified-code-fixer.d.ts +69 -0
  24. package/dist/ai/unified-code-fixer.d.ts.map +1 -0
  25. package/dist/ai/unified-code-fixer.js +289 -0
  26. package/dist/ai/unified-code-fixer.js.map +1 -0
  27. package/dist/commands/check.d.ts +3 -1
  28. package/dist/commands/check.d.ts.map +1 -1
  29. package/dist/commands/check.js +166 -34
  30. package/dist/commands/check.js.map +1 -1
  31. package/dist/commands/config.d.ts +4 -0
  32. package/dist/commands/config.d.ts.map +1 -1
  33. package/dist/commands/config.js +183 -0
  34. package/dist/commands/config.js.map +1 -1
  35. package/dist/commands/fix.d.ts.map +1 -1
  36. package/dist/commands/fix.js +89 -91
  37. package/dist/commands/fix.js.map +1 -1
  38. package/dist/commands/index.d.ts +1 -0
  39. package/dist/commands/index.d.ts.map +1 -1
  40. package/dist/commands/index.js +1 -0
  41. package/dist/commands/index.js.map +1 -1
  42. package/dist/commands/init.d.ts.map +1 -1
  43. package/dist/commands/init.js +16 -2
  44. package/dist/commands/init.js.map +1 -1
  45. package/dist/commands/status.d.ts +14 -0
  46. package/dist/commands/status.d.ts.map +1 -0
  47. package/dist/commands/status.js +254 -0
  48. package/dist/commands/status.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +47 -5
  50. package/dist/core/baseguard.d.ts.map +1 -1
  51. package/dist/core/baseguard.js +506 -52
  52. package/dist/core/baseguard.js.map +1 -1
  53. package/dist/core/cache-manager.d.ts.map +1 -1
  54. package/dist/core/cache-manager.js +3 -1
  55. package/dist/core/cache-manager.js.map +1 -1
  56. package/dist/core/configuration-recovery.d.ts +116 -0
  57. package/dist/core/configuration-recovery.d.ts.map +1 -0
  58. package/dist/core/configuration-recovery.js +552 -0
  59. package/dist/core/configuration-recovery.js.map +1 -0
  60. package/dist/core/configuration.d.ts +4 -0
  61. package/dist/core/configuration.d.ts.map +1 -1
  62. package/dist/core/configuration.js +35 -0
  63. package/dist/core/configuration.js.map +1 -1
  64. package/dist/core/debug-logger.d.ts +181 -0
  65. package/dist/core/debug-logger.d.ts.map +1 -0
  66. package/dist/core/debug-logger.js +479 -0
  67. package/dist/core/debug-logger.js.map +1 -0
  68. package/dist/core/file-processor.d.ts.map +1 -1
  69. package/dist/core/file-processor.js +8 -2
  70. package/dist/core/file-processor.js.map +1 -1
  71. package/dist/core/graceful-degradation-manager.d.ts +123 -0
  72. package/dist/core/graceful-degradation-manager.d.ts.map +1 -0
  73. package/dist/core/graceful-degradation-manager.js +512 -0
  74. package/dist/core/graceful-degradation-manager.js.map +1 -0
  75. package/dist/core/index.d.ts +4 -0
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +4 -0
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/core/logger.d.ts +1 -0
  80. package/dist/core/logger.d.ts.map +1 -0
  81. package/dist/core/logger.js +2 -0
  82. package/dist/core/logger.js.map +1 -0
  83. package/dist/core/memory-manager.d.ts +84 -0
  84. package/dist/core/memory-manager.d.ts.map +1 -1
  85. package/dist/core/memory-manager.js +236 -1
  86. package/dist/core/memory-manager.js.map +1 -1
  87. package/dist/core/startup-optimizer.d.ts +14 -0
  88. package/dist/core/startup-optimizer.d.ts.map +1 -1
  89. package/dist/core/startup-optimizer.js +74 -3
  90. package/dist/core/startup-optimizer.js.map +1 -1
  91. package/dist/core/system-error-handler.d.ts +65 -0
  92. package/dist/core/system-error-handler.d.ts.map +1 -0
  93. package/dist/core/system-error-handler.js +653 -0
  94. package/dist/core/system-error-handler.js.map +1 -0
  95. package/dist/git/github-manager.d.ts +5 -16
  96. package/dist/git/github-manager.d.ts.map +1 -1
  97. package/dist/git/github-manager.js +6 -61
  98. package/dist/git/github-manager.js.map +1 -1
  99. package/dist/parsers/react-parser-optimized.d.ts +16 -0
  100. package/dist/parsers/react-parser-optimized.d.ts.map +1 -0
  101. package/dist/parsers/react-parser-optimized.js +147 -0
  102. package/dist/parsers/react-parser-optimized.js.map +1 -0
  103. package/dist/parsers/react-parser.d.ts.map +1 -1
  104. package/dist/parsers/react-parser.js +17 -15
  105. package/dist/parsers/react-parser.js.map +1 -1
  106. package/dist/parsers/svelte-parser.d.ts.map +1 -1
  107. package/dist/parsers/svelte-parser.js +7 -3
  108. package/dist/parsers/svelte-parser.js.map +1 -1
  109. package/dist/parsers/vanilla-parser.d.ts.map +1 -1
  110. package/dist/parsers/vanilla-parser.js +7 -3
  111. package/dist/parsers/vanilla-parser.js.map +1 -1
  112. package/dist/parsers/vue-parser.d.ts +18 -0
  113. package/dist/parsers/vue-parser.d.ts.map +1 -1
  114. package/dist/parsers/vue-parser.js +387 -1
  115. package/dist/parsers/vue-parser.js.map +1 -1
  116. package/dist/types/index.d.ts +4 -0
  117. package/dist/types/index.d.ts.map +1 -1
  118. package/dist/ui/help.js +1 -1
  119. package/dist/ui/help.js.map +1 -1
  120. package/dist/ui/prompts.d.ts +7 -4
  121. package/dist/ui/prompts.d.ts.map +1 -1
  122. package/dist/ui/prompts.js +48 -55
  123. package/dist/ui/prompts.js.map +1 -1
  124. package/package.json +31 -6
  125. package/src/ai/__tests__/gemini-analyzer.test.ts +2 -2
  126. package/src/ai/agentkit-orchestrator.ts +534 -0
  127. package/src/ai/gemini-code-fixer.ts +540 -0
  128. package/src/ai/jules-implementer.ts +6 -5
  129. package/src/ai/unified-code-fixer.ts +347 -0
  130. package/src/commands/config.ts +126 -0
  131. package/src/commands/fix.ts +98 -94
  132. package/src/commands/init.ts +16 -2
  133. package/src/core/cache-manager.ts +4 -2
  134. package/src/core/configuration.ts +37 -0
  135. package/src/core/debug-logger.ts +2 -2
  136. package/src/core/file-processor.ts +10 -3
  137. package/src/core/index.ts +5 -1
  138. package/src/core/memory-manager.ts +4 -3
  139. package/src/core/startup-optimizer.ts +85 -3
  140. package/src/core/system-error-handler.ts +17 -11
  141. package/src/git/github-manager.ts +11 -79
  142. package/src/parsers/react-parser.ts +2 -2
  143. package/src/parsers/svelte-parser.ts +13 -9
  144. package/src/parsers/vanilla-parser.ts +18 -14
  145. package/src/parsers/vue-parser.ts +20 -14
  146. package/src/types/index.ts +4 -0
  147. package/src/ui/help.ts +1 -1
  148. package/src/ui/prompts.ts +54 -61
  149. package/test-build.js +41 -0
  150. package/tests/e2e/git-integration.e2e.test.ts +1 -1
  151. package/tsconfig.json +0 -1
  152. package/vitest.config.ts +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -10,4 +10,8 @@ export { DirectoryFilter } from './directory-filter.js';
10
10
  export { LazyLoader } from './lazy-loader.js';
11
11
  export { MemoryManager } from './memory-manager.js';
12
12
  export { StartupOptimizer } from './startup-optimizer.js';
13
+ export { SystemErrorHandler } from './system-error-handler.js';
14
+ export { GracefulDegradationManager } from './graceful-degradation-manager.js';
15
+ export { ConfigurationRecovery } from './configuration-recovery.js';
16
+ export { logger, DebugLogger } from './debug-logger.js';
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":""}
@@ -1 +1,85 @@
1
+ declare global {
2
+ var gc: NodeJS.GCFunction | undefined;
3
+ }
4
+ /**
5
+ * Memory-efficient file processing and streaming
6
+ */
7
+ export declare class MemoryManager {
8
+ private static readonly MAX_FILE_SIZE;
9
+ private static readonly CHUNK_SIZE;
10
+ private static readonly GC_THRESHOLD;
11
+ /**
12
+ * Check if file should be processed in streaming mode
13
+ */
14
+ static shouldStream(fileSize: number): boolean;
15
+ /**
16
+ * Read large file in chunks using streaming
17
+ */
18
+ static readFileStreaming(filePath: string, processor: (chunk: string, lineNumber: number) => Promise<void>): Promise<void>;
19
+ /**
20
+ * Process array in memory-efficient batches
21
+ */
22
+ static processBatches<T, R>(items: T[], processor: (batch: T[]) => Promise<R[]>, batchSize?: number): Promise<R[]>;
23
+ /**
24
+ * Monitor memory usage and warn if high
25
+ */
26
+ static checkMemoryUsage(): {
27
+ usage: NodeJS.MemoryUsage;
28
+ warning?: string;
29
+ };
30
+ /**
31
+ * Try to trigger garbage collection if available
32
+ */
33
+ static tryGarbageCollect(): void;
34
+ /**
35
+ * Sleep utility for batch processing
36
+ */
37
+ static sleep(ms: number): Promise<void>;
38
+ /**
39
+ * Create memory-efficient data structure for violations
40
+ */
41
+ static createViolationTracker(): ViolationTracker;
42
+ /**
43
+ * Optimize object for memory usage by removing undefined properties
44
+ */
45
+ static optimizeObject<T extends Record<string, any>>(obj: T): T;
46
+ /**
47
+ * Get memory usage statistics
48
+ */
49
+ static getMemoryStats(): {
50
+ heapUsed: string;
51
+ heapTotal: string;
52
+ external: string;
53
+ rss: string;
54
+ };
55
+ }
56
+ /**
57
+ * Memory-efficient violation tracking
58
+ */
59
+ declare class ViolationTracker {
60
+ private violations;
61
+ private fileIndex;
62
+ private nextFileId;
63
+ /**
64
+ * Add violation with memory optimization
65
+ */
66
+ addViolation(violation: any): void;
67
+ /**
68
+ * Get all violations with full data
69
+ */
70
+ getViolations(): any[];
71
+ /**
72
+ * Get memory usage statistics
73
+ */
74
+ getStats(): {
75
+ violationCount: number;
76
+ fileCount: number;
77
+ memoryEstimate: string;
78
+ };
79
+ /**
80
+ * Clear all data
81
+ */
82
+ clear(): void;
83
+ }
84
+ export {};
1
85
  //# sourceMappingURL=memory-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":"AAIA,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAoB;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAa;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAEzD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;WACU,iBAAiB,CAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IAuDhB;;OAEG;WACU,cAAc,CAAC,CAAC,EAAE,CAAC,EAC9B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACvC,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,CAAC,EAAE,CAAC;IAyBf;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI;QACzB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAYD;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAUhC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,gBAAgB;IAIjD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAY/D;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb;CAUF;AAED;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,UAAU,CAAK;IAEvB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IA2BlC;;OAEG;IACH,aAAa,IAAI,GAAG,EAAE;IA4BtB;;OAEG;IACH,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAcD;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
@@ -1,2 +1,237 @@
1
- "use strict";
1
+ import { createReadStream } from 'fs';
2
+ import { createInterface } from 'readline';
3
+ /**
4
+ * Memory-efficient file processing and streaming
5
+ */
6
+ export class MemoryManager {
7
+ static MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
8
+ static CHUNK_SIZE = 64 * 1024; // 64KB chunks
9
+ static GC_THRESHOLD = 100 * 1024 * 1024; // 100MB
10
+ /**
11
+ * Check if file should be processed in streaming mode
12
+ */
13
+ static shouldStream(fileSize) {
14
+ return fileSize > this.MAX_FILE_SIZE;
15
+ }
16
+ /**
17
+ * Read large file in chunks using streaming
18
+ */
19
+ static async readFileStreaming(filePath, processor) {
20
+ return new Promise((resolve, reject) => {
21
+ const fileStream = createReadStream(filePath, {
22
+ encoding: 'utf8',
23
+ highWaterMark: this.CHUNK_SIZE
24
+ });
25
+ const rl = createInterface({
26
+ input: fileStream,
27
+ crlfDelay: Infinity
28
+ });
29
+ let lineNumber = 0;
30
+ let currentChunk = '';
31
+ let chunkLineCount = 0;
32
+ rl.on('line', async (line) => {
33
+ lineNumber++;
34
+ currentChunk += line + '\n';
35
+ chunkLineCount++;
36
+ // Process in chunks to avoid memory buildup
37
+ if (chunkLineCount >= 1000) {
38
+ try {
39
+ await processor(currentChunk, lineNumber - chunkLineCount + 1);
40
+ currentChunk = '';
41
+ chunkLineCount = 0;
42
+ // Force garbage collection if available
43
+ this.tryGarbageCollect();
44
+ }
45
+ catch (error) {
46
+ rl.close();
47
+ reject(error);
48
+ return;
49
+ }
50
+ }
51
+ });
52
+ rl.on('close', async () => {
53
+ try {
54
+ // Process remaining chunk
55
+ if (currentChunk.trim()) {
56
+ await processor(currentChunk, lineNumber - chunkLineCount + 1);
57
+ }
58
+ resolve();
59
+ }
60
+ catch (error) {
61
+ reject(error);
62
+ }
63
+ });
64
+ rl.on('error', reject);
65
+ fileStream.on('error', reject);
66
+ });
67
+ }
68
+ /**
69
+ * Process array in memory-efficient batches
70
+ */
71
+ static async processBatches(items, processor, batchSize = 100) {
72
+ const results = [];
73
+ for (let i = 0; i < items.length; i += batchSize) {
74
+ const batch = items.slice(i, i + batchSize);
75
+ try {
76
+ const batchResults = await processor(batch);
77
+ results.push(...batchResults);
78
+ // Force garbage collection between batches
79
+ this.tryGarbageCollect();
80
+ // Small delay to prevent overwhelming the system
81
+ if (i + batchSize < items.length) {
82
+ await this.sleep(1);
83
+ }
84
+ }
85
+ catch (error) {
86
+ console.warn(`Error processing batch ${i}-${i + batchSize}: ${error}`);
87
+ }
88
+ }
89
+ return results;
90
+ }
91
+ /**
92
+ * Monitor memory usage and warn if high
93
+ */
94
+ static checkMemoryUsage() {
95
+ const usage = process.memoryUsage();
96
+ let warning;
97
+ // Check if memory usage is high (over 100MB heap used)
98
+ if (usage.heapUsed > this.GC_THRESHOLD) {
99
+ warning = `High memory usage detected: ${Math.round(usage.heapUsed / 1024 / 1024)}MB heap used`;
100
+ }
101
+ return { usage, warning };
102
+ }
103
+ /**
104
+ * Try to trigger garbage collection if available
105
+ */
106
+ static tryGarbageCollect() {
107
+ if (global.gc) {
108
+ try {
109
+ global.gc();
110
+ }
111
+ catch (error) {
112
+ // Ignore GC errors
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * Sleep utility for batch processing
118
+ */
119
+ static sleep(ms) {
120
+ return new Promise(resolve => setTimeout(resolve, ms));
121
+ }
122
+ /**
123
+ * Create memory-efficient data structure for violations
124
+ */
125
+ static createViolationTracker() {
126
+ return new ViolationTracker();
127
+ }
128
+ /**
129
+ * Optimize object for memory usage by removing undefined properties
130
+ */
131
+ static optimizeObject(obj) {
132
+ const optimized = {};
133
+ for (const [key, value] of Object.entries(obj)) {
134
+ if (value !== undefined && value !== null) {
135
+ optimized[key] = value;
136
+ }
137
+ }
138
+ return optimized;
139
+ }
140
+ /**
141
+ * Get memory usage statistics
142
+ */
143
+ static getMemoryStats() {
144
+ const usage = process.memoryUsage();
145
+ return {
146
+ heapUsed: `${Math.round(usage.heapUsed / 1024 / 1024)}MB`,
147
+ heapTotal: `${Math.round(usage.heapTotal / 1024 / 1024)}MB`,
148
+ external: `${Math.round(usage.external / 1024 / 1024)}MB`,
149
+ rss: `${Math.round(usage.rss / 1024 / 1024)}MB`
150
+ };
151
+ }
152
+ }
153
+ /**
154
+ * Memory-efficient violation tracking
155
+ */
156
+ class ViolationTracker {
157
+ violations = new Map();
158
+ fileIndex = new Map();
159
+ nextFileId = 0;
160
+ /**
161
+ * Add violation with memory optimization
162
+ */
163
+ addViolation(violation) {
164
+ // Optimize file path storage using indices
165
+ let fileId = this.fileIndex.get(violation.file);
166
+ if (fileId === undefined) {
167
+ fileId = this.nextFileId++;
168
+ this.fileIndex.set(violation.file, fileId);
169
+ }
170
+ // Create optimized violation object
171
+ const optimized = {
172
+ f: violation.feature,
173
+ fid: violation.featureId,
174
+ fi: fileId, // file index instead of full path
175
+ l: violation.line,
176
+ c: violation.column,
177
+ ctx: violation.context?.substring(0, 100), // Limit context length
178
+ b: violation.browser,
179
+ r: violation.required,
180
+ a: violation.actual,
181
+ bs: violation.baselineStatus,
182
+ rs: violation.reason?.substring(0, 200) // Limit reason length
183
+ };
184
+ const key = `${fileId}-${violation.line}-${violation.feature}`;
185
+ this.violations.set(key, optimized);
186
+ }
187
+ /**
188
+ * Get all violations with full data
189
+ */
190
+ getViolations() {
191
+ const result = [];
192
+ const fileIdToPath = new Map();
193
+ // Create reverse mapping
194
+ for (const [path, id] of this.fileIndex) {
195
+ fileIdToPath.set(id, path);
196
+ }
197
+ for (const optimized of this.violations.values()) {
198
+ result.push({
199
+ feature: optimized.f,
200
+ featureId: optimized.fid,
201
+ file: fileIdToPath.get(optimized.fi) || 'unknown',
202
+ line: optimized.l,
203
+ column: optimized.c,
204
+ context: optimized.ctx,
205
+ browser: optimized.b,
206
+ required: optimized.r,
207
+ actual: optimized.a,
208
+ baselineStatus: optimized.bs,
209
+ reason: optimized.rs
210
+ });
211
+ }
212
+ return result;
213
+ }
214
+ /**
215
+ * Get memory usage statistics
216
+ */
217
+ getStats() {
218
+ const violationCount = this.violations.size;
219
+ const fileCount = this.fileIndex.size;
220
+ // Rough memory estimate (each violation ~200 bytes)
221
+ const memoryEstimate = `${Math.round(violationCount * 200 / 1024)}KB`;
222
+ return {
223
+ violationCount,
224
+ fileCount,
225
+ memoryEstimate
226
+ };
227
+ }
228
+ /**
229
+ * Clear all data
230
+ */
231
+ clear() {
232
+ this.violations.clear();
233
+ this.fileIndex.clear();
234
+ this.nextFileId = 0;
235
+ }
236
+ }
2
237
  //# sourceMappingURL=memory-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  export declare class StartupOptimizer {
5
5
  private static startTime;
6
6
  private static initialized;
7
+ private static gcInterval;
8
+ private static memoryInterval;
7
9
  /**
8
10
  * Initialize BaseGuard with optimized startup
9
11
  */
@@ -41,5 +43,17 @@ export declare class StartupOptimizer {
41
43
  issues: string[];
42
44
  recommendations: string[];
43
45
  };
46
+ /**
47
+ * Optimize memory usage by reducing object overhead
48
+ */
49
+ static optimizeMemoryUsage(): void;
50
+ /**
51
+ * Reduce startup time by deferring non-critical operations
52
+ */
53
+ static deferNonCriticalOperations(): Promise<void>;
54
+ /**
55
+ * Optimize startup by preloading critical dependencies
56
+ */
57
+ static optimizeStartup(): Promise<void>;
44
58
  }
45
59
  //# sourceMappingURL=startup-optimizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-optimizer.d.ts","sourceRoot":"","sources":["../../src/core/startup-optimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;IACtC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BxC;;OAEG;mBACkB,2BAA2B;IAahD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAsBvC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD;;OAEG;WACU,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjF;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAWtB;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI;QAC9B,WAAW,EAAE,OAAO,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B;CAgCF"}
1
+ {"version":3,"file":"startup-optimizer.d.ts","sourceRoot":"","sources":["../../src/core/startup-optimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;IACtC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IACnC,OAAO,CAAC,MAAM,CAAC,UAAU,CAA+B;IACxD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA+B;IAE5D;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BxC;;OAEG;mBACkB,2BAA2B;IAahD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAsBvC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD;;OAEG;WACU,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjF;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAqBtB;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI;QAC9B,WAAW,EAAE,OAAO,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B;IAiCD;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAqBlC;;OAEG;WACU,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBxD;;OAEG;WACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB9C"}
@@ -4,6 +4,8 @@
4
4
  export class StartupOptimizer {
5
5
  static startTime = Date.now();
6
6
  static initialized = false;
7
+ static gcInterval = null;
8
+ static memoryInterval = null;
7
9
  /**
8
10
  * Initialize BaseGuard with optimized startup
9
11
  */
@@ -19,7 +21,7 @@ export class StartupOptimizer {
19
21
  this.setupMemoryOptimizations();
20
22
  this.initialized = true;
21
23
  const initTime = Date.now() - startTime;
22
- if (initTime > 200) {
24
+ if (initTime > 1000) {
23
25
  console.warn(`Slow startup detected: ${initTime}ms`);
24
26
  }
25
27
  }
@@ -48,7 +50,7 @@ export class StartupOptimizer {
48
50
  // Enable garbage collection hints if available
49
51
  if (global.gc) {
50
52
  // Set up periodic GC for long-running processes
51
- setInterval(() => {
53
+ this.gcInterval = setInterval(() => {
52
54
  const { MemoryManager } = require('./memory-manager.js');
53
55
  const memCheck = MemoryManager.checkMemoryUsage();
54
56
  if (memCheck.warning) {
@@ -101,6 +103,15 @@ export class StartupOptimizer {
101
103
  static cleanup() {
102
104
  const { LazyLoader } = require('./lazy-loader.js');
103
105
  const { MemoryManager } = require('./memory-manager.js');
106
+ // Clear intervals
107
+ if (this.gcInterval) {
108
+ clearInterval(this.gcInterval);
109
+ this.gcInterval = null;
110
+ }
111
+ if (this.memoryInterval) {
112
+ clearInterval(this.memoryInterval);
113
+ this.memoryInterval = null;
114
+ }
104
115
  // Clear caches
105
116
  LazyLoader.clearCache();
106
117
  // Force garbage collection if available
@@ -114,7 +125,7 @@ export class StartupOptimizer {
114
125
  const recommendations = [];
115
126
  const metrics = this.getStartupMetrics();
116
127
  // Check startup time
117
- if (metrics.totalStartupTime > 500) {
128
+ if (metrics.totalStartupTime > 2000) {
118
129
  issues.push(`Slow startup: ${metrics.totalStartupTime}ms`);
119
130
  recommendations.push('Consider reducing dependencies or using lazy loading');
120
131
  }
@@ -136,5 +147,65 @@ export class StartupOptimizer {
136
147
  recommendations
137
148
  };
138
149
  }
150
+ /**
151
+ * Optimize memory usage by reducing object overhead
152
+ */
153
+ static optimizeMemoryUsage() {
154
+ // Enable V8 memory optimizations if available
155
+ if (process.env.NODE_ENV !== 'development') {
156
+ // Set V8 flags for better memory management
157
+ process.env.NODE_OPTIONS = (process.env.NODE_OPTIONS || '') + ' --max-old-space-size=512 --optimize-for-size';
158
+ }
159
+ // Setup memory monitoring
160
+ if (global.gc) {
161
+ this.memoryInterval = setInterval(() => {
162
+ const usage = process.memoryUsage();
163
+ const heapUsedMB = usage.heapUsed / 1024 / 1024;
164
+ // Force GC if memory usage is high
165
+ if (heapUsedMB > 100 && global.gc) {
166
+ global.gc();
167
+ }
168
+ }, 30000);
169
+ }
170
+ }
171
+ /**
172
+ * Reduce startup time by deferring non-critical operations
173
+ */
174
+ static async deferNonCriticalOperations() {
175
+ // Defer heavy operations until after startup
176
+ setTimeout(async () => {
177
+ try {
178
+ // Preload remaining dependencies
179
+ const { LazyLoader } = await import('./lazy-loader.js');
180
+ LazyLoader.preloadCommon();
181
+ // Initialize caches
182
+ const { CacheManager } = await import('./cache-manager.js');
183
+ // Cache initialization would happen here
184
+ // Cleanup old logs
185
+ const { logger } = await import('./debug-logger.js');
186
+ logger.cleanupOldLogs().catch(() => { });
187
+ }
188
+ catch (error) {
189
+ // Ignore errors in deferred operations
190
+ }
191
+ }, 100); // Defer by 100ms
192
+ }
193
+ /**
194
+ * Optimize startup by preloading critical dependencies
195
+ */
196
+ static async optimizeStartup() {
197
+ // Start loading critical dependencies in background
198
+ const { LazyLoader } = await import('./lazy-loader.js');
199
+ const criticalLoads = [
200
+ LazyLoader.getWebFeatures().catch(() => { }),
201
+ LazyLoader.getBabelParser().catch(() => { })
202
+ ];
203
+ // Don't wait for all to complete, just start the process
204
+ Promise.all(criticalLoads);
205
+ // Setup memory optimizations
206
+ this.optimizeMemoryUsage();
207
+ // Defer non-critical operations
208
+ this.deferNonCriticalOperations();
209
+ }
139
210
  }
140
211
  //# sourceMappingURL=startup-optimizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-optimizer.js","sourceRoot":"","sources":["../../src/core/startup-optimizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-optimizer.js","sourceRoot":"","sources":["../../src/core/startup-optimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ export interface SystemErrorContext {
2
+ operation: string;
3
+ file?: string;
4
+ line?: number;
5
+ details?: any;
6
+ timestamp?: Date;
7
+ userId?: string;
8
+ }
9
+ export interface RecoveryStrategy {
10
+ name: string;
11
+ description: string;
12
+ execute: () => Promise<boolean>;
13
+ priority: number;
14
+ }
15
+ export declare class SystemError extends Error {
16
+ code: string;
17
+ context?: SystemErrorContext | undefined;
18
+ recoverable: boolean;
19
+ severity: 'low' | 'medium' | 'high' | 'critical';
20
+ constructor(message: string, code: string, context?: SystemErrorContext | undefined, recoverable?: boolean, severity?: 'low' | 'medium' | 'high' | 'critical');
21
+ }
22
+ export declare class SystemErrorHandler {
23
+ private static retryAttempts;
24
+ private static maxRetries;
25
+ private static backoffBase;
26
+ private static errorLog;
27
+ private static maxLogSize;
28
+ private static recoveryStrategies;
29
+ private static gracefulDegradationEnabled;
30
+ private static offlineMode;
31
+ static withRetry<T>(operation: () => Promise<T>, context: SystemErrorContext, maxRetries?: number, customBackoff?: (attempt: number) => number): Promise<T>;
32
+ static handleGracefully<T>(operation: () => Promise<T>, fallback: T | (() => Promise<T>), context: SystemErrorContext, options?: {
33
+ logError?: boolean;
34
+ showWarning?: boolean;
35
+ attemptRecovery?: boolean;
36
+ }): Promise<T>;
37
+ static wrapError(error: any, context: SystemErrorContext): SystemError;
38
+ static displayError(error: SystemError, options?: {
39
+ verbose?: boolean;
40
+ showRecovery?: boolean;
41
+ }): void;
42
+ private static attemptRecovery;
43
+ private static showRecoveryOptions;
44
+ private static provideSuggestions;
45
+ private static showDegradationOptions;
46
+ static logError(error: SystemError): void;
47
+ static saveErrorLog(filePath?: string): Promise<void>;
48
+ static getErrorSummary(): {
49
+ total: number;
50
+ bySeverity: Record<string, number>;
51
+ byCode: Record<string, number>;
52
+ recoverable: number;
53
+ critical: number;
54
+ };
55
+ static registerRecoveryStrategy(errorCode: string, strategy: RecoveryStrategy): void;
56
+ static enableGracefulDegradation(enabled?: boolean): void;
57
+ static setOfflineMode(offline?: boolean): void;
58
+ static isOfflineMode(): boolean;
59
+ static clearErrorLog(): void;
60
+ static createCorruptionRecovery(configPath: string): Promise<boolean>;
61
+ static handleProcessSignals(): Promise<void>;
62
+ private static sleep;
63
+ static initializeRecoveryStrategies(): void;
64
+ }
65
+ //# sourceMappingURL=system-error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-error-handler.d.ts","sourceRoot":"","sources":["../../src/core/system-error-handler.ts"],"names":[],"mappings":"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"}