@eui/mcp 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 (191) hide show
  1. package/README.md +846 -0
  2. package/dist/config/index.d.ts +6 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +6 -0
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/config/loader.d.ts +27 -0
  7. package/dist/config/loader.d.ts.map +1 -0
  8. package/dist/config/loader.js +224 -0
  9. package/dist/config/loader.js.map +1 -0
  10. package/dist/config/schema.d.ts +171 -0
  11. package/dist/config/schema.d.ts.map +1 -0
  12. package/dist/config/schema.js +100 -0
  13. package/dist/config/schema.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +45 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/loader/cache-manager.d.ts +74 -0
  19. package/dist/loader/cache-manager.d.ts.map +1 -0
  20. package/dist/loader/cache-manager.js +107 -0
  21. package/dist/loader/cache-manager.js.map +1 -0
  22. package/dist/loader/documentation-loader.d.ts +57 -0
  23. package/dist/loader/documentation-loader.d.ts.map +1 -0
  24. package/dist/loader/documentation-loader.js +81 -0
  25. package/dist/loader/documentation-loader.js.map +1 -0
  26. package/dist/loader/documentation-source.d.ts +37 -0
  27. package/dist/loader/documentation-source.d.ts.map +1 -0
  28. package/dist/loader/documentation-source.js +2 -0
  29. package/dist/loader/documentation-source.js.map +1 -0
  30. package/dist/loader/errors.d.ts +34 -0
  31. package/dist/loader/errors.d.ts.map +1 -0
  32. package/dist/loader/errors.js +65 -0
  33. package/dist/loader/errors.js.map +1 -0
  34. package/dist/loader/http-client.d.ts +43 -0
  35. package/dist/loader/http-client.d.ts.map +1 -0
  36. package/dist/loader/http-client.js +144 -0
  37. package/dist/loader/http-client.js.map +1 -0
  38. package/dist/loader/index.d.ts +6 -0
  39. package/dist/loader/index.d.ts.map +1 -0
  40. package/dist/loader/index.js +5 -0
  41. package/dist/loader/index.js.map +1 -0
  42. package/dist/loader/local-documentation-source.d.ts +62 -0
  43. package/dist/loader/local-documentation-source.d.ts.map +1 -0
  44. package/dist/loader/local-documentation-source.js +190 -0
  45. package/dist/loader/local-documentation-source.js.map +1 -0
  46. package/dist/loader/path-type-detector.d.ts +34 -0
  47. package/dist/loader/path-type-detector.d.ts.map +1 -0
  48. package/dist/loader/path-type-detector.js +78 -0
  49. package/dist/loader/path-type-detector.js.map +1 -0
  50. package/dist/loader/remote-documentation-source.d.ts +112 -0
  51. package/dist/loader/remote-documentation-source.d.ts.map +1 -0
  52. package/dist/loader/remote-documentation-source.js +252 -0
  53. package/dist/loader/remote-documentation-source.js.map +1 -0
  54. package/dist/main.d.ts +3 -0
  55. package/dist/main.d.ts.map +1 -0
  56. package/dist/main.js +211 -0
  57. package/dist/main.js.map +1 -0
  58. package/dist/mcp/index.d.ts +5 -0
  59. package/dist/mcp/index.d.ts.map +1 -0
  60. package/dist/mcp/index.js +5 -0
  61. package/dist/mcp/index.js.map +1 -0
  62. package/dist/mcp/server.d.ts +65 -0
  63. package/dist/mcp/server.d.ts.map +1 -0
  64. package/dist/mcp/server.js +224 -0
  65. package/dist/mcp/server.js.map +1 -0
  66. package/dist/publish/index.d.ts +8 -0
  67. package/dist/publish/index.d.ts.map +1 -0
  68. package/dist/publish/index.js +8 -0
  69. package/dist/publish/index.js.map +1 -0
  70. package/dist/publish/publish-utils.d.ts +74 -0
  71. package/dist/publish/publish-utils.d.ts.map +1 -0
  72. package/dist/publish/publish-utils.js +170 -0
  73. package/dist/publish/publish-utils.js.map +1 -0
  74. package/dist/query/component-query.d.ts +33 -0
  75. package/dist/query/component-query.d.ts.map +1 -0
  76. package/dist/query/component-query.js +63 -0
  77. package/dist/query/component-query.js.map +1 -0
  78. package/dist/query/index-builder.d.ts +79 -0
  79. package/dist/query/index-builder.d.ts.map +1 -0
  80. package/dist/query/index-builder.js +217 -0
  81. package/dist/query/index-builder.js.map +1 -0
  82. package/dist/query/index.d.ts +5 -0
  83. package/dist/query/index.d.ts.map +1 -0
  84. package/dist/query/index.js +6 -0
  85. package/dist/query/index.js.map +1 -0
  86. package/dist/query/result-formatter.d.ts +108 -0
  87. package/dist/query/result-formatter.d.ts.map +1 -0
  88. package/dist/query/result-formatter.js +165 -0
  89. package/dist/query/result-formatter.js.map +1 -0
  90. package/dist/query/search-engine.d.ts +54 -0
  91. package/dist/query/search-engine.d.ts.map +1 -0
  92. package/dist/query/search-engine.js +178 -0
  93. package/dist/query/search-engine.js.map +1 -0
  94. package/dist/test-error.ts +1 -0
  95. package/dist/tools/get-component-docs.d.ts +43 -0
  96. package/dist/tools/get-component-docs.d.ts.map +1 -0
  97. package/dist/tools/get-component-docs.js +55 -0
  98. package/dist/tools/get-component-docs.js.map +1 -0
  99. package/dist/tools/get-component-examples.d.ts +45 -0
  100. package/dist/tools/get-component-examples.d.ts.map +1 -0
  101. package/dist/tools/get-component-examples.js +56 -0
  102. package/dist/tools/get-component-examples.js.map +1 -0
  103. package/dist/tools/get-component-inputs.d.ts +44 -0
  104. package/dist/tools/get-component-inputs.d.ts.map +1 -0
  105. package/dist/tools/get-component-inputs.js +55 -0
  106. package/dist/tools/get-component-inputs.js.map +1 -0
  107. package/dist/tools/get-component-outputs.d.ts +44 -0
  108. package/dist/tools/get-component-outputs.d.ts.map +1 -0
  109. package/dist/tools/get-component-outputs.js +55 -0
  110. package/dist/tools/get-component-outputs.js.map +1 -0
  111. package/dist/tools/index.d.ts +7 -0
  112. package/dist/tools/index.d.ts.map +1 -0
  113. package/dist/tools/index.js +8 -0
  114. package/dist/tools/index.js.map +1 -0
  115. package/dist/tools/list-components.d.ts +69 -0
  116. package/dist/tools/list-components.d.ts.map +1 -0
  117. package/dist/tools/list-components.js +84 -0
  118. package/dist/tools/list-components.js.map +1 -0
  119. package/dist/tools/search-components.d.ts +69 -0
  120. package/dist/tools/search-components.d.ts.map +1 -0
  121. package/dist/tools/search-components.js +98 -0
  122. package/dist/tools/search-components.js.map +1 -0
  123. package/dist/types/compodoc.d.ts +261 -0
  124. package/dist/types/compodoc.d.ts.map +1 -0
  125. package/dist/types/compodoc.js +5 -0
  126. package/dist/types/compodoc.js.map +1 -0
  127. package/dist/types/index.d.ts +5 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/index.js +5 -0
  130. package/dist/types/index.js.map +1 -0
  131. package/dist/utils/circuit-breaker.d.ts +91 -0
  132. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  133. package/dist/utils/circuit-breaker.js +186 -0
  134. package/dist/utils/circuit-breaker.js.map +1 -0
  135. package/dist/utils/credential-masking.d.ts +90 -0
  136. package/dist/utils/credential-masking.d.ts.map +1 -0
  137. package/dist/utils/credential-masking.js +202 -0
  138. package/dist/utils/credential-masking.js.map +1 -0
  139. package/dist/utils/error-handler.d.ts +68 -0
  140. package/dist/utils/error-handler.d.ts.map +1 -0
  141. package/dist/utils/error-handler.js +184 -0
  142. package/dist/utils/error-handler.js.map +1 -0
  143. package/dist/utils/errors.d.ts +156 -0
  144. package/dist/utils/errors.d.ts.map +1 -0
  145. package/dist/utils/errors.js +242 -0
  146. package/dist/utils/errors.js.map +1 -0
  147. package/dist/utils/index.d.ts +10 -0
  148. package/dist/utils/index.d.ts.map +1 -0
  149. package/dist/utils/index.js +16 -0
  150. package/dist/utils/index.js.map +1 -0
  151. package/dist/utils/logger.d.ts +76 -0
  152. package/dist/utils/logger.d.ts.map +1 -0
  153. package/dist/utils/logger.js +150 -0
  154. package/dist/utils/logger.js.map +1 -0
  155. package/dist/utils/retry.d.ts +19 -0
  156. package/dist/utils/retry.d.ts.map +1 -0
  157. package/dist/utils/retry.js +81 -0
  158. package/dist/utils/retry.js.map +1 -0
  159. package/dist/version/changelog-file-utils.d.ts +69 -0
  160. package/dist/version/changelog-file-utils.d.ts.map +1 -0
  161. package/dist/version/changelog-file-utils.js +161 -0
  162. package/dist/version/changelog-file-utils.js.map +1 -0
  163. package/dist/version/changelog-utils.d.ts +98 -0
  164. package/dist/version/changelog-utils.d.ts.map +1 -0
  165. package/dist/version/changelog-utils.js +198 -0
  166. package/dist/version/changelog-utils.js.map +1 -0
  167. package/dist/version/dry-run-utils.d.ts +108 -0
  168. package/dist/version/dry-run-utils.d.ts.map +1 -0
  169. package/dist/version/dry-run-utils.js +126 -0
  170. package/dist/version/dry-run-utils.js.map +1 -0
  171. package/dist/version/git-tag-utils.d.ts +50 -0
  172. package/dist/version/git-tag-utils.d.ts.map +1 -0
  173. package/dist/version/git-tag-utils.js +66 -0
  174. package/dist/version/git-tag-utils.js.map +1 -0
  175. package/dist/version/index.d.ts +11 -0
  176. package/dist/version/index.d.ts.map +1 -0
  177. package/dist/version/index.js +11 -0
  178. package/dist/version/index.js.map +1 -0
  179. package/dist/version/release-utils.d.ts +94 -0
  180. package/dist/version/release-utils.d.ts.map +1 -0
  181. package/dist/version/release-utils.js +170 -0
  182. package/dist/version/release-utils.js.map +1 -0
  183. package/dist/version/rollback-utils.d.ts +47 -0
  184. package/dist/version/rollback-utils.d.ts.map +1 -0
  185. package/dist/version/rollback-utils.js +73 -0
  186. package/dist/version/rollback-utils.js.map +1 -0
  187. package/dist/version/version-manager.d.ts +98 -0
  188. package/dist/version/version-manager.d.ts.map +1 -0
  189. package/dist/version/version-manager.js +158 -0
  190. package/dist/version/version-manager.js.map +1 -0
  191. package/package.json +61 -0
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Credential masking utilities for secure logging
3
+ *
4
+ * This module provides functions to mask sensitive credentials in logs and error messages
5
+ * to prevent accidental exposure of tokens, passwords, and other secrets.
6
+ */
7
+ /**
8
+ * Common patterns for credentials that should be masked
9
+ */
10
+ const CREDENTIAL_PATTERNS = [
11
+ // npm tokens (npm_xxx format) - at least 20 characters after prefix
12
+ /npm_[a-zA-Z0-9]{20,}/gi,
13
+ // Generic tokens (various formats) - capture the token value
14
+ /(?:token|key|secret|password|auth)["'\s:=]+([a-zA-Z0-9_\-\.]{20,})/gi,
15
+ // Bearer tokens - at least 15 characters
16
+ /Bearer\s+[a-zA-Z0-9_\-\.]{15,}/gi,
17
+ // GitLab tokens (glpat- prefix)
18
+ /glpat-[a-zA-Z0-9_\-]{20,}/gi,
19
+ // GitHub tokens (ghp_, gho_, ghs_, ghr_ prefixes)
20
+ /gh[psor]_[a-zA-Z0-9]{20,}/gi,
21
+ // AWS access keys
22
+ /AKIA[0-9A-Z]{16}/gi,
23
+ // Generic API keys in JSON (32+ alphanumeric characters in quotes)
24
+ /"[a-zA-Z0-9_\-]{32,}"/g,
25
+ ];
26
+ /**
27
+ * Mask replacement string
28
+ */
29
+ const MASK = '***REDACTED***';
30
+ /**
31
+ * Masks credentials in a string by replacing them with a redacted placeholder
32
+ *
33
+ * @param text - The text that may contain credentials
34
+ * @param customPatterns - Additional regex patterns to match credentials
35
+ * @returns The text with credentials masked
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const log = "Using token: npm_abc123def456";
40
+ * const masked = maskCredentials(log);
41
+ * // Returns: "Using token: ***REDACTED***"
42
+ * ```
43
+ */
44
+ export function maskCredentials(text, customPatterns = []) {
45
+ if (!text) {
46
+ return text;
47
+ }
48
+ let maskedText = text;
49
+ const allPatterns = [...CREDENTIAL_PATTERNS, ...customPatterns];
50
+ for (const pattern of allPatterns) {
51
+ maskedText = maskedText.replace(pattern, MASK);
52
+ }
53
+ return maskedText;
54
+ }
55
+ /**
56
+ * Sanitizes an error message by masking any credentials it may contain
57
+ *
58
+ * @param error - The error object or message to sanitize
59
+ * @returns A sanitized error message safe for logging
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const error = new Error("Auth failed with token npm_abc123");
64
+ * const sanitized = sanitizeErrorMessage(error);
65
+ * // Returns: "Auth failed with token ***REDACTED***"
66
+ * ```
67
+ */
68
+ export function sanitizeErrorMessage(error) {
69
+ if (!error) {
70
+ return 'Unknown error';
71
+ }
72
+ let message;
73
+ if (error instanceof Error) {
74
+ message = error.message;
75
+ }
76
+ else if (typeof error === 'string') {
77
+ message = error;
78
+ }
79
+ else if (typeof error === 'object') {
80
+ message = JSON.stringify(error);
81
+ }
82
+ else {
83
+ message = String(error);
84
+ }
85
+ return maskCredentials(message);
86
+ }
87
+ /**
88
+ * Sanitizes an entire error object, masking credentials in message, stack, and details
89
+ *
90
+ * @param error - The error object to sanitize
91
+ * @returns A sanitized error object safe for logging
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const error = new Error("Failed with token npm_abc123");
96
+ * const sanitized = sanitizeError(error);
97
+ * // Returns error with masked message and stack
98
+ * ```
99
+ */
100
+ export function sanitizeError(error) {
101
+ if (!(error instanceof Error)) {
102
+ const sanitizedMessage = sanitizeErrorMessage(error);
103
+ return new Error(sanitizedMessage);
104
+ }
105
+ // Create a new error with sanitized message
106
+ const sanitizedError = new Error(maskCredentials(error.message));
107
+ sanitizedError.name = error.name;
108
+ // Sanitize stack trace if present
109
+ if (error.stack) {
110
+ sanitizedError.stack = maskCredentials(error.stack);
111
+ }
112
+ // Copy other properties while sanitizing them
113
+ const errorObj = error;
114
+ for (const key in errorObj) {
115
+ if (key !== 'message' && key !== 'stack' && key !== 'name') {
116
+ const value = errorObj[key];
117
+ if (typeof value === 'string') {
118
+ sanitizedError[key] = maskCredentials(value);
119
+ }
120
+ else if (typeof value === 'object' && value !== null) {
121
+ sanitizedError[key] = JSON.parse(maskCredentials(JSON.stringify(value)));
122
+ }
123
+ else {
124
+ sanitizedError[key] = value;
125
+ }
126
+ }
127
+ }
128
+ return sanitizedError;
129
+ }
130
+ /**
131
+ * Masks credentials in log arguments before logging
132
+ *
133
+ * @param args - The arguments to be logged
134
+ * @returns Sanitized arguments safe for logging
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * const args = ["User logged in", { token: "npm_abc123" }];
139
+ * const sanitized = maskLogArguments(args);
140
+ * // Returns: ["User logged in", { token: "***REDACTED***" }]
141
+ * ```
142
+ */
143
+ export function maskLogArguments(args) {
144
+ return args.map((arg) => {
145
+ if (typeof arg === 'string') {
146
+ return maskCredentials(arg);
147
+ }
148
+ else if (arg instanceof Error) {
149
+ return sanitizeError(arg);
150
+ }
151
+ else if (typeof arg === 'object' && arg !== null) {
152
+ try {
153
+ const jsonString = JSON.stringify(arg);
154
+ const maskedString = maskCredentials(jsonString);
155
+ return JSON.parse(maskedString);
156
+ }
157
+ catch {
158
+ // If JSON parsing fails, return as-is
159
+ return arg;
160
+ }
161
+ }
162
+ return arg;
163
+ });
164
+ }
165
+ /**
166
+ * Creates a safe error message for authentication failures without exposing credentials
167
+ *
168
+ * @param operation - The operation that failed (e.g., "npm publish", "git push")
169
+ * @returns A generic authentication error message
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const message = createAuthErrorMessage("npm publish");
174
+ * // Returns: "Authentication failed for npm publish. Please check your credentials."
175
+ * ```
176
+ */
177
+ export function createAuthErrorMessage(operation) {
178
+ return `Authentication failed for ${operation}. Please check your credentials.`;
179
+ }
180
+ /**
181
+ * Checks if a string contains potential credentials
182
+ *
183
+ * @param text - The text to check
184
+ * @returns True if the text likely contains credentials
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * containsCredentials("npm_abc123def456"); // true
189
+ * containsCredentials("Hello world"); // false
190
+ * ```
191
+ */
192
+ export function containsCredentials(text) {
193
+ if (!text) {
194
+ return false;
195
+ }
196
+ return CREDENTIAL_PATTERNS.some((pattern) => {
197
+ // Reset regex state
198
+ pattern.lastIndex = 0;
199
+ return pattern.test(text);
200
+ });
201
+ }
202
+ //# sourceMappingURL=credential-masking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-masking.js","sourceRoot":"","sources":["../../src/utils/credential-masking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Global error handler to ensure errors don't crash the server
3
+ */
4
+ import { AppError } from './errors.js';
5
+ /**
6
+ * Error handler options
7
+ */
8
+ export interface ErrorHandlerOptions {
9
+ exitOnUnhandledRejection?: boolean;
10
+ exitOnUncaughtException?: boolean;
11
+ }
12
+ /**
13
+ * Global error handler class
14
+ */
15
+ export declare class ErrorHandler {
16
+ private options;
17
+ private isShuttingDown;
18
+ constructor(options?: Partial<ErrorHandlerOptions>);
19
+ /**
20
+ * Initializes global error handlers
21
+ */
22
+ initialize(): void;
23
+ /**
24
+ * Handles unhandled promise rejections
25
+ */
26
+ private handleUnhandledRejection;
27
+ /**
28
+ * Handles uncaught exceptions
29
+ */
30
+ private handleUncaughtException;
31
+ /**
32
+ * Handles graceful shutdown
33
+ */
34
+ private handleShutdown;
35
+ /**
36
+ * Exits the process
37
+ */
38
+ private exitProcess;
39
+ /**
40
+ * Handles an error and returns a safe response
41
+ */
42
+ handleError(error: unknown): AppError;
43
+ /**
44
+ * Wraps an async function with error handling
45
+ */
46
+ wrapAsync<T extends unknown[], R>(fn: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
47
+ /**
48
+ * Wraps a sync function with error handling
49
+ */
50
+ wrapSync<T extends unknown[], R>(fn: (...args: T) => R): (...args: T) => R;
51
+ }
52
+ /**
53
+ * Initializes the global error handler
54
+ */
55
+ export declare function initErrorHandler(options?: Partial<ErrorHandlerOptions>): ErrorHandler;
56
+ /**
57
+ * Gets the global error handler
58
+ */
59
+ export declare function getErrorHandler(): ErrorHandler;
60
+ /**
61
+ * Safely executes an async function and handles errors
62
+ */
63
+ export declare function safeAsync<T>(fn: () => Promise<T>, fallback?: T): Promise<T | undefined>;
64
+ /**
65
+ * Safely executes a sync function and handles errors
66
+ */
67
+ export declare function safeSync<T>(fn: () => T, fallback?: T): T | undefined;
68
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkC,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAOD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAItD;;OAEG;IACH,UAAU,IAAI,IAAI;IAqBlB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAmBrC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC9B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAW7B;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC7B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACpB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC;CAUrB;AAOD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAIrF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAM9C;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,QAAQ,CAAC,EAAE,CAAC,GACX,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAOxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EACX,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,GAAG,SAAS,CAOf"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Global error handler to ensure errors don't crash the server
3
+ */
4
+ import { getLogger } from './logger.js';
5
+ import { isOperationalError, toAppError } from './errors.js';
6
+ const DEFAULT_OPTIONS = {
7
+ exitOnUnhandledRejection: false,
8
+ exitOnUncaughtException: false,
9
+ };
10
+ /**
11
+ * Global error handler class
12
+ */
13
+ export class ErrorHandler {
14
+ options;
15
+ isShuttingDown = false;
16
+ constructor(options = {}) {
17
+ this.options = { ...DEFAULT_OPTIONS, ...options };
18
+ }
19
+ /**
20
+ * Initializes global error handlers
21
+ */
22
+ initialize() {
23
+ // Handle unhandled promise rejections
24
+ process.on('unhandledRejection', (reason) => {
25
+ this.handleUnhandledRejection(reason);
26
+ });
27
+ // Handle uncaught exceptions
28
+ process.on('uncaughtException', (error) => {
29
+ this.handleUncaughtException(error);
30
+ });
31
+ // Handle process termination signals
32
+ process.on('SIGTERM', () => {
33
+ this.handleShutdown('SIGTERM');
34
+ });
35
+ process.on('SIGINT', () => {
36
+ this.handleShutdown('SIGINT');
37
+ });
38
+ }
39
+ /**
40
+ * Handles unhandled promise rejections
41
+ */
42
+ handleUnhandledRejection(reason) {
43
+ const logger = getLogger();
44
+ const error = toAppError(reason);
45
+ logger.error('Unhandled promise rejection', error, {
46
+ isOperational: error.isOperational,
47
+ });
48
+ if (!isOperationalError(error) && this.options.exitOnUnhandledRejection) {
49
+ this.exitProcess(1);
50
+ }
51
+ }
52
+ /**
53
+ * Handles uncaught exceptions
54
+ */
55
+ handleUncaughtException(error) {
56
+ const logger = getLogger();
57
+ const appError = toAppError(error);
58
+ logger.error('Uncaught exception', appError, {
59
+ isOperational: appError.isOperational,
60
+ });
61
+ if (!isOperationalError(appError) && this.options.exitOnUncaughtException) {
62
+ this.exitProcess(1);
63
+ }
64
+ }
65
+ /**
66
+ * Handles graceful shutdown
67
+ */
68
+ handleShutdown(signal) {
69
+ const logger = getLogger();
70
+ if (this.isShuttingDown) {
71
+ logger.warn('Shutdown already in progress, forcing exit');
72
+ this.exitProcess(1);
73
+ return;
74
+ }
75
+ this.isShuttingDown = true;
76
+ logger.info(`Received ${signal}, starting graceful shutdown`);
77
+ // Give the application time to clean up
78
+ setTimeout(() => {
79
+ logger.info('Graceful shutdown complete');
80
+ this.exitProcess(0);
81
+ }, 5000);
82
+ }
83
+ /**
84
+ * Exits the process
85
+ */
86
+ exitProcess(code) {
87
+ process.exit(code);
88
+ }
89
+ /**
90
+ * Handles an error and returns a safe response
91
+ */
92
+ handleError(error) {
93
+ const logger = getLogger();
94
+ const appError = toAppError(error);
95
+ // Log the error
96
+ if (isOperationalError(appError)) {
97
+ logger.warn('Operational error occurred', {
98
+ code: appError.code,
99
+ message: appError.message,
100
+ });
101
+ }
102
+ else {
103
+ logger.error('Non-operational error occurred', appError, {
104
+ code: appError.code,
105
+ });
106
+ }
107
+ return appError;
108
+ }
109
+ /**
110
+ * Wraps an async function with error handling
111
+ */
112
+ wrapAsync(fn) {
113
+ return async (...args) => {
114
+ try {
115
+ return await fn(...args);
116
+ }
117
+ catch (error) {
118
+ const appError = this.handleError(error);
119
+ throw appError;
120
+ }
121
+ };
122
+ }
123
+ /**
124
+ * Wraps a sync function with error handling
125
+ */
126
+ wrapSync(fn) {
127
+ return (...args) => {
128
+ try {
129
+ return fn(...args);
130
+ }
131
+ catch (error) {
132
+ const appError = this.handleError(error);
133
+ throw appError;
134
+ }
135
+ };
136
+ }
137
+ }
138
+ /**
139
+ * Global error handler instance
140
+ */
141
+ let globalErrorHandler = null;
142
+ /**
143
+ * Initializes the global error handler
144
+ */
145
+ export function initErrorHandler(options) {
146
+ globalErrorHandler = new ErrorHandler(options);
147
+ globalErrorHandler.initialize();
148
+ return globalErrorHandler;
149
+ }
150
+ /**
151
+ * Gets the global error handler
152
+ */
153
+ export function getErrorHandler() {
154
+ if (!globalErrorHandler) {
155
+ globalErrorHandler = new ErrorHandler();
156
+ globalErrorHandler.initialize();
157
+ }
158
+ return globalErrorHandler;
159
+ }
160
+ /**
161
+ * Safely executes an async function and handles errors
162
+ */
163
+ export async function safeAsync(fn, fallback) {
164
+ try {
165
+ return await fn();
166
+ }
167
+ catch (error) {
168
+ getErrorHandler().handleError(error);
169
+ return fallback;
170
+ }
171
+ }
172
+ /**
173
+ * Safely executes a sync function and handles errors
174
+ */
175
+ export function safeSync(fn, fallback) {
176
+ try {
177
+ return fn();
178
+ }
179
+ catch (error) {
180
+ getErrorHandler().handleError(error);
181
+ return fallback;
182
+ }
183
+ }
184
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Custom error classes for different error types
3
+ */
4
+ /**
5
+ * Base error class for all application errors
6
+ */
7
+ export declare class AppError extends Error {
8
+ code: string;
9
+ statusCode: number;
10
+ readonly isOperational: boolean;
11
+ readonly details?: unknown;
12
+ constructor(message: string, code: string, statusCode?: number, isOperational?: boolean, details?: unknown);
13
+ /**
14
+ * Converts error to JSON format for MCP responses
15
+ */
16
+ toJSON(): {
17
+ error: {
18
+ code: string;
19
+ message: string;
20
+ details: unknown;
21
+ };
22
+ };
23
+ }
24
+ /**
25
+ * File system related errors
26
+ */
27
+ export declare class FileSystemError extends AppError {
28
+ constructor(message: string, details?: unknown);
29
+ }
30
+ /**
31
+ * File not found error
32
+ */
33
+ export declare class FileNotFoundError extends FileSystemError {
34
+ constructor(filePath: string);
35
+ }
36
+ /**
37
+ * Permission denied error
38
+ */
39
+ export declare class PermissionDeniedError extends FileSystemError {
40
+ constructor(filePath: string);
41
+ }
42
+ /**
43
+ * Parsing related errors
44
+ */
45
+ export declare class ParsingError extends AppError {
46
+ constructor(message: string, details?: unknown);
47
+ }
48
+ /**
49
+ * Invalid JSON error
50
+ */
51
+ export declare class InvalidJsonError extends ParsingError {
52
+ constructor(message: string, details?: unknown);
53
+ }
54
+ /**
55
+ * Invalid structure error
56
+ */
57
+ export declare class InvalidStructureError extends ParsingError {
58
+ constructor(message: string, details?: unknown);
59
+ }
60
+ /**
61
+ * Validation related errors
62
+ */
63
+ export declare class ValidationError extends AppError {
64
+ constructor(message: string, details?: unknown);
65
+ }
66
+ /**
67
+ * Duplicate name error
68
+ */
69
+ export declare class DuplicateNameError extends ValidationError {
70
+ constructor(name: string, types: string[]);
71
+ }
72
+ /**
73
+ * Invalid component structure error
74
+ */
75
+ export declare class InvalidComponentError extends ValidationError {
76
+ constructor(message: string, details?: unknown);
77
+ }
78
+ /**
79
+ * Query related errors
80
+ */
81
+ export declare class QueryError extends AppError {
82
+ constructor(message: string, details?: unknown);
83
+ }
84
+ /**
85
+ * Component not found error
86
+ */
87
+ export declare class ComponentNotFoundError extends QueryError {
88
+ constructor(name: string);
89
+ }
90
+ /**
91
+ * Invalid search query error
92
+ */
93
+ export declare class InvalidSearchQueryError extends QueryError {
94
+ constructor(message: string, details?: unknown);
95
+ }
96
+ /**
97
+ * Invalid pagination parameters error
98
+ */
99
+ export declare class InvalidPaginationError extends QueryError {
100
+ constructor(message: string, details?: unknown);
101
+ }
102
+ /**
103
+ * MCP protocol related errors
104
+ */
105
+ export declare class McpError extends AppError {
106
+ constructor(message: string, details?: unknown);
107
+ }
108
+ /**
109
+ * Invalid tool name error
110
+ */
111
+ export declare class InvalidToolError extends McpError {
112
+ constructor(toolName: string);
113
+ }
114
+ /**
115
+ * Missing required parameter error
116
+ */
117
+ export declare class MissingParameterError extends McpError {
118
+ constructor(parameterName: string, toolName: string);
119
+ }
120
+ /**
121
+ * Invalid parameter type error
122
+ */
123
+ export declare class InvalidParameterError extends McpError {
124
+ constructor(parameterName: string, expectedType: string, actualType: string);
125
+ }
126
+ /**
127
+ * Runtime errors
128
+ */
129
+ export declare class RuntimeError extends AppError {
130
+ constructor(message: string, details?: unknown);
131
+ }
132
+ /**
133
+ * Out of memory error
134
+ */
135
+ export declare class OutOfMemoryError extends RuntimeError {
136
+ constructor(details?: unknown);
137
+ }
138
+ /**
139
+ * Unexpected error
140
+ */
141
+ export declare class UnexpectedError extends RuntimeError {
142
+ constructor(message: string, details?: unknown);
143
+ }
144
+ /**
145
+ * Type guard to check if an error is an AppError
146
+ */
147
+ export declare function isAppError(error: unknown): error is AppError;
148
+ /**
149
+ * Type guard to check if an error is operational
150
+ */
151
+ export declare function isOperationalError(error: unknown): boolean;
152
+ /**
153
+ * Converts any error to an AppError
154
+ */
155
+ export declare function toAppError(error: unknown): AppError;
156
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}