xypriss 2.1.1 → 2.1.2

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 (34) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/src/index.js +1 -1
  3. package/dist/cjs/src/index.js.map +1 -1
  4. package/dist/cjs/src/server/FastServer.js +1 -1
  5. package/dist/cjs/src/server/FastServer.js.map +1 -1
  6. package/dist/cjs/src/server/ServerFactory.js +1 -0
  7. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  8. package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js +183 -135
  9. package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
  10. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
  11. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  12. package/dist/cjs/src/server/const/default.js +6 -1
  13. package/dist/cjs/src/server/const/default.js.map +1 -1
  14. package/dist/cjs/src/server/core/XyprissApp.js +72 -10
  15. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
  16. package/dist/esm/src/index.js +1 -1
  17. package/dist/esm/src/index.js.map +1 -1
  18. package/dist/esm/src/server/FastServer.js +2 -2
  19. package/dist/esm/src/server/FastServer.js.map +1 -1
  20. package/dist/esm/src/server/ServerFactory.js +1 -0
  21. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  22. package/dist/esm/src/server/components/fastapi/FileWatcherManager.js +183 -135
  23. package/dist/esm/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
  24. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
  25. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  26. package/dist/esm/src/server/const/default.js +5 -2
  27. package/dist/esm/src/server/const/default.js.map +1 -1
  28. package/dist/esm/src/server/core/XyprissApp.js +72 -10
  29. package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
  30. package/package.json +4 -4
  31. package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -373
  32. package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
  33. package/dist/esm/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -351
  34. package/dist/esm/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
