@cyanheads/mcp-ts-core 0.11.0 → 0.11.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 (177) hide show
  1. package/AGENTS.md +9 -5
  2. package/CLAUDE.md +9 -5
  3. package/README.md +4 -2
  4. package/biome.json +2 -2
  5. package/changelog/0.11.x/0.11.0.md +0 -2
  6. package/changelog/0.11.x/0.11.1.md +74 -0
  7. package/changelog/0.11.x/0.11.2.md +98 -0
  8. package/dist/config/index.d.ts +10 -0
  9. package/dist/config/index.d.ts.map +1 -1
  10. package/dist/config/index.js +27 -13
  11. package/dist/config/index.js.map +1 -1
  12. package/dist/core/app.d.ts +37 -14
  13. package/dist/core/app.d.ts.map +1 -1
  14. package/dist/core/app.js +56 -23
  15. package/dist/core/app.js.map +1 -1
  16. package/dist/core/index.d.ts +1 -1
  17. package/dist/core/index.d.ts.map +1 -1
  18. package/dist/core/index.js.map +1 -1
  19. package/dist/core/worker.d.ts.map +1 -1
  20. package/dist/core/worker.js +35 -18
  21. package/dist/core/worker.js.map +1 -1
  22. package/dist/mcp-server/elicitation.d.ts +64 -0
  23. package/dist/mcp-server/elicitation.d.ts.map +1 -0
  24. package/dist/mcp-server/elicitation.js +81 -0
  25. package/dist/mcp-server/elicitation.js.map +1 -0
  26. package/dist/mcp-server/protocolSession.d.ts +34 -0
  27. package/dist/mcp-server/protocolSession.d.ts.map +1 -0
  28. package/dist/mcp-server/protocolSession.js +13 -0
  29. package/dist/mcp-server/protocolSession.js.map +1 -0
  30. package/dist/mcp-server/resources/resource-registration.d.ts +2 -1
  31. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  32. package/dist/mcp-server/resources/resource-registration.js +6 -2
  33. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  34. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +7 -12
  35. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  36. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +24 -31
  37. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  38. package/dist/mcp-server/server.d.ts +3 -0
  39. package/dist/mcp-server/server.d.ts.map +1 -1
  40. package/dist/mcp-server/server.js +12 -2
  41. package/dist/mcp-server/server.js.map +1 -1
  42. package/dist/mcp-server/tools/tool-registration.d.ts +2 -1
  43. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  44. package/dist/mcp-server/tools/tool-registration.js +6 -2
  45. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  46. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +7 -13
  47. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  48. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +11 -44
  49. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  50. package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -1
  51. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
  52. package/dist/mcp-server/transports/http/httpServer.d.ts +2 -2
  53. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  54. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  55. package/dist/mcp-server/transports/http/httpTransport.d.ts +2 -2
  56. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  57. package/dist/mcp-server/transports/http/httpTransport.js +113 -55
  58. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  59. package/dist/mcp-server/transports/http/sessionStore.d.ts +17 -0
  60. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
  61. package/dist/mcp-server/transports/http/sessionStore.js +71 -0
  62. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
  63. package/dist/mcp-server/transports/manager.d.ts +2 -6
  64. package/dist/mcp-server/transports/manager.d.ts.map +1 -1
  65. package/dist/mcp-server/transports/manager.js +4 -0
  66. package/dist/mcp-server/transports/manager.js.map +1 -1
  67. package/dist/services/canvas/core/CanvasRegistry.d.ts +2 -2
  68. package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
  69. package/dist/services/canvas/core/CanvasRegistry.js +14 -3
  70. package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
  71. package/dist/services/canvas/core/DataCanvas.d.ts +1 -1
  72. package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
  73. package/dist/services/canvas/core/DataCanvas.js +2 -2
  74. package/dist/services/canvas/core/DataCanvas.js.map +1 -1
  75. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
  76. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +11 -3
  77. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
  78. package/dist/services/canvas/providers/duckdb/exportWriter.d.ts.map +1 -1
  79. package/dist/services/canvas/providers/duckdb/exportWriter.js +23 -2
  80. package/dist/services/canvas/providers/duckdb/exportWriter.js.map +1 -1
  81. package/dist/services/mirror/core/defineMirror.d.ts.map +1 -1
  82. package/dist/services/mirror/core/defineMirror.js +18 -7
  83. package/dist/services/mirror/core/defineMirror.js.map +1 -1
  84. package/dist/services/mirror/core/runner.d.ts.map +1 -1
  85. package/dist/services/mirror/core/runner.js +3 -0
  86. package/dist/services/mirror/core/runner.js.map +1 -1
  87. package/dist/services/mirror/index.d.ts +1 -1
  88. package/dist/services/mirror/index.d.ts.map +1 -1
  89. package/dist/services/mirror/index.js.map +1 -1
  90. package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts +20 -0
  91. package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts.map +1 -1
  92. package/dist/services/mirror/sqlite/sqliteMirrorStore.js +87 -8
  93. package/dist/services/mirror/sqlite/sqliteMirrorStore.js.map +1 -1
  94. package/dist/storage/core/StorageService.d.ts.map +1 -1
  95. package/dist/storage/core/StorageService.js +4 -1
  96. package/dist/storage/core/StorageService.js.map +1 -1
  97. package/dist/storage/core/storageValidation.d.ts +8 -0
  98. package/dist/storage/core/storageValidation.d.ts.map +1 -1
  99. package/dist/storage/core/storageValidation.js +38 -0
  100. package/dist/storage/core/storageValidation.js.map +1 -1
  101. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +1 -1
  102. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
  103. package/dist/storage/providers/inMemory/inMemoryProvider.js +67 -25
  104. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
  105. package/dist/testing/fuzz.d.ts +5 -1
  106. package/dist/testing/fuzz.d.ts.map +1 -1
  107. package/dist/testing/fuzz.js +147 -37
  108. package/dist/testing/fuzz.js.map +1 -1
  109. package/dist/testing/index.d.ts +111 -1
  110. package/dist/testing/index.d.ts.map +1 -1
  111. package/dist/testing/index.js +139 -0
  112. package/dist/testing/index.js.map +1 -1
  113. package/dist/testing/vitest.d.ts +86 -12
  114. package/dist/testing/vitest.d.ts.map +1 -1
  115. package/dist/testing/vitest.js +91 -11
  116. package/dist/testing/vitest.js.map +1 -1
  117. package/dist/utils/index.d.ts +1 -1
  118. package/dist/utils/index.d.ts.map +1 -1
  119. package/dist/utils/index.js +1 -1
  120. package/dist/utils/index.js.map +1 -1
  121. package/dist/utils/network/fetchWithTimeout.d.ts +7 -6
  122. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  123. package/dist/utils/network/fetchWithTimeout.js +141 -51
  124. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  125. package/dist/utils/network/httpError.d.ts.map +1 -1
  126. package/dist/utils/network/httpError.js +3 -2
  127. package/dist/utils/network/httpError.js.map +1 -1
  128. package/dist/utils/network/responseBody.d.ts +15 -0
  129. package/dist/utils/network/responseBody.d.ts.map +1 -0
  130. package/dist/utils/network/responseBody.js +63 -0
  131. package/dist/utils/network/responseBody.js.map +1 -0
  132. package/dist/utils/parsing/frontmatterParser.d.ts +3 -1
  133. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -1
  134. package/dist/utils/parsing/frontmatterParser.js +6 -7
  135. package/dist/utils/parsing/frontmatterParser.js.map +1 -1
  136. package/dist/utils/parsing/htmlExtractor.d.ts +4 -0
  137. package/dist/utils/parsing/htmlExtractor.d.ts.map +1 -1
  138. package/dist/utils/parsing/htmlExtractor.js +4 -5
  139. package/dist/utils/parsing/htmlExtractor.js.map +1 -1
  140. package/dist/utils/parsing/index.d.ts +1 -0
  141. package/dist/utils/parsing/index.d.ts.map +1 -1
  142. package/dist/utils/parsing/index.js +1 -0
  143. package/dist/utils/parsing/index.js.map +1 -1
  144. package/dist/utils/parsing/inputBudget.d.ts +28 -0
  145. package/dist/utils/parsing/inputBudget.d.ts.map +1 -0
  146. package/dist/utils/parsing/inputBudget.js +76 -0
  147. package/dist/utils/parsing/inputBudget.js.map +1 -0
  148. package/dist/utils/parsing/jsonParser.d.ts +3 -1
  149. package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
  150. package/dist/utils/parsing/jsonParser.js +5 -6
  151. package/dist/utils/parsing/jsonParser.js.map +1 -1
  152. package/dist/utils/parsing/pdfParser.d.ts +11 -3
  153. package/dist/utils/parsing/pdfParser.d.ts.map +1 -1
  154. package/dist/utils/parsing/pdfParser.js +65 -50
  155. package/dist/utils/parsing/pdfParser.js.map +1 -1
  156. package/dist/utils/parsing/xmlParser.d.ts +3 -1
  157. package/dist/utils/parsing/xmlParser.d.ts.map +1 -1
  158. package/dist/utils/parsing/xmlParser.js +8 -6
  159. package/dist/utils/parsing/xmlParser.js.map +1 -1
  160. package/dist/utils/parsing/yamlParser.d.ts +3 -1
  161. package/dist/utils/parsing/yamlParser.d.ts.map +1 -1
  162. package/dist/utils/parsing/yamlParser.js +5 -6
  163. package/dist/utils/parsing/yamlParser.js.map +1 -1
  164. package/package.json +28 -26
  165. package/skills/api-testing/SKILL.md +65 -4
  166. package/skills/git-wrapup/SKILL.md +22 -1
  167. package/skills/security-pass/SKILL.md +2 -2
  168. package/templates/devcheck.config.json +1 -1
  169. package/templates/package.json +2 -0
  170. package/templates/tests/fuzz/echo-tool.fuzz.test.ts +20 -0
  171. package/templates/tests/integration/echo-contract.int.test.ts +25 -0
  172. package/templates/tests/smoke/definitions.smoke.test.ts +46 -0
  173. package/templates/vitest.config.ts +24 -27
  174. package/vitest.config.base.mjs +6 -0
  175. package/dist/logs/combined.log +0 -8
  176. package/dist/logs/error.log +0 -4
  177. package/dist/logs/interactions.log +0 -0
