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.
Files changed (244) hide show
  1. package/.eslintrc.json +25 -0
  2. package/.prettierrc +8 -0
  3. package/README.md +94 -0
  4. package/bin/base.js +494 -0
  5. package/dist/ai/fix-manager.d.ts +67 -0
  6. package/dist/ai/fix-manager.d.ts.map +1 -0
  7. package/dist/ai/fix-manager.js +326 -0
  8. package/dist/ai/fix-manager.js.map +1 -0
  9. package/dist/ai/gemini-analyzer.d.ts +116 -0
  10. package/dist/ai/gemini-analyzer.d.ts.map +1 -0
  11. package/dist/ai/gemini-analyzer.js +572 -0
  12. package/dist/ai/gemini-analyzer.js.map +1 -0
  13. package/dist/ai/index.d.ts +4 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +5 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/ai/jules-implementer.d.ts +115 -0
  18. package/dist/ai/jules-implementer.d.ts.map +1 -0
  19. package/dist/ai/jules-implementer.js +387 -0
  20. package/dist/ai/jules-implementer.js.map +1 -0
  21. package/dist/commands/automation.d.ts +5 -0
  22. package/dist/commands/automation.d.ts.map +1 -0
  23. package/dist/commands/automation.js +305 -0
  24. package/dist/commands/automation.js.map +1 -0
  25. package/dist/commands/check.d.ts +9 -0
  26. package/dist/commands/check.d.ts.map +1 -0
  27. package/dist/commands/check.js +113 -0
  28. package/dist/commands/check.js.map +1 -0
  29. package/dist/commands/config.d.ts +11 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +324 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/fix.d.ts +9 -0
  34. package/dist/commands/fix.d.ts.map +1 -0
  35. package/dist/commands/fix.js +207 -0
  36. package/dist/commands/fix.js.map +1 -0
  37. package/dist/commands/index.d.ts +6 -0
  38. package/dist/commands/index.d.ts.map +1 -0
  39. package/dist/commands/index.js +7 -0
  40. package/dist/commands/index.js.map +1 -0
  41. package/dist/commands/init.d.ts +9 -0
  42. package/dist/commands/init.d.ts.map +1 -0
  43. package/dist/commands/init.js +125 -0
  44. package/dist/commands/init.js.map +1 -0
  45. package/dist/core/api-key-manager.d.ts +83 -0
  46. package/dist/core/api-key-manager.d.ts.map +1 -0
  47. package/dist/core/api-key-manager.js +244 -0
  48. package/dist/core/api-key-manager.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +46 -0
  50. package/dist/core/baseguard.d.ts.map +1 -0
  51. package/dist/core/baseguard.js +132 -0
  52. package/dist/core/baseguard.js.map +1 -0
  53. package/dist/core/baseline-checker.d.ts +63 -0
  54. package/dist/core/baseline-checker.d.ts.map +1 -0
  55. package/dist/core/baseline-checker.js +502 -0
  56. package/dist/core/baseline-checker.js.map +1 -0
  57. package/dist/core/cache-manager.d.ts +88 -0
  58. package/dist/core/cache-manager.d.ts.map +1 -0
  59. package/dist/core/cache-manager.js +213 -0
  60. package/dist/core/cache-manager.js.map +1 -0
  61. package/dist/core/configuration.d.ts +140 -0
  62. package/dist/core/configuration.d.ts.map +1 -0
  63. package/dist/core/configuration.js +474 -0
  64. package/dist/core/configuration.js.map +1 -0
  65. package/dist/core/directory-filter.d.ts +90 -0
  66. package/dist/core/directory-filter.d.ts.map +1 -0
  67. package/dist/core/directory-filter.js +319 -0
  68. package/dist/core/directory-filter.js.map +1 -0
  69. package/dist/core/error-handler.d.ts +110 -0
  70. package/dist/core/error-handler.d.ts.map +1 -0
  71. package/dist/core/error-handler.js +392 -0
  72. package/dist/core/error-handler.js.map +1 -0
  73. package/dist/core/file-processor.d.ts +80 -0
  74. package/dist/core/file-processor.d.ts.map +1 -0
  75. package/dist/core/file-processor.js +259 -0
  76. package/dist/core/file-processor.js.map +1 -0
  77. package/dist/core/gitignore-manager.d.ts +44 -0
  78. package/dist/core/gitignore-manager.d.ts.map +1 -0
  79. package/dist/core/gitignore-manager.js +147 -0
  80. package/dist/core/gitignore-manager.js.map +1 -0
  81. package/dist/core/index.d.ts +13 -0
  82. package/dist/core/index.d.ts.map +1 -0
  83. package/dist/core/index.js +13 -0
  84. package/dist/core/index.js.map +1 -0
  85. package/dist/core/lazy-loader.d.ts +68 -0
  86. package/dist/core/lazy-loader.d.ts.map +1 -0
  87. package/dist/core/lazy-loader.js +260 -0
  88. package/dist/core/lazy-loader.js.map +1 -0
  89. package/dist/core/memory-manager.d.ts +1 -0
  90. package/dist/core/memory-manager.d.ts.map +1 -0
  91. package/dist/core/memory-manager.js +2 -0
  92. package/dist/core/memory-manager.js.map +1 -0
  93. package/dist/core/startup-optimizer.d.ts +45 -0
  94. package/dist/core/startup-optimizer.d.ts.map +1 -0
  95. package/dist/core/startup-optimizer.js +140 -0
  96. package/dist/core/startup-optimizer.js.map +1 -0
  97. package/dist/git/automation-engine.d.ts +58 -0
  98. package/dist/git/automation-engine.d.ts.map +1 -0
  99. package/dist/git/automation-engine.js +318 -0
  100. package/dist/git/automation-engine.js.map +1 -0
  101. package/dist/git/github-manager.d.ts +71 -0
  102. package/dist/git/github-manager.d.ts.map +1 -0
  103. package/dist/git/github-manager.js +226 -0
  104. package/dist/git/github-manager.js.map +1 -0
  105. package/dist/git/hook-manager.d.ts +43 -0
  106. package/dist/git/hook-manager.d.ts.map +1 -0
  107. package/dist/git/hook-manager.js +191 -0
  108. package/dist/git/hook-manager.js.map +1 -0
  109. package/dist/git/index.d.ts +4 -0
  110. package/dist/git/index.d.ts.map +1 -0
  111. package/dist/git/index.js +5 -0
  112. package/dist/git/index.js.map +1 -0
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +9 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/parsers/feature-validator.d.ts +60 -0
  118. package/dist/parsers/feature-validator.d.ts.map +1 -0
  119. package/dist/parsers/feature-validator.js +483 -0
  120. package/dist/parsers/feature-validator.js.map +1 -0
  121. package/dist/parsers/index.d.ts +8 -0
  122. package/dist/parsers/index.d.ts.map +1 -0
  123. package/dist/parsers/index.js +9 -0
  124. package/dist/parsers/index.js.map +1 -0
  125. package/dist/parsers/parser-manager.d.ts +103 -0
  126. package/dist/parsers/parser-manager.d.ts.map +1 -0
  127. package/dist/parsers/parser-manager.js +321 -0
  128. package/dist/parsers/parser-manager.js.map +1 -0
  129. package/dist/parsers/parser.d.ts +23 -0
  130. package/dist/parsers/parser.d.ts.map +1 -0
  131. package/dist/parsers/parser.js +6 -0
  132. package/dist/parsers/parser.js.map +1 -0
  133. package/dist/parsers/react-parser.d.ts +22 -0
  134. package/dist/parsers/react-parser.d.ts.map +1 -0
  135. package/dist/parsers/react-parser.js +307 -0
  136. package/dist/parsers/react-parser.js.map +1 -0
  137. package/dist/parsers/svelte-parser.d.ts +33 -0
  138. package/dist/parsers/svelte-parser.d.ts.map +1 -0
  139. package/dist/parsers/svelte-parser.js +408 -0
  140. package/dist/parsers/svelte-parser.js.map +1 -0
  141. package/dist/parsers/vanilla-parser.d.ts +31 -0
  142. package/dist/parsers/vanilla-parser.d.ts.map +1 -0
  143. package/dist/parsers/vanilla-parser.js +590 -0
  144. package/dist/parsers/vanilla-parser.js.map +1 -0
  145. package/dist/parsers/vue-parser.d.ts +9 -0
  146. package/dist/parsers/vue-parser.d.ts.map +1 -0
  147. package/dist/parsers/vue-parser.js +16 -0
  148. package/dist/parsers/vue-parser.js.map +1 -0
  149. package/dist/terminal-header.d.ts +12 -0
  150. package/dist/terminal-header.js +45 -0
  151. package/dist/types/index.d.ts +83 -0
  152. package/dist/types/index.d.ts.map +1 -0
  153. package/dist/types/index.js +5 -0
  154. package/dist/types/index.js.map +1 -0
  155. package/dist/ui/components.d.ts +133 -0
  156. package/dist/ui/components.d.ts.map +1 -0
  157. package/dist/ui/components.js +482 -0
  158. package/dist/ui/components.js.map +1 -0
  159. package/dist/ui/help.d.ts +11 -0
  160. package/dist/ui/help.d.ts.map +1 -0
  161. package/dist/ui/help.js +161 -0
  162. package/dist/ui/help.js.map +1 -0
  163. package/dist/ui/index.d.ts +5 -0
  164. package/dist/ui/index.d.ts.map +1 -0
  165. package/dist/ui/index.js +5 -0
  166. package/dist/ui/index.js.map +1 -0
  167. package/dist/ui/prompts.d.ts +63 -0
  168. package/dist/ui/prompts.d.ts.map +1 -0
  169. package/dist/ui/prompts.js +611 -0
  170. package/dist/ui/prompts.js.map +1 -0
  171. package/dist/ui/terminal-header.d.ts +13 -0
  172. package/dist/ui/terminal-header.d.ts.map +1 -0
  173. package/dist/ui/terminal-header.js +46 -0
  174. package/dist/ui/terminal-header.js.map +1 -0
  175. package/package.json +80 -0
  176. package/src/ai/__tests__/gemini-analyzer.test.ts +181 -0
  177. package/src/ai/fix-manager.ts +362 -0
  178. package/src/ai/gemini-analyzer.ts +671 -0
  179. package/src/ai/index.ts +4 -0
  180. package/src/ai/jules-implementer.ts +459 -0
  181. package/src/commands/automation.ts +344 -0
  182. package/src/commands/check.ts +299 -0
  183. package/src/commands/config.ts +365 -0
  184. package/src/commands/fix.ts +234 -0
  185. package/src/commands/index.ts +6 -0
  186. package/src/commands/init.ts +142 -0
  187. package/src/commands/status.ts +0 -0
  188. package/src/core/api-key-manager.ts +298 -0
  189. package/src/core/baseguard.ts +742 -0
  190. package/src/core/baseline-checker.ts +563 -0
  191. package/src/core/cache-manager.ts +270 -0
  192. package/src/core/configuration-recovery.ts +676 -0
  193. package/src/core/configuration.ts +559 -0
  194. package/src/core/debug-logger.ts +590 -0
  195. package/src/core/directory-filter.ts +421 -0
  196. package/src/core/error-handler.ts +517 -0
  197. package/src/core/file-processor.ts +331 -0
  198. package/src/core/gitignore-manager.ts +169 -0
  199. package/src/core/graceful-degradation-manager.ts +596 -0
  200. package/src/core/index.ts +13 -0
  201. package/src/core/lazy-loader.ts +307 -0
  202. package/src/core/logger.ts +0 -0
  203. package/src/core/memory-manager.ts +294 -0
  204. package/src/core/startup-optimizer.ts +173 -0
  205. package/src/core/system-error-handler.ts +746 -0
  206. package/src/git/automation-engine.ts +361 -0
  207. package/src/git/github-manager.ts +260 -0
  208. package/src/git/hook-manager.ts +210 -0
  209. package/src/git/index.ts +4 -0
  210. package/src/index.ts +8 -0
  211. package/src/parsers/feature-validator.ts +559 -0
  212. package/src/parsers/index.ts +8 -0
  213. package/src/parsers/parser-manager.ts +419 -0
  214. package/src/parsers/parser.ts +26 -0
  215. package/src/parsers/react-parser-optimized.ts +161 -0
  216. package/src/parsers/react-parser.ts +359 -0
  217. package/src/parsers/svelte-parser.ts +506 -0
  218. package/src/parsers/vanilla-parser.ts +682 -0
  219. package/src/parsers/vue-parser.ts +472 -0
  220. package/src/types/index.ts +92 -0
  221. package/src/ui/components.ts +567 -0
  222. package/src/ui/help.ts +193 -0
  223. package/src/ui/index.ts +4 -0
  224. package/src/ui/prompts.ts +688 -0
  225. package/src/ui/terminal-header.ts +59 -0
  226. package/test-config-commands.js +56 -0
  227. package/test-header-simple.js +33 -0
  228. package/test-terminal-header.js +12 -0
  229. package/test-ui.js +29 -0
  230. package/tests/e2e/baseguard.e2e.test.ts +516 -0
  231. package/tests/e2e/cross-platform.e2e.test.ts +420 -0
  232. package/tests/e2e/git-integration.e2e.test.ts +487 -0
  233. package/tests/fixtures/react-project/package.json +14 -0
  234. package/tests/fixtures/react-project/src/App.css +76 -0
  235. package/tests/fixtures/react-project/src/App.tsx +77 -0
  236. package/tests/fixtures/svelte-project/package.json +11 -0
  237. package/tests/fixtures/svelte-project/src/App.svelte +369 -0
  238. package/tests/fixtures/vanilla-project/index.html +76 -0
  239. package/tests/fixtures/vanilla-project/script.js +331 -0
  240. package/tests/fixtures/vanilla-project/styles.css +359 -0
  241. package/tests/fixtures/vue-project/package.json +12 -0
  242. package/tests/fixtures/vue-project/src/App.vue +216 -0
  243. package/tsconfig.json +36 -0
  244. package/vitest.config.ts +10 -0
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Lazy loading system for heavy dependencies and parsers
3
+ */
4
+ export class LazyLoader {
5
+ static instances = new Map();
6
+ static loadPromises = new Map();
7
+ /**
8
+ * Lazy load web-features package
9
+ */
10
+ static async getWebFeatures() {
11
+ const key = 'web-features';
12
+ if (this.instances.has(key)) {
13
+ return this.instances.get(key);
14
+ }
15
+ if (this.loadPromises.has(key)) {
16
+ return this.loadPromises.get(key);
17
+ }
18
+ const loadPromise = this.loadWebFeatures();
19
+ this.loadPromises.set(key, loadPromise);
20
+ try {
21
+ const webFeatures = await loadPromise;
22
+ this.instances.set(key, webFeatures);
23
+ this.loadPromises.delete(key);
24
+ return webFeatures;
25
+ }
26
+ catch (error) {
27
+ this.loadPromises.delete(key);
28
+ throw error;
29
+ }
30
+ }
31
+ /**
32
+ * Lazy load Babel parser
33
+ */
34
+ static async getBabelParser() {
35
+ const key = 'babel-parser';
36
+ if (this.instances.has(key)) {
37
+ return this.instances.get(key);
38
+ }
39
+ if (this.loadPromises.has(key)) {
40
+ return this.loadPromises.get(key);
41
+ }
42
+ const loadPromise = import('@babel/parser');
43
+ this.loadPromises.set(key, loadPromise);
44
+ try {
45
+ const parser = await loadPromise;
46
+ this.instances.set(key, parser);
47
+ this.loadPromises.delete(key);
48
+ return parser;
49
+ }
50
+ catch (error) {
51
+ this.loadPromises.delete(key);
52
+ throw error;
53
+ }
54
+ }
55
+ /**
56
+ * Lazy load Babel traverse
57
+ */
58
+ static async getBabelTraverse() {
59
+ const key = 'babel-traverse';
60
+ if (this.instances.has(key)) {
61
+ return this.instances.get(key);
62
+ }
63
+ if (this.loadPromises.has(key)) {
64
+ return this.loadPromises.get(key);
65
+ }
66
+ const loadPromise = import('@babel/traverse');
67
+ this.loadPromises.set(key, loadPromise);
68
+ try {
69
+ const traverse = await loadPromise;
70
+ this.instances.set(key, traverse.default || traverse);
71
+ this.loadPromises.delete(key);
72
+ return this.instances.get(key);
73
+ }
74
+ catch (error) {
75
+ this.loadPromises.delete(key);
76
+ throw error;
77
+ }
78
+ }
79
+ /**
80
+ * Lazy load PostCSS
81
+ */
82
+ static async getPostCSS() {
83
+ const key = 'postcss';
84
+ if (this.instances.has(key)) {
85
+ return this.instances.get(key);
86
+ }
87
+ if (this.loadPromises.has(key)) {
88
+ return this.loadPromises.get(key);
89
+ }
90
+ const loadPromise = import('postcss');
91
+ this.loadPromises.set(key, loadPromise);
92
+ try {
93
+ const postcss = await loadPromise;
94
+ this.instances.set(key, postcss.default || postcss);
95
+ this.loadPromises.delete(key);
96
+ return this.instances.get(key);
97
+ }
98
+ catch (error) {
99
+ this.loadPromises.delete(key);
100
+ throw error;
101
+ }
102
+ }
103
+ /**
104
+ * Lazy load Vue compiler
105
+ */
106
+ static async getVueCompiler() {
107
+ const key = 'vue-compiler';
108
+ if (this.instances.has(key)) {
109
+ return this.instances.get(key);
110
+ }
111
+ if (this.loadPromises.has(key)) {
112
+ return this.loadPromises.get(key);
113
+ }
114
+ const loadPromise = import('@vue/compiler-sfc');
115
+ this.loadPromises.set(key, loadPromise);
116
+ try {
117
+ const compiler = await loadPromise;
118
+ this.instances.set(key, compiler);
119
+ this.loadPromises.delete(key);
120
+ return compiler;
121
+ }
122
+ catch (error) {
123
+ this.loadPromises.delete(key);
124
+ throw error;
125
+ }
126
+ }
127
+ /**
128
+ * Lazy load Svelte compiler
129
+ */
130
+ static async getSvelteCompiler() {
131
+ const key = 'svelte-compiler';
132
+ if (this.instances.has(key)) {
133
+ return this.instances.get(key);
134
+ }
135
+ if (this.loadPromises.has(key)) {
136
+ return this.loadPromises.get(key);
137
+ }
138
+ const loadPromise = import('svelte/compiler');
139
+ this.loadPromises.set(key, loadPromise);
140
+ try {
141
+ const compiler = await loadPromise;
142
+ this.instances.set(key, compiler);
143
+ this.loadPromises.delete(key);
144
+ return compiler;
145
+ }
146
+ catch (error) {
147
+ this.loadPromises.delete(key);
148
+ throw error;
149
+ }
150
+ }
151
+ /**
152
+ * Preload commonly used dependencies
153
+ */
154
+ static async preloadCommon() {
155
+ // Preload in background without blocking
156
+ Promise.all([
157
+ this.getWebFeatures().catch(() => { }),
158
+ this.getBabelParser().catch(() => { }),
159
+ this.getPostCSS().catch(() => { })
160
+ ]);
161
+ }
162
+ /**
163
+ * Clear all cached instances (for testing)
164
+ */
165
+ static clearCache() {
166
+ this.instances.clear();
167
+ this.loadPromises.clear();
168
+ }
169
+ /**
170
+ * Get memory usage statistics
171
+ */
172
+ static getStats() {
173
+ return {
174
+ loadedModules: Array.from(this.instances.keys()),
175
+ pendingLoads: Array.from(this.loadPromises.keys()),
176
+ memoryUsage: process.memoryUsage ? process.memoryUsage() : undefined
177
+ };
178
+ }
179
+ /**
180
+ * Load web-features with optimized loading
181
+ */
182
+ static async loadWebFeatures() {
183
+ try {
184
+ // Try to load web-features package
185
+ const webFeatures = await import('web-features');
186
+ // Extract only the data we need to reduce memory usage
187
+ const optimizedData = this.optimizeWebFeaturesData(webFeatures.default || webFeatures);
188
+ return optimizedData;
189
+ }
190
+ catch (error) {
191
+ console.warn('Failed to load web-features package:', error);
192
+ // Return minimal fallback data
193
+ return {
194
+ features: {},
195
+ browsers: {},
196
+ groups: {}
197
+ };
198
+ }
199
+ }
200
+ /**
201
+ * Optimize web-features data to reduce memory usage
202
+ */
203
+ static optimizeWebFeaturesData(webFeatures) {
204
+ if (!webFeatures) {
205
+ return { features: {}, browsers: {}, groups: {} };
206
+ }
207
+ // Handle both direct export and features property
208
+ const featuresData = webFeatures.features || webFeatures;
209
+ if (!featuresData || typeof featuresData !== 'object') {
210
+ return { features: {}, browsers: {}, groups: {} };
211
+ }
212
+ // Create optimized structure with only essential data
213
+ const optimized = {
214
+ features: {},
215
+ browsers: webFeatures.browsers || {},
216
+ groups: webFeatures.groups || {}
217
+ };
218
+ // Only keep essential feature data to reduce memory footprint
219
+ for (const [featureId, feature] of Object.entries(featuresData)) {
220
+ const f = feature;
221
+ // Skip if not a valid feature object
222
+ if (!f || typeof f !== 'object') {
223
+ continue;
224
+ }
225
+ // Only store essential compatibility data
226
+ optimized.features[featureId] = {
227
+ name: f.name,
228
+ status: f.status ? {
229
+ baseline: f.status.baseline,
230
+ support: f.status.support
231
+ } : null,
232
+ // Skip heavy data like descriptions, specs, caniuse data, etc.
233
+ };
234
+ }
235
+ return optimized;
236
+ }
237
+ /**
238
+ * Get startup performance statistics
239
+ */
240
+ static getStartupStats() {
241
+ return {
242
+ loadedModules: Array.from(this.instances.keys()),
243
+ pendingLoads: Array.from(this.loadPromises.keys()),
244
+ startupTime: process.uptime ? Math.round(process.uptime() * 1000) : undefined
245
+ };
246
+ }
247
+ /**
248
+ * Optimize startup by preloading critical dependencies
249
+ */
250
+ static async optimizeStartup() {
251
+ // Start loading critical dependencies in background
252
+ const criticalLoads = [
253
+ this.getWebFeatures().catch(() => { }),
254
+ this.getBabelParser().catch(() => { })
255
+ ];
256
+ // Don't wait for all to complete, just start the process
257
+ Promise.all(criticalLoads);
258
+ }
259
+ }
260
+ //# sourceMappingURL=lazy-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-loader.js","sourceRoot":"","sources":["../../src/core/lazy-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=memory-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=memory-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../src/core/memory-manager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Startup optimization manager to minimize initialization time and memory usage
3
+ */
4
+ export declare class StartupOptimizer {
5
+ private static startTime;
6
+ private static initialized;
7
+ /**
8
+ * Initialize BaseGuard with optimized startup
9
+ */
10
+ static initialize(): Promise<void>;
11
+ /**
12
+ * Preload critical dependencies without blocking
13
+ */
14
+ private static preloadCriticalDependencies;
15
+ /**
16
+ * Setup memory optimizations
17
+ */
18
+ private static setupMemoryOptimizations;
19
+ /**
20
+ * Get startup performance metrics
21
+ */
22
+ static getStartupMetrics(): {
23
+ totalStartupTime: number;
24
+ memoryUsage: NodeJS.MemoryUsage;
25
+ nodeVersion: string;
26
+ platform: string;
27
+ };
28
+ /**
29
+ * Optimize for specific use cases
30
+ */
31
+ static optimizeForUseCase(useCase: 'check' | 'fix' | 'init'): Promise<void>;
32
+ /**
33
+ * Clean up resources and optimize memory
34
+ */
35
+ static cleanup(): void;
36
+ /**
37
+ * Check if startup optimizations are working
38
+ */
39
+ static validateOptimizations(): {
40
+ isOptimized: boolean;
41
+ issues: string[];
42
+ recommendations: string[];
43
+ };
44
+ }
45
+ //# sourceMappingURL=startup-optimizer.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Startup optimization manager to minimize initialization time and memory usage
3
+ */
4
+ export class StartupOptimizer {
5
+ static startTime = Date.now();
6
+ static initialized = false;
7
+ /**
8
+ * Initialize BaseGuard with optimized startup
9
+ */
10
+ static async initialize() {
11
+ if (this.initialized) {
12
+ return;
13
+ }
14
+ const startTime = Date.now();
15
+ try {
16
+ // Start critical dependency loading in background
17
+ await this.preloadCriticalDependencies();
18
+ // Initialize memory management
19
+ this.setupMemoryOptimizations();
20
+ this.initialized = true;
21
+ const initTime = Date.now() - startTime;
22
+ if (initTime > 200) {
23
+ console.warn(`Slow startup detected: ${initTime}ms`);
24
+ }
25
+ }
26
+ catch (error) {
27
+ console.warn('Startup optimization failed:', error);
28
+ this.initialized = true; // Continue anyway
29
+ }
30
+ }
31
+ /**
32
+ * Preload critical dependencies without blocking
33
+ */
34
+ static async preloadCriticalDependencies() {
35
+ const { LazyLoader } = await import('./lazy-loader.js');
36
+ // Start loading critical dependencies in parallel
37
+ const criticalLoads = [
38
+ LazyLoader.getWebFeatures().catch(() => { }),
39
+ LazyLoader.getBabelParser().catch(() => { })
40
+ ];
41
+ // Don't wait for all to complete - just start the loading process
42
+ Promise.all(criticalLoads);
43
+ }
44
+ /**
45
+ * Setup memory optimizations
46
+ */
47
+ static setupMemoryOptimizations() {
48
+ // Enable garbage collection hints if available
49
+ if (global.gc) {
50
+ // Set up periodic GC for long-running processes
51
+ setInterval(() => {
52
+ const { MemoryManager } = require('./memory-manager.js');
53
+ const memCheck = MemoryManager.checkMemoryUsage();
54
+ if (memCheck.warning) {
55
+ MemoryManager.tryGarbageCollect();
56
+ }
57
+ }, 30000); // Check every 30 seconds
58
+ }
59
+ // Setup process memory monitoring
60
+ process.on('warning', (warning) => {
61
+ if (warning.name === 'MaxListenersExceededWarning') {
62
+ console.warn('Memory warning: Too many event listeners');
63
+ }
64
+ });
65
+ }
66
+ /**
67
+ * Get startup performance metrics
68
+ */
69
+ static getStartupMetrics() {
70
+ return {
71
+ totalStartupTime: Date.now() - this.startTime,
72
+ memoryUsage: process.memoryUsage(),
73
+ nodeVersion: process.version,
74
+ platform: process.platform
75
+ };
76
+ }
77
+ /**
78
+ * Optimize for specific use cases
79
+ */
80
+ static async optimizeForUseCase(useCase) {
81
+ const { LazyLoader } = await import('./lazy-loader.js');
82
+ switch (useCase) {
83
+ case 'check':
84
+ // Preload parsing and baseline checking dependencies
85
+ LazyLoader.getWebFeatures().catch(() => { });
86
+ LazyLoader.getBabelParser().catch(() => { });
87
+ LazyLoader.getPostCSS().catch(() => { });
88
+ break;
89
+ case 'fix':
90
+ // Preload all dependencies including AI services
91
+ LazyLoader.preloadCommon();
92
+ break;
93
+ case 'init':
94
+ // Minimal loading for initialization
95
+ break;
96
+ }
97
+ }
98
+ /**
99
+ * Clean up resources and optimize memory
100
+ */
101
+ static cleanup() {
102
+ const { LazyLoader } = require('./lazy-loader.js');
103
+ const { MemoryManager } = require('./memory-manager.js');
104
+ // Clear caches
105
+ LazyLoader.clearCache();
106
+ // Force garbage collection if available
107
+ MemoryManager.tryGarbageCollect();
108
+ }
109
+ /**
110
+ * Check if startup optimizations are working
111
+ */
112
+ static validateOptimizations() {
113
+ const issues = [];
114
+ const recommendations = [];
115
+ const metrics = this.getStartupMetrics();
116
+ // Check startup time
117
+ if (metrics.totalStartupTime > 500) {
118
+ issues.push(`Slow startup: ${metrics.totalStartupTime}ms`);
119
+ recommendations.push('Consider reducing dependencies or using lazy loading');
120
+ }
121
+ // Check memory usage
122
+ const heapUsedMB = metrics.memoryUsage.heapUsed / 1024 / 1024;
123
+ if (heapUsedMB > 50) {
124
+ issues.push(`High memory usage: ${Math.round(heapUsedMB)}MB`);
125
+ recommendations.push('Consider optimizing data structures or clearing caches');
126
+ }
127
+ // Check Node.js version
128
+ const nodeVersion = parseInt(metrics.nodeVersion.slice(1));
129
+ if (nodeVersion < 18) {
130
+ issues.push(`Old Node.js version: ${metrics.nodeVersion}`);
131
+ recommendations.push('Upgrade to Node.js 18+ for better performance');
132
+ }
133
+ return {
134
+ isOptimized: issues.length === 0,
135
+ issues,
136
+ recommendations
137
+ };
138
+ }
139
+ }
140
+ //# sourceMappingURL=startup-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-optimizer.js","sourceRoot":"","sources":["../../src/core/startup-optimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { AutomationOptions, Configuration } from '../types/index.js';
2
+ /**
3
+ * Automation engine for git workflow integration
4
+ */
5
+ export declare class AutomationEngine {
6
+ private config;
7
+ private baseGuard;
8
+ constructor(config?: Configuration);
9
+ /**
10
+ * Run automation for git hooks
11
+ */
12
+ run(options: AutomationOptions): Promise<void>;
13
+ /**
14
+ * Check violations in staged files (for pre-commit) or all files (for pre-push)
15
+ */
16
+ private checkViolations;
17
+ /**
18
+ * Get staged files from git
19
+ */
20
+ private getStagedFiles;
21
+ /**
22
+ * Get all tracked files from git
23
+ */
24
+ private getAllTrackedFiles;
25
+ /**
26
+ * Analyze violations if auto-analyze is enabled
27
+ */
28
+ private analyzeViolations;
29
+ /**
30
+ * Generate and apply fixes if auto-fix is enabled
31
+ */
32
+ private generateFixes;
33
+ /**
34
+ * Apply fixes to files
35
+ */
36
+ private applyFixes;
37
+ /**
38
+ * Stage changes after fixing
39
+ */
40
+ private stageChanges;
41
+ /**
42
+ * Show manual options when auto-fix is disabled
43
+ */
44
+ private showManualOptions;
45
+ /**
46
+ * Check if git repository has uncommitted changes
47
+ */
48
+ private hasUncommittedChanges;
49
+ /**
50
+ * Get current git branch
51
+ */
52
+ private getCurrentBranch;
53
+ /**
54
+ * Check if we're in a git repository
55
+ */
56
+ private isGitRepository;
57
+ }
58
+ //# sourceMappingURL=automation-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-engine.d.ts","sourceRoot":"","sources":["../../src/git/automation-engine.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAA4B,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOpG;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAY;gBAEjB,MAAM,CAAC,EAAE,aAAa;IAKlC;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEpD;;OAEG;YACW,eAAe;IAuC7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;YACW,aAAa;IAoC3B;;OAEG;YACW,UAAU;IAaxB;;OAEG;YACW,YAAY;IAQ1B;;OAEG;YACW,iBAAiB;IA4D/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,eAAe;CAQxB"}