@@ -1,351 +0,0 @@
1
- import ts from 'typescript';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
- import { logger } from '../../../../../shared/logger/Logger.js';
5
-
6
- /**
7
- * TypeScript Type Checker
8
- * Provides real-time TypeScript error detection and reporting
9
- */
10
- class TypeScriptChecker {
11
- constructor(config) {
12
- this.program = null;
13
- this.compilerOptions = {};
14
- this.lastCheckTime = new Date();
15
- this.isChecking = false;
16
- this.config = {
17
- ...config,
18
- enabled: config.enabled ?? true,
19
- watchMode: config.watchMode ?? false,
20
- checkOnSave: config.checkOnSave ?? true,
21
- showWarnings: config.showWarnings ?? true,
22
- showInfos: config.showInfos ?? false,
23
- maxErrors: config.maxErrors ?? 50,
24
- excludePatterns: config.excludePatterns ?? [
25
- "node_modules",
26
- "dist",
27
- "build",
28
- ".git",
29
- ],
30
- includePatterns: config.includePatterns ?? ["**/*.ts", "**/*.tsx"],
31
- verbose: config.verbose ?? false,
32
- };
33
- this.configPath = this.findTsConfig();
34
- this.loadCompilerOptions();
35
- }
36
- /**
37
- * Find tsconfig.json file
38
- */
39
- findTsConfig() {
40
- if (this.config.configFile && fs.existsSync(this.config.configFile)) {
41
- return this.config.configFile;
42
- }
43
- // Search for tsconfig.json in current directory and parent directories
44
- let currentDir = process.cwd();
45
- while (currentDir !== path.dirname(currentDir)) {
46
- const configPath = path.join(currentDir, "tsconfig.json");
47
- if (fs.existsSync(configPath)) {
48
- return configPath;
49
- }
50
- currentDir = path.dirname(currentDir);
51
- }
52
- // Default fallback
53
- return path.join(process.cwd(), "tsconfig.json");
54
- }
55
- /**
56
- * Load TypeScript compiler options
57
- */
58
- loadCompilerOptions() {
59
- try {
60
- if (fs.existsSync(this.configPath)) {
61
- const configFile = ts.readConfigFile(this.configPath, ts.sys.readFile);
62
- if (configFile.error) {
63
- logger.warn("typescript", `Error reading tsconfig.json: ${configFile.error.messageText}`);
64
- this.compilerOptions = this.getDefaultCompilerOptions();
65
- return;
66
- }
67
- const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, path.dirname(this.configPath));
68
- if (parsedConfig.errors.length > 0) {
69
- logger.warn("typescript", "TypeScript config errors found");
70
- parsedConfig.errors.forEach((error) => {
71
- logger.warn("typescript", `Config error: ${error.messageText}`);
72
- });
73
- }
74
- this.compilerOptions = parsedConfig.options;
75
- if (this.config.verbose) {
76
- logger.debug("typescript", `Loaded TypeScript config from: ${this.configPath}`);
77
- }
78
- }
79
- else {
80
- logger.warn("typescript", `tsconfig.json not found at: ${this.configPath}`);
81
- this.compilerOptions = this.getDefaultCompilerOptions();
82
- }
83
- }
84
- catch (error) {
85
- logger.error("typescript", `Failed to load TypeScript config: ${error.message}`);
86
- this.compilerOptions = this.getDefaultCompilerOptions();
87
- }
88
- }
89
- /**
90
- * Get default compiler options
91
- */
92
- getDefaultCompilerOptions() {
93
- return {
94
- target: ts.ScriptTarget.ES2020,
95
- module: ts.ModuleKind.CommonJS,
96
- lib: ["ES2020", "DOM"],
97
- strict: true,
98
- esModuleInterop: true,
99
- skipLibCheck: true,
100
- forceConsistentCasingInFileNames: true,
101
- moduleResolution: ts.ModuleResolutionKind.Node10,
102
- allowSyntheticDefaultImports: true,
103
- noEmit: true, // We only want type checking, not compilation
104
- };
105
- }
106
- /**
107
- * Get TypeScript files to check
108
- */
109
- getFilesToCheck(specificFiles) {
110
- if (specificFiles && specificFiles.length > 0) {
111
- return specificFiles.filter((file) => file.endsWith(".ts") || file.endsWith(".tsx"));
112
- }
113
- // Get all TypeScript files in the project
114
- const files = [];
115
- const searchPaths = ["src", "lib", "app", "."];
116
- for (const searchPath of searchPaths) {
117
- if (fs.existsSync(searchPath)) {
118
- this.findTypeScriptFiles(searchPath, files);
119
- }
120
- }
121
- return files;
122
- }
123
- /**
124
- * Recursively find TypeScript files
125
- */
126
- findTypeScriptFiles(dir, files) {
127
- try {
128
- const entries = fs.readdirSync(dir, { withFileTypes: true });
129
- for (const entry of entries) {
130
- const fullPath = path.join(dir, entry.name);
131
- // Skip excluded patterns
132
- if (this.config.excludePatterns.some((pattern) => fullPath.includes(pattern))) {
133
- continue;
134
- }
135
- if (entry.isDirectory()) {
136
- this.findTypeScriptFiles(fullPath, files);
137
- }
138
- else if (entry.isFile() &&
139
- (entry.name.endsWith(".ts") || entry.name.endsWith(".tsx"))) {
140
- files.push(fullPath);
141
- }
142
- }
143
- }
144
- catch (error) {
145
- if (this.config.verbose) {
146
- logger.debug("typescript", `Error reading directory ${dir}: ${error.message}`);
147
- }
148
- }
149
- }
150
- /**
151
- * Check TypeScript files for errors
152
- */
153
- async checkFiles(specificFiles) {
154
- if (!this.config.enabled) {
155
- return {
156
- success: true,
157
- errors: [],
158
- warnings: [],
159
- totalFiles: 0,
160
- checkedFiles: [],
161
- duration: 0,
162
- timestamp: new Date(),
163
- };
164
- }
165
- if (this.isChecking) {
166
- logger.debug("typescript", "Type check already in progress, skipping");
167
- return {
168
- success: false,
169
- errors: [],
170
- warnings: [],
171
- totalFiles: 0,
172
- checkedFiles: [],
173
- duration: 0,
174
- timestamp: new Date(),
175
- };
176
- }
177
- this.isChecking = true;
178
- const startTime = Date.now();
179
- try {
180
- const filesToCheck = this.getFilesToCheck(specificFiles);
181
- if (filesToCheck.length === 0) {
182
- logger.debug("typescript", "No TypeScript files found to check");
183
- return {
184
- success: true,
185
- errors: [],
186
- warnings: [],
187
- totalFiles: 0,
188
- checkedFiles: [],
189
- duration: Date.now() - startTime,
190
- timestamp: new Date(),
191
- };
192
- }
193
- if (this.config.verbose) {
194
- logger.debug("typescript", `Checking ${filesToCheck.length} TypeScript files`);
195
- }
196
- // Create TypeScript program
197
- this.program = ts.createProgram(filesToCheck, this.compilerOptions);
198
- // Get diagnostics
199
- const allDiagnostics = ts.getPreEmitDiagnostics(this.program);
200
- // Process diagnostics
201
- const errors = [];
202
- const warnings = [];
203
- for (const diagnostic of allDiagnostics) {
204
- const tsError = this.processDiagnostic(diagnostic);
205
- if (tsError) {
206
- if (tsError.severity === "error") {
207
- errors.push(tsError);
208
- }
209
- else if (tsError.severity === "warning" &&
210
- this.config.showWarnings) {
211
- warnings.push(tsError);
212
- }
213
- }
214
- // Limit errors to prevent overwhelming output
215
- if (errors.length >= this.config.maxErrors) {
216
- logger.warn("typescript", `Reached maximum error limit (${this.config.maxErrors}), stopping check`);
217
- break;
218
- }
219
- }
220
- const duration = Date.now() - startTime;
221
- const success = errors.length === 0;
222
- // Log results
223
- if (errors.length > 0) {
224
- logger.error("typescript", `❌ TypeScript check failed: ${errors.length} errors found`);
225
- errors.slice(0, 5).forEach((error) => {
226
- logger.error("typescript", ` ${error.file}:${error.line}:${error.column} - ${error.message}`);
227
- });
228
- if (errors.length > 5) {
229
- logger.error("typescript", ` ... and ${errors.length - 5} more errors`);
230
- }
231
- }
232
- else {
233
- logger.info("typescript", `✅ TypeScript check passed (${filesToCheck.length} files, ${duration}ms)`);
234
- }
235
- if (warnings.length > 0 && this.config.showWarnings) {
236
- logger.warn("typescript", `⚠️ ${warnings.length} TypeScript warnings found`);
237
- }
238
- this.lastCheckTime = new Date();
239
- return {
240
- success,
241
- errors,
242
- warnings,
243
- totalFiles: filesToCheck.length,
244
- checkedFiles: filesToCheck,
245
- duration,
246
- timestamp: this.lastCheckTime,
247
- };
248
- }
249
- catch (error) {
250
- logger.error("typescript", `TypeScript check failed: ${error.message}`);
251
- return {
252
- success: false,
253
- errors: [
254
- {
255
- file: "system",
256
- line: 0,
257
- column: 0,
258
- message: `TypeScript checker error: ${error.message}`,
259
- code: 0,
260
- severity: "error",
261
- category: "system",
262
- source: error.stack || "",
263
- },
264
- ],
265
- warnings: [],
266
- totalFiles: 0,
267
- checkedFiles: [],
268
- duration: Date.now() - startTime,
269
- timestamp: new Date(),
270
- };
271
- }
272
- finally {
273
- this.isChecking = false;
274
- }
275
- }
276
- /**
277
- * Process TypeScript diagnostic
278
- */
279
- processDiagnostic(diagnostic) {
280
- const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
281
- let file = "unknown";
282
- let line = 0;
283
- let column = 0;
284
- if (diagnostic.file && diagnostic.start !== undefined) {
285
- file = diagnostic.file.fileName;
286
- const position = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
287
- line = position.line + 1; // Convert to 1-based
288
- column = position.character + 1; // Convert to 1-based
289
- }
290
- const severity = this.getDiagnosticSeverity(diagnostic.category);
291
- const category = ts.DiagnosticCategory[diagnostic.category].toLowerCase();
292
- return {
293
- file: path.relative(process.cwd(), file),
294
- line,
295
- column,
296
- message,
297
- code: diagnostic.code,
298
- severity,
299
- category,
300
- source: diagnostic.source || "typescript",
301
- };
302
- }
303
- /**
304
- * Get diagnostic severity
305
- */
306
- getDiagnosticSeverity(category) {
307
- switch (category) {
308
- case ts.DiagnosticCategory.Error:
309
- return "error";
310
- case ts.DiagnosticCategory.Warning:
311
- return "warning";
312
- case ts.DiagnosticCategory.Suggestion:
313
- case ts.DiagnosticCategory.Message:
314
- return "info";
315
- default:
316
- return "error";
317
- }
318
- }
319
- /**
320
- * Get checker status
321
- */
322
- getStatus() {
323
- return {
324
- enabled: this.config.enabled,
325
- isChecking: this.isChecking,
326
- lastCheckTime: this.lastCheckTime,
327
- configPath: this.configPath,
328
- compilerOptions: this.compilerOptions,
329
- };
330
- }
331
- /**
332
- * Update configuration
333
- */
334
- updateConfig(newConfig) {
335
- this.config = { ...this.config, ...newConfig };
336
- if (newConfig.configFile) {
337
- this.configPath = newConfig.configFile;
338
- this.loadCompilerOptions();
339
- }
340
- }
341
- /**
342
- * Enable/disable type checking
343
- */
344
- setEnabled(enabled) {
345
- this.config.enabled = enabled;
346
- logger.info("typescript", `TypeScript checking ${enabled ? "enabled" : "disabled"}`);
347
- }
348
- }
349
-
350
- export { TypeScriptChecker };
351
- //# sourceMappingURL=TypeScriptChecker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypeScriptChecker.js","sources":["../../../../../../../src/server/components/fastapi/typescript/TypeScriptChecker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}