@@ -1,9 +1,25 @@
1
- import { JsonRpcErrorCode, McpError, validationError } from '../../types-global/errors.js';
1
+ import { JsonRpcErrorCode, McpError } from '../../types-global/errors.js';
2
2
  import { lazyImport } from '../../utils/internal/lazyImport.js';
3
3
  import { logger } from '../../utils/internal/logger.js';
4
4
  import { requestContextService } from '../../utils/internal/requestContext.js';
5
+ import { assertBinaryInputBudget, assertBinaryInputsBudget, } from './inputBudget.js';
5
6
  const getPdfLib = lazyImport(() => import('pdf-lib'), 'Install "pdf-lib" to use PDF operations: bun add pdf-lib');
6
7
  const getUnpdf = lazyImport(() => import('unpdf'), 'Install "unpdf" to use PDF text extraction: bun add unpdf');
8
+ /**
9
+ * Build the client-facing PDF failure envelope without copying parser/library
10
+ * diagnostics into `McpError.data` or `message`. The original failure remains
11
+ * available to the internal error pipeline through `cause`.
12
+ *
13
+ * An `McpError` thrown from inside the operation is already classified and
14
+ * client-safe — most often the `ConfigurationError` a lazy import raises for a
15
+ * missing peer dependency — so it passes through with its code and remediation
16
+ * intact rather than being relabelled as a PDF failure.
17
+ */
18
+ function pdfFailure(code, message, reason, cause) {
19
+ if (cause instanceof McpError)
20
+ return cause;
21
+ return new McpError(code, message, { reason }, { cause });
22
+ }
7
23
  /**
8
24
  * Utility class for creating, modifying, and parsing PDF documents.
9
25
  *
@@ -45,10 +61,7 @@ export class PdfParser {
45
61
  ...logContext,
46
62
  errorDetails: error.message,
47
63
  });
48
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to create PDF document: ${error.message}`, {
49
- ...context,
50
- rawError: error instanceof Error ? error.stack : String(error),
51
- });
64
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to create PDF document.', 'pdf_create_failed', error);
52
65
  }
53
66
  }
54
67
  /**
@@ -58,6 +71,7 @@ export class PdfParser {
58
71
  *
59
72
  * @param pdfBytes - The PDF file contents as `Uint8Array` or `ArrayBuffer`.
60
73
  * @param context - Optional `RequestContext` for correlated logging and error metadata.
74
+ * @param budget - Optional byte budget for the input. Defaults to 25 MiB.
61
75
  * @returns The loaded `PDFDocument` instance.
62
76
  * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
63
77
  * @throws {McpError} With `ValidationError` if the bytes are not a valid PDF.
@@ -68,7 +82,8 @@ export class PdfParser {
68
82
  * const doc = await pdfParser.loadDocument(pdfBytes);
69
83
  * ```
70
84
  */
71
- async loadDocument(pdfBytes, context) {
85
+ async loadDocument(pdfBytes, context, budget) {
86
+ const byteLength = assertBinaryInputBudget(pdfBytes, budget);
72
87
  const logContext = context ||
73
88
  requestContextService.createRequestContext({
74
89
  operation: 'PdfParser.loadDocument',
@@ -77,7 +92,7 @@ export class PdfParser {
77
92
  const pdfLib = await getPdfLib();
78
93
  logger.debug('Loading PDF document from bytes.', {
79
94
  ...logContext,
80
- byteLength: pdfBytes instanceof Uint8Array ? pdfBytes.length : pdfBytes.byteLength,
95
+ byteLength,
81
96
  });
82
97
  const doc = await pdfLib.PDFDocument.load(pdfBytes);
83
98
  return doc;
@@ -88,10 +103,7 @@ export class PdfParser {
88
103
  ...logContext,
89
104
  errorDetails: error.message,
90
105
  });
91
- throw validationError(`Failed to load PDF document: ${error.message}`, {
92
- ...context,
93
- rawError: error instanceof Error ? error.stack : String(error),
94
- });
106
+ throw pdfFailure(JsonRpcErrorCode.ValidationError, 'Failed to load PDF document.', 'pdf_load_failed', error);
95
107
  }
96
108
  }
97
109
  /**
@@ -151,10 +163,7 @@ export class PdfParser {
151
163
  fontName,
152
164
  errorDetails: error.message,
153
165
  });
154
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to embed font '${fontName}': ${error.message}`, {
155
- ...context,
156
- rawError: error instanceof Error ? error.stack : String(error),
157
- });
166
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to embed PDF font.', 'pdf_font_embed_failed', error);
158
167
  }
159
168
  }
160
169
  /**
@@ -178,6 +187,7 @@ export class PdfParser {
178
187
  * ```
179
188
  */
180
189
  async embedImage(doc, options, context) {
190
+ assertBinaryInputBudget(options.imageBytes, options);
181
191
  const logContext = context ||
182
192
  requestContextService.createRequestContext({
183
193
  operation: 'PdfParser.embedImage',
@@ -199,10 +209,7 @@ export class PdfParser {
199
209
  format: options.format,
200
210
  errorDetails: error.message,
201
211
  });
202
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to embed ${options.format} image: ${error.message}`, {
203
- ...context,
204
- rawError: error instanceof Error ? error.stack : String(error),
205
- });
212
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to embed PDF image.', 'pdf_image_embed_failed', error);
206
213
  }
207
214
  }
208
215
  /**
@@ -325,6 +332,7 @@ export class PdfParser {
325
332
  *
326
333
  * @param pdfBytesArray - Source PDF files as `Uint8Array` or `ArrayBuffer` elements.
327
334
  * @param context - Optional `RequestContext` for correlated logging and error metadata.
335
+ * @param budget - Optional aggregate byte budget across all inputs. Defaults to 25 MiB.
328
336
  * @returns A new `PDFDocument` containing all pages from the input documents.
329
337
  * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
330
338
  * @throws {McpError} With `InternalError` if any source PDF is invalid or merging fails.
@@ -337,7 +345,9 @@ export class PdfParser {
337
345
  * const bytes = await pdfParser.saveDocument(merged);
338
346
  * ```
339
347
  */
340
- async mergePdfs(pdfBytesArray, context) {
348
+ async mergePdfs(pdfBytesArray, context, budget) {
349
+ const presentInputs = pdfBytesArray.filter(Boolean);
350
+ assertBinaryInputsBudget(presentInputs, budget);
341
351
  const logContext = context ||
342
352
  requestContextService.createRequestContext({
343
353
  operation: 'PdfParser.mergePdfs',
@@ -349,10 +359,7 @@ export class PdfParser {
349
359
  documentCount: pdfBytesArray.length,
350
360
  });
351
361
  const mergedPdf = await pdfLib.PDFDocument.create();
352
- for (let i = 0; i < pdfBytesArray.length; i++) {
353
- const pdfBytes = pdfBytesArray[i];
354
- if (!pdfBytes)
355
- continue;
362
+ for (const pdfBytes of presentInputs) {
356
363
  const pdfDoc = await pdfLib.PDFDocument.load(pdfBytes);
357
364
  const copiedPages = await mergedPdf.copyPages(pdfDoc, pdfDoc.getPageIndices());
358
365
  for (const page of copiedPages)
@@ -370,10 +377,7 @@ export class PdfParser {
370
377
  ...logContext,
371
378
  errorDetails: error.message,
372
379
  });
373
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to merge PDFs: ${error.message}`, {
374
- ...context,
375
- rawError: error instanceof Error ? error.stack : String(error),
376
- });
380
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to merge PDF documents.', 'pdf_merge_failed', error);
377
381
  }
378
382
  }
379
383
  /**
@@ -386,6 +390,7 @@ export class PdfParser {
386
390
  * @param pdfBytes - The source PDF as `Uint8Array` or `ArrayBuffer`.
387
391
  * @param ranges - Page ranges to extract; each produces one output document.
388
392
  * @param context - Optional `RequestContext` for correlated logging and error metadata.
393
+ * @param budget - Optional byte budget for the input. Defaults to 25 MiB.
389
394
  * @returns An array of new `PDFDocument` instances, one per range, in order.
390
395
  * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
391
396
  * @throws {McpError} With `InternalError` if the source PDF is invalid or a page index is out of bounds.
@@ -399,7 +404,8 @@ export class PdfParser {
399
404
  * ]);
400
405
  * ```
401
406
  */
402
- async splitPdf(pdfBytes, ranges, context) {
407
+ async splitPdf(pdfBytes, ranges, context, budget) {
408
+ assertBinaryInputBudget(pdfBytes, budget);
403
409
  const logContext = context ||
404
410
  requestContextService.createRequestContext({
405
411
  operation: 'PdfParser.splitPdf',
@@ -435,10 +441,7 @@ export class PdfParser {
435
441
  ...logContext,
436
442
  errorDetails: error.message,
437
443
  });
438
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to split PDF: ${error.message}`, {
439
- ...context,
440
- rawError: error instanceof Error ? error.stack : String(error),
441
- });
444
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to split PDF document.', 'pdf_split_failed', error);
442
445
  }
443
446
  }
444
447
  /**
@@ -521,10 +524,7 @@ export class PdfParser {
521
524
  ...logContext,
522
525
  errorDetails: error.message,
523
526
  });
524
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to fill PDF form: ${error.message}`, {
525
- ...context,
526
- rawError: error instanceof Error ? error.stack : String(error),
527
- });
527
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to fill PDF form.', 'pdf_form_fill_failed', error);
528
528
  }
529
529
  }
530
530
  /**
@@ -639,18 +639,39 @@ export class PdfParser {
639
639
  requestContextService.createRequestContext({
640
640
  operation: 'PdfParser.extractText',
641
641
  });
642
+ const mergePages = options?.mergePages ?? false;
643
+ const isBytes = input instanceof Uint8Array || input instanceof ArrayBuffer;
644
+ let pdfBytes;
645
+ if (isBytes) {
646
+ assertBinaryInputBudget(input, options);
647
+ pdfBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;
648
+ }
649
+ else {
650
+ let rawBytes;
651
+ try {
652
+ rawBytes = await input.save();
653
+ }
654
+ catch (e) {
655
+ const error = e instanceof Error ? e : new Error(String(e));
656
+ logger.error('Failed to extract text from PDF.', {
657
+ ...logContext,
658
+ errorDetails: error.message,
659
+ });
660
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to extract text from PDF.', 'pdf_text_extract_failed', error);
661
+ }
662
+ assertBinaryInputBudget(rawBytes, options);
663
+ pdfBytes = rawBytes;
664
+ }
642
665
  try {
643
- const mergePages = options?.mergePages ?? false;
644
- const isBytes = input instanceof Uint8Array || input instanceof ArrayBuffer;
645
666
  logger.debug('Extracting text from PDF using unpdf.', {
646
667
  ...logContext,
647
668
  mergePages,
648
669
  inputKind: isBytes ? 'bytes' : 'document',
649
670
  });
650
- const rawBytes = isBytes ? input : await input.save();
651
- const pdfBytes = rawBytes instanceof ArrayBuffer ? new Uint8Array(rawBytes) : rawBytes;
652
671
  const { getDocumentProxy, extractText: unpdfExtractText } = await getUnpdf();
653
- const pdfProxy = await getDocumentProxy(pdfBytes);
672
+ // Cap decoded images at 4096×4096 pixels (pdf.js defaults to unbounded), so a
673
+ // crafted page cannot force a huge raster allocation during extraction.
674
+ const pdfProxy = await getDocumentProxy(pdfBytes, { maxImageSize: 4096 * 4096 });
654
675
  const result = mergePages
655
676
  ? await unpdfExtractText(pdfProxy, { mergePages: true })
656
677
  : await unpdfExtractText(pdfProxy, { mergePages: false });
@@ -672,10 +693,7 @@ export class PdfParser {
672
693
  ...logContext,
673
694
  errorDetails: error.message,
674
695
  });
675
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to extract text: ${error.message}`, {
676
- ...context,
677
- rawError: error instanceof Error ? error.stack : String(error),
678
- });
696
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to extract text from PDF.', 'pdf_text_extract_failed', error);
679
697
  }
680
698
  }
681
699
  /**
@@ -715,10 +733,7 @@ export class PdfParser {
715
733
  ...logContext,
716
734
  errorDetails: error.message,
717
735
  });
718
- throw new McpError(JsonRpcErrorCode.InternalError, `Failed to save PDF document: ${error.message}`, {
719
- ...context,
720
- rawError: error instanceof Error ? error.stack : String(error),
721
- });
736
+ throw pdfFailure(JsonRpcErrorCode.InternalError, 'Failed to save PDF document.', 'pdf_save_failed', error);
722
737
  }
723
738
  }
724
739
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdfParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/pdfParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdfParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/pdfParser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type RequestContext } from '../../utils/internal/requestContext.js';
2
+ import { type ParserInputBudgetOptions } from './inputBudget.js';
2
3
  /**
3
4
  * Utility class for parsing XML strings.
4
5
  *
@@ -22,6 +23,7 @@ export declare class XmlParser {
22
23
  * @template T - The expected type of the parsed result. Defaults to `unknown`.
23
24
  * @param xmlString - The XML string to parse. May be prefixed with a `<think>` block.
24
25
  * @param context - Optional request context for correlated logging and error metadata.
26
+ * @param budget - Optional UTF-8 byte budget for the input. Defaults to 1 MiB.
25
27
  * @returns A promise resolving to the parsed object cast to `T`.
26
28
  * @throws {McpError} With code `ConfigurationError` if `fast-xml-parser` is not installed.
27
29
  * @throws {McpError} With code `ValidationError` if the string is empty after stripping
@@ -38,7 +40,7 @@ export declare class XmlParser {
38
40
  * console.log(fromLlm); // { root: { key: 'value' } }
39
41
  * ```
40
42
  */
41
- parse<T = unknown>(xmlString: string, context?: RequestContext): Promise<T>;
43
+ parse<T = unknown>(xmlString: string, context?: RequestContext, budget?: ParserInputBudgetOptions): Promise<T>;
42
44
  }
43
45
  /**
44
46
  * Singleton instance of {@link XmlParser}.
@@ -1 +1 @@
1
- {"version":3,"file":"xmlParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/xmlParser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAsBhG;;;;;;;;;GASG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CA4DhF;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"xmlParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/xmlParser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAyB,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAsBxF;;;;;;;;;GASG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,CAAC,CAAC,CAgEZ;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -11,6 +11,7 @@
11
11
  import { configurationError, validationError } from '../../types-global/errors.js';
12
12
  import { logger } from '../../utils/internal/logger.js';
13
13
  import { requestContextService } from '../../utils/internal/requestContext.js';
14
+ import { assertTextInputBudget } from './inputBudget.js';
14
15
  import { thinkBlockRegex } from './thinkBlock.js';
15
16
  let _fxp;
16
17
  let _xmlParserInstance;
@@ -46,6 +47,7 @@ export class XmlParser {
46
47
  * @template T - The expected type of the parsed result. Defaults to `unknown`.
47
48
  * @param xmlString - The XML string to parse. May be prefixed with a `<think>` block.
48
49
  * @param context - Optional request context for correlated logging and error metadata.
50
+ * @param budget - Optional UTF-8 byte budget for the input. Defaults to 1 MiB.
49
51
  * @returns A promise resolving to the parsed object cast to `T`.
50
52
  * @throws {McpError} With code `ConfigurationError` if `fast-xml-parser` is not installed.
51
53
  * @throws {McpError} With code `ValidationError` if the string is empty after stripping
@@ -62,7 +64,8 @@ export class XmlParser {
62
64
  * console.log(fromLlm); // { root: { key: 'value' } }
63
65
  * ```
64
66
  */
65
- async parse(xmlString, context) {
67
+ async parse(xmlString, context, budget) {
68
+ assertTextInputBudget(xmlString, budget);
66
69
  let stringToParse = xmlString;
67
70
  const match = xmlString.match(thinkBlockRegex);
68
71
  if (match) {
@@ -92,6 +95,9 @@ export class XmlParser {
92
95
  _xmlParserInstance ??= new fxp.XMLParser({
93
96
  processEntities: false,
94
97
  htmlEntities: false,
98
+ // Pins fast-xml-parser's own nesting-depth default so an upstream change
99
+ // can't silently raise the bound a deeply nested document runs against.
100
+ maxNestedTags: 100,
95
101
  });
96
102
  return _xmlParserInstance.parse(stringToParse);
97
103
  }
@@ -106,11 +112,7 @@ export class XmlParser {
106
112
  errorDetails: error.message,
107
113
  contentAttempted: stringToParse.substring(0, 200),
108
114
  });
109
- throw validationError(`Failed to parse XML: ${error.message}`, {
110
- ...context,
111
- originalContentSample: stringToParse.substring(0, 200) + (stringToParse.length > 200 ? '...' : ''),
112
- rawError: error instanceof Error ? error.stack : String(error),
113
- });
115
+ throw validationError('Failed to parse XML content.', { reason: 'xml_parse_failed' }, { cause: error });
114
116
  }
115
117
  }
116
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xmlParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/xmlParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xmlParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/xmlParser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type RequestContext } from '../../utils/internal/requestContext.js';
2
+ import { type ParserInputBudgetOptions } from './inputBudget.js';
2
3
  /**
3
4
  * Utility class for parsing YAML strings.
4
5
  *
@@ -18,6 +19,7 @@ export declare class YamlParser {
18
19
  * @template T - The expected type of the parsed result. Defaults to `unknown`.
19
20
  * @param yamlString - The YAML string to parse. May be prefixed with a `<think>` block.
20
21
  * @param context - Optional request context for correlated logging and error metadata.
22
+ * @param budget - Optional UTF-8 byte budget for the input. Defaults to 1 MiB.
21
23
  * @returns A promise resolving to the parsed object cast to `T`.
22
24
  * @throws {McpError} With code `ConfigurationError` if `js-yaml` is not installed.
23
25
  * @throws {McpError} With code `ValidationError` if the string is empty after stripping
@@ -34,7 +36,7 @@ export declare class YamlParser {
34
36
  * console.log(fromLlm); // { key: 'value' }
35
37
  * ```
36
38
  */
37
- parse<T = unknown>(yamlString: string, context?: RequestContext): Promise<T>;
39
+ parse<T = unknown>(yamlString: string, context?: RequestContext, budget?: ParserInputBudgetOptions): Promise<T>;
38
40
  }
39
41
  /**
40
42
  * Singleton instance of {@link YamlParser}.
@@ -1 +1 @@
1
- {"version":3,"file":"yamlParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/yamlParser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAQhG;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CA2DjF;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
1
+ {"version":3,"file":"yamlParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/yamlParser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAyB,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAQxF;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,CAAC,CAAC,CA4DZ;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -11,6 +11,7 @@ import { validationError } from '../../types-global/errors.js';
11
11
  import { lazyImport } from '../../utils/internal/lazyImport.js';
12
12
  import { logger } from '../../utils/internal/logger.js';
13
13
  import { requestContextService } from '../../utils/internal/requestContext.js';
14
+ import { assertTextInputBudget } from './inputBudget.js';
14
15
  import { thinkBlockRegex } from './thinkBlock.js';
15
16
  const getYaml = lazyImport(() => import('js-yaml'), 'Install "js-yaml" to use YAML parsing: bun add js-yaml');
16
17
  /**
@@ -32,6 +33,7 @@ export class YamlParser {
32
33
  * @template T - The expected type of the parsed result. Defaults to `unknown`.
33
34
  * @param yamlString - The YAML string to parse. May be prefixed with a `<think>` block.
34
35
  * @param context - Optional request context for correlated logging and error metadata.
36
+ * @param budget - Optional UTF-8 byte budget for the input. Defaults to 1 MiB.
35
37
  * @returns A promise resolving to the parsed object cast to `T`.
36
38
  * @throws {McpError} With code `ConfigurationError` if `js-yaml` is not installed.
37
39
  * @throws {McpError} With code `ValidationError` if the string is empty after stripping
@@ -48,7 +50,8 @@ export class YamlParser {
48
50
  * console.log(fromLlm); // { key: 'value' }
49
51
  * ```
50
52
  */
51
- async parse(yamlString, context) {
53
+ async parse(yamlString, context, budget) {
54
+ assertTextInputBudget(yamlString, budget);
52
55
  let stringToParse = yamlString;
53
56
  const match = yamlString.match(thinkBlockRegex);
54
57
  if (match) {
@@ -91,11 +94,7 @@ export class YamlParser {
91
94
  errorDetails: error.message,
92
95
  contentAttempted: stringToParse.substring(0, 200),
93
96
  });
94
- throw validationError(`Failed to parse YAML: ${error.message}`, {
95
- ...context,
96
- originalContentSample: stringToParse.substring(0, 200) + (stringToParse.length > 200 ? '...' : ''),
97
- rawError: error instanceof Error ? error.stack : String(error),
98
- });
97
+ throw validationError('Failed to parse YAML content.', { reason: 'yaml_parse_failed' }, { cause: error });
99
98
  }
100
99
  }
101
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"yamlParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/yamlParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAuB,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,OAAO,GAAG,UAAU,CACxB,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EACvB,wDAAwD,CACzD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,KAAK,CAAc,UAAkB,EAAE,OAAwB;QACnE,IAAI,aAAa,GAAG,UAAU,CAAC;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEhD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpC,MAAM,UAAU,GACd,OAAO;gBACP,qBAAqB,CAAC,oBAAoB,CAAC;oBACzC,SAAS,EAAE,uBAAuB;iBACnC,CAAC,CAAC;YACL,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;oBACrD,GAAG,UAAU;oBACb,YAAY;iBACb,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;YACD,aAAa,GAAG,YAAY,CAAC;QAC/B,CAAC;QAED,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAErC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,eAAe,CACnB,iEAAiE,EACjE,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAC7B,4EAA4E;YAC5E,oEAAoE;YACpE,gFAAgF;YAChF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAM,CAAC;QACvE,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,eAAe,GACnB,OAAO;gBACP,qBAAqB,CAAC,oBAAoB,CAAC;oBACzC,SAAS,EAAE,uBAAuB;iBACnC,CAAC,CAAC;YACL,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBAC5C,GAAG,eAAe;gBAClB,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;aAClD,CAAC,CAAC;YAEH,MAAM,eAAe,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC9D,GAAG,OAAO;gBACV,qBAAqB,EACnB,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"yamlParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/yamlParser.ts"],"names":[],"mappings":"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